PDA

Просмотр полной версии : Изменение порта источника при соединении


Izz
24.03.2014, 10:50
Всем привет!
Бывает ситуация, когда при неправильной настройке файрвола, сервисы становятся доступны при сканировании с альтернативным портом источника (например, в Nmap'е за это отвечает параметр g). Однако, встает вопрос, как это использовать.

В принципе,к сервису можно подключиться через nc, исползуя параметр p. Для использования другими утилитами, которые не поддерживают изменение порта, можно пробросить соединение:
nc -lvp 23 -c "/bin/nc -p 53 host_ip 23"

Однако, из-за того, что система даже после завершения соединения, еще некоторое время держит локальный порт зарезервированным, описанный выше способ перестает работать, когда необходимо обращаться чаще одного раза в несколько секунд (актуально при брутфорсе). Уже при второй попытке вываливается ошибка вроде:
(UNKNOWN) [target_host_ip] 23 (telnet) : Cannot assign requested address
приходится некоторое время ждать.

Есть специализированные утилиты под это дело, или как-то иначе вопрос решается?

tex
24.03.2014, 16:47
socat умеет:

socat TCP-LISTEN:3389,fork TCP:192.168.111.111:3389,sourceport=53,reuseaddr



http://man7.org/linux/man-pages/man7/socket.7.html

SO_REUSEADDR
Indicates that the rules used in validating addresses supplied
in a bind(2) call should allow reuse of local addresses. For
AF_INET sockets this means that a socket may bind, except when
there is an active listening socket bound to the address.
When the listening socket is bound to INADDR_ANY with a
specific port then it is not possible to bind to this port for
any local address. Argument is an integer boolean flag.