Закройте TCP соединение с помощью nmap


1

Я пытаюсь закрыть соединения в командной строке. Например, я пытаюсь закрыть мое соединение SSH с помощью этой команды Nmap:

$ sudo nmap -p 22 --scanflags RST <mySSHServerPublicIP>
$ sudo nmap -p 22 --scanflags FIN <mySSHServerPublicIP>

Как только TCP-рукопожатие выполнено (последовательности SYN, SYN-ACK, ACK завершены) и соединение установлено, я понимаю, что Сервер или клиент закрывает это соединение изящно, отправляя FIN, или не изящно, отправляя RST.

Я также попытался подделать мой сервер, чтобы закрыть соединение на моем клиенте:

$ sudo nmap -p 23926 --scanflags FIN -S <mySSHServerPublicIP> <MyLocalIP> -Pn -n -e <interface>

Эти команды не имеют эффекта, кто-нибудь знает, почему он не закрывает соединение?


ну, во-первых, вам нужно будет на самом деле перехватить TCP-соединение, чтобы внедрить в него FIN или RST. если устройство не получит правильные значения SYN и ACK из вашего пакета, оно проигнорирует его. Большинство современных IP-стеков слишком сложны, чтобы предсказать значения, которые позволят обрабатывать пакет как часть логического соединения. Кроме того, TCP требует, чтобы оба конца подтвердили FIN, поэтому FIN клиента, ответ сервера с ACK, а затем отдельный FIN, так что оба конца соглашаются, что соединение закрыто.
Фрэнк Томас

Но я ожидаю увидеть Close_Wait после отправки FIN, но этого не происходит. Почему TCPView может закрыть соединение? Это захватывает соединение? Это возможно с tcpvcon или hping?
Флориан Бидабе

Проще говоря, вы, вероятно, не сможете делать то, что вы хотите. Компьютерные инженеры и ученые потратили десятилетия на разработку системы, которая явно запрещает вам делать то, что вы пытаетесь сделать.
Фрэнк Томас

Спасибо за ваш ответ, это слишком широко, но я надеюсь, что кто-то сможет прийти с техническим анализом. Я сделаю трассировку сети и сравню, что делает закрытие соединения с TCPView, и что делает эта команда nmap.
Флориан Бидабе

Во всех смыслах. Я рекомендую вам прочитать о трехстороннем рукопожатии TCP о том, как создаются соединения. это поможет вам понять, почему игнорируется пакет извне логического соединения и как он идентифицируется (например, недопустимые значения SYN и ACK). Кстати, tcpview просто говорит ОС закрыть порт. это не отправляет пакет.
Фрэнк Томас,

Ответы:


0

Nmap не подходит для этой работы.

Чтобы закрыть соединение, мне нужно предсказать порядковый номер TCP, увеличить его на единицу и ответить на FIN или RST. Похоже, Scapy позволит мне сделать это ... Я обновлю этот ответ после некоторого практического тестирования

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.