2015-06-15 8 views
1

Я пишу программу, которая выполняет атаку спуфинга ARP на шлюзе и хосте, а затем пытается захватить трафик HTTP между ними и отображает веб-сеансы в браузере. Я использую libnet и pcap для них.Выполнение TCP-соединений автоматически с помощью libpcap

Я уже сделал спуфинг успешно, и теперь я пытаюсь создать реле, где программа реализует виртуальное соединение между хостом и шлюзом.

У меня возникли проблемы с транзакцией TCP. Когда хосту требуется страница, сначала попробуйте установить TCP-соединение с злоумышленником (потому что оно уже подделано), отправив пакет TCP SYN. Проблема в том, что моя машина (атакующий) не отвечает SYN, а затем жертва повторяет попытку подключения, отправив кучу повторных передач SYN.

В моей голове я думал, что TCP-соединение было создано автоматически pcap (или ядром). Есть ли какой-либо конфиг или параметр для установки этого или мне нужно будет выполнить транзакцию TCP самостоятельно? Если да, то есть ли какой-либо совет для достижения максимальной производительности?

Спасибо за консультацию.

найд .: для фильтрации HTTP-запросов, я использую следующий фильтр на PCAP, Avaiable на it's man page

tcp port 80 and (((ip[2:2] - ((ip[0]&0xf)<<2)) - ((tcp[12]&0xf0)>>2)) != 0) 

ответ

0

Хорошо, для тех, кто столкнулся с этой темой, я нашел умный способ достичь связи между жертвой и сервером (это, по-моему, правильный путь).

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

Итак, когда вы получаете SYN от жертвы, просто отправьте его на шлюз, который доставит его на сервер и ответит с помощью SYN ACK. Конечно, вы должны подделывать заголовки Ethernet для отправителя и цели, чтобы проверить подделку.

+0

Как вы могли бы предотвратить это? Libpcap не имеет возможности фильтрации пакетов. – EJP

+0

Извините, я не понял ваш вопрос. Вы имели в виду «Как предотвратить атаку спуфинга ARP?» или как я предотвратил TCP, чтобы пройти через? На самом деле, ibpcap имеет возможность фильтрации пакетов, он документирован [здесь] (http://www.tcpdump.org/manpages/pcap-filter.7.html) – rodopoulos

1

Libpcap представляет собой библиотеку для чтения необработанных сетевых пакетов и, в версиях с pcap_sendpacket()/pcap_inject() , отправка сырых сетевых пакетов. «Необработанные сетевые пакеты» означают пакеты исходного канала связи; если вы хотите притвориться, что это реализация TCP, вам необходимо предоставить свою версию TCP-и IPv4 или IPv6 - поверх механизма чтения/отправки необработанных пакетов.

+0

Это обязательно отвечает на мой вопрос! Но я нашел другой способ реализовать правильное соединение между сервером и жертвой. Проводя его ниже. – rodopoulos