Поиск DNS с использованием Pcap и C - PullRequest
2 голосов
/ 09 октября 2011

Я пытаюсь выполнить DNS-атаки с использованием библиотеки Pcap и кода C. В настоящее время я могу: 1. Прочитать DNS-запрос 2. На основе DNS-запроса создать DNS-ответ и внедрить вредоносный IP-адрес. 3. Введите поддельный ответ обратно в сеть.

При использовании Wireshark я вижу, что мой пакет успешно введен в сеть. Тем не менее, IP-адрес не изменяется, т. Е. При поиске ns он говорит: «Время соединения истекло, серверы недоступны» Вместо этого он принимает фактический ответ от DNS-сервера.

Есть идеи, почему это не работает? Где я могу пойти не так?

Ответы [ 3 ]

2 голосов
/ 10 октября 2011

Убедитесь, что идентификатор транзакции совпадает.Также в зависимости от клиента вам может понадобиться подделать IP-адрес источника.TTL может иметь значение, но не так, если он маленький, то есть может быть заблокирован более 1 недели, согласно RFC 1035.

Также обратите внимание, что первым действительным ответом DNS является тот, который принят.Поэтому вам нужно убедиться, что вы отвечаете быстрее, чем на другом сервере.

Это также может помочь http://www.sans.org/reading_room/whitepapers/dns/dns-spoofing-man-middle_1567.

0 голосов
/ 10 октября 2011

Во-первых, убедитесь, что вы можете заставить свой фальшивый сервер реагировать на пакеты, отправленные ему напрямую, чтобы ему не пришлось «выигрывать гонку», чтобы прибыть первым.

Затем вы можете использовать простые команды dig, чтобы убедиться, что вы на самом деле соответствует спецификациям протокола DNS.

Помимо других вещей, упомянутых здесь, вам также необходимо убедиться, что ваши пакеты также согласованы на уровне IP. Если вы подделываете ответ, вам необходимо убедиться, что поле контрольной суммы IP было правильно рассчитано - если оно неверно, ваши пакеты могут никогда не достичь более высоких уровней намеченной машины-жертвы.

0 голосов
/ 10 октября 2011

Возможно, что-то не так с вашим сгенерированным пакетом.Вы обновляете необходимые флаги и устанавливаете правильные разделы?И правильно ли копировать идентификатор транзакции?Вы можете попробовать записать реальный ответ и изменить его перед созданием нового ответа.

В качестве идентификатора я бы рекомендовал использовать Python для этого упражнения, гораздо более простое кодирование; -)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...