Ложная инъекция пакета Ping - PullRequest
0 голосов
/ 02 марта 2019

TLDR: Почему инъекция пакета уровня 2 запроса PING не будет работать на компьютере, если пакет является идентично структурированным пакетом из успешного запроса PING инъекции пакета с компьютера "pinging"?(по сути, почему подделанный запрос проверки связи не будет выполнен?)

Настройка теста / выпуск:

У меня есть два компьютера, A (192.168.0.36) и B (192.168.0.36), подключенный напрямую через Ethernet.

Я вручную создаю и отправляю запрос PING от A до ping B (т. Е. Как если бы он запускал «ping 192.168.0.37» из терминала на A).Это работает, и я вижу, как B получает и отвечает на запрос ping с помощью Wireshark на компьютере B.

Затем я вручную создаю и вводим идентичный PING-запрос (из теста выше) на B на пинг B (т. Е. Как если бы он запускал «ping 192.168.037» на A, за исключением того, что вводился напрямую в интерфейс Ethernet B из программного обеспечения, запускаемого локально на B).Инъекция работает, и Wireshark показывает пакет, идентичный исходному тесту от A до B, ожидайте, что он не получен без ответа.

Мой вопрос, почему?

Я предполагаю, что мне не хватает чего-то фундаментального в безопасности сетевого интерфейса или настройках безопасности ОС или что-то в этом роде.

Я использую Ubuntu 16.04.Я внедряю пакеты с созданными вручную заголовками уровня 2.Я устанавливаю cap_net_raw, cap_net_admin + eip в моем исполняемом файле.Следующий код / ​​руководство с этого сайта: http://www.pdbuchan.com/rawsock/rawsock.html

В основном изображении Wireshark, записи первого пинга показывают успешную транзакцию из моих собственных внедренных пакетов на компьютер A. Последняя запись - это поддельный пакет, введенный мной напрямую.на компьютере B. Пакеты идентичны.Второй Wireshark показывает пакеты рядом. Wireshark Главный вид Пакеты бок о бок

...