2016-05-01 4 views
0

Я пытаюсь реализовать атаку «opt ack» Эта атака включает в себя отправку пакетов ack до того, как пакеты поступят, таким образом увеличивая окна tcp и создавая большую нагрузку на сетевой канал.Как я могу играть в tcp-трафик между двумя хостами из файла pcap без запуска ядра?

им с помощью scapy для записи трафика между клиентом и сервером , а затем я посылаю клиента Ack пакетов, один за одним

у меня есть две проблемы:

мне нужно выключить ядро ​​отправки пакетов автоматически (он заставляет атакующего отправлять пакеты сброса) также мне нужно установить временную метку и контрольную сумму

Вы можете помочь мне хотя бы с первой проблемой?

+0

Что вы пробовали? Я никогда не использовал их, но я понимаю, что исходные сокеты способны на это теоретически. Если нет, вам может потребоваться изменить ядро. –

ответ

0

Первую проблему (пакеты RESET) можно устранить, установив правила iptables. Это очень хорошо работало для меня при реализации пакетного воспроизведения.

Iptables -A OUTPUT -p TCP -d "DST IP-АДРЕС" --sport "SRC PORT" --tcp-флаги RST RST -j DROP

0

Ядро не имеет знаний сегментов, посланный Scapy, у него нет сокета, связанного с используемым вами портом (см. here), поэтому он отправляет сегменты RST в качестве ответа на сегменты ACK.

Вы можете добавить iptable правила уронить их на машине атакующей:

iptables -A OUTPUT -p tcp --tcp-flags RST RST -s source_ip -j DROP 

При изменении сегментов, Scapy будет пересчитывать контрольную сумму перед повторным его.

Обратите внимание, что некорректные контрольные суммы при записи трафика могут быть вызваны checksum offload на вашей машине и могут быть решены с ethtool команды:

ethtool --offload ethX rx off tx off 

Для меток времени, я предполагаю, что вы говорите о опции TCP Timestamps. Вы можете подделать их перед повторной отправкой сегмента с помощью Scapy TCP options:

ACK = IP(...)/TCP(..., options=[("Timestamp", (TS_value, TS_ecr))]) 
Смежные вопросы