Изменение данных пакета с помощью pcapy / impacket - PullRequest
2 голосов
/ 20 ноября 2010

Я пишу небольшую программу на Python для Linux, которая будет перехватывать пакеты, летящие по проводам через определенный порт от хоста A к хосту B. Хост C будет действовать как человек посередине, поэтому весь трафик будет проходить через хостС (метод отравления арп).Я успешно написал часть с перехватом, чтобы я мог видеть все данные на экране, но я хочу дополнительно изменить данные пакетов без изменения данных заголовка (конечно, чексум будет изменен).Как я могу добиться этого, используя перехваченные пакеты с pcapy / impacket?

Это может быть немного нечетко, но основная идея представлена ​​ниже.
1. Хост A отправляет «Hello» на хост B (хост A и B подменяются arp, так что трафик проходит через хост C).
2. Хост C получает «Hello» от хоста A (по умолчанию хост C перенаправляет «Hello» на хост B, но я хочу что-то еще - см. Пункт 3)
3. Хост C изменяет «Hello»на «Пока» и перенаправляет (ip_forward ядра?) на хост B.
4. Хост B получает «Пока».

Может быть, есть способ использовать некоторые механизмы Linux для достижения этой цели?Прямо сейчас я застрял, и я был бы признателен за любые идеи.

1 Ответ

1 голос
/ 05 января 2011

Я предпочитаю scapy для такого рода приложений. Это мощный пакет Python, который позволяет вам захватывать, манипулировать и передавать пакеты на различных уровнях стека протоколов.

Есть несколько способов выполнить атаку «человек посередине». Я бы, вероятно, использовал функцию «sniff» с фильтром, который захватывает пакеты с хоста A. Затем я бы указал обратный вызов (через параметр «prn»), который модифицирует пакет и повторно передает его на хост B, используя «sendp». Обратите внимание, что в scapy также есть встроенная функция «arpcachepoison».

...