как использовать netcat для тестирования сервера socks5? - PullRequest
0 голосов
/ 27 сентября 2018

В rfc1928 , сначала клиент должен отправить сообщение на сервер:

           client send to server:

           +----+----------+----------+
           |VER | NMETHODS | METHODS  |
           +----+----------+----------+
           | 1  |    1     | 1 to 255 |
           +----+----------+----------+

, а затем сервер должен вернуть следующее сообщение:

                 +----+--------+
                 |VER | METHOD |
                 +----+--------+
                 | 1  |   1    |
                 +----+--------+

Итак, яя использую командную строку для проверки:

$ echo -e '0x01''0x01''0x01' | nc test.com 30

эта команда должна вернуться ко мне

0x01 0x01

Но ничего мне не вернуть с пустым пробелом

1 Ответ

0 голосов
/ 23 мая 2019

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

Поле версии для прокси-сервера socks5 должно быть 0x05,Значения NMETHODS и METHODS зависят от того, какие методы вы хотите проверить.

Наконец, необработанный вывод ответного сообщения состоит из непечатаемых символов, поэтому вы обычно не сможете увидеть его, даже еслион был там, и, очевидно, вам нужно завершить ввод netcat CR-LF или ждать вечно, чтобы он действительно отправлял сообщение.

Итак, в общем, для проверки метода 0x00 (без аутентификации), вы можете сделать что-то вроде

printf "\x05\x01\x00\r\n" | nc test.com 30 | hd

и получить

00000000  05 00                                             |..|
00000002

в случае успеха.

...