LINUX.ORG.RU

Перехват TCP-соединения


0

0

Я тут озадачился перехватом TCP соединений.
Исходные данные: Linux-машина с сетевым интерфейсом, слушающим зеркалируемый порт свича + 1 интерфейс для того, чтобы посылать сгенерированные пакеты в сеть.
На первом интерфейсе мы ловим TCP пакеты с сегментом SYN, сразу как только такой пакет приходит, отсылаем SYN,ACK "якобы от получателя" в сеть. Сразу после этого шлем RST настоящему получателю пакета. После чего связываемся с настоящим получателем. Принцип именно в том, чтобы "встать в середину". Проблема в том, что получатель не реагирует на наш RST и шлет свой SYN,ACK. Вот вывод ethereal:
3 2.857378 192.168.133.200 -> 192.168.132.6 TCP 2410 > http [SYN] Seq=0 Ack=0 Win=65535 Len=0 MSS=1460 - перехваченный SYN
4 2.857455 192.168.132.6 -> 192.168.133.200 TCP http > 2410 [SYN, ACK] Seq=0 Ack=1 Win=1500 Len=0 - поддельный SYN,ACK
5 2.857463 192.168.133.200 -> 192.168.132.6 TCP [TCP keep alive] 2410 > http [RST] Seq=16777216 Ack=656072754 Win=1500 Len=0 - наш RST, который неправильно интерпретируется
6 2.857796 192.168.132.6 -> 192.168.133.200 TCP http > 2410 [SYN, ACK] Seq=0 Ack=1 Win=1500 Len=0 - а вот и ответ от сервера

Вопрос: как правильно "отменить" посылку SYN?

Ответ на: комментарий от hyde

эх, и правда, это tethereal с включенным Relative seq numbers в опциях, до этого смотрел только на вывод tcpdump и не углядел.
завтра отпишусь что у меня получилось

BreadFan ★★
() автор топика
Ответ на: комментарий от hyde

пофиксил, но этот гад все равно присылает RST :(

2 0.156095 205.188.2.17 -> 192.168.133.200 TCP 5190 > 3363 [ACK] Seq=0 Ack=6 Win=16384 Len=0
3 9.279778 192.168.133.200 -> 213.180.204.8 TCP 4296 > http [SYN] Seq=0 Ack=0 Win=65535 Len=0 MSS=1460
4 9.280251 213.180.204.8 -> 192.168.133.200 TCP http > 4296 [SYN, ACK] Seq=0 Ack=1 Win=1500 Len=0
5 9.280258 192.168.133.200 -> 213.180.204.8 TCP 4296 > http [RST] Seq=1 Ack=426096632 Win=1500 Len=0
6 9.280695 192.168.133.200 -> 213.180.204.8 TCP 4296 > http [ACK] Seq=1 Ack=1 Win=65535 Len=0
7 10.885810 192.168.133.200 -> 213.180.204.8 HTTP Continuation
8 10.912781 213.180.204.8 -> 192.168.133.200 TCP http > 4296 [RST] Seq=1 Ack=4139215393 Win=0 Len=0

может у кого-нить есть идеи?

BreadFan ★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.