Назад | Перейти на главную страницу

Как определить, является ли порт прокси-сервером HTTP

Результат Nmap показывает HTTP-прокси на порте 8080. Как узнать, прокси он или нет, не проверяя его?

8080/tcp open http-proxy

Это зависит от конкретных параметров, которые вы используете для сканирования портов с помощью nmap

  • в большинстве случаев Nmap просто определит, открыт ли порт и прослушивает его, и выполнит преобразование имени этого номера порта в имя службы на основе /etc/services или аналогичная таблица. фактическая служба на конкретном порту, например 8080 может быть чем-то совершенно другим, и вам действительно нужно будет гораздо больше подключаться и тестировать, чтобы получить фактическую услугу

  • когда вы используете некоторые из более полных опций для определение службы и версии Такие как -sV —version-all Nmap уже проделал для вас много отпечатков пальцев и тестирования, и тогда отчеты службы Nmap будут довольно точными.

Вы не можете сказать.

Кто угодно может запустить любую службу на порту 8080: обычный HTTP-прокси, HTTP-прокси-сервер CONNECT, обычный HTTP-сервер или даже SSH-сервер, если вы действительно этого хотите!

HTTP - это протокол, по которому клиент отправляет запрос до того, как сервер отправит приветствие. Таким образом, если вы подключитесь к порту, вы ничего не увидите. Хотя это может указывать на HTTP в качестве протокола, вы не можете сказать, сервер это или прокси, а также не можете быть на 100% уверены, что это протокол HTTP.

Во многих протоколах сервер отправляет приветствие перед клиентом, например, почтовые протоколы, SSH, TLS (ну, в SSH и TLS и клиент, и сервер отправляют приветствие). Таким образом, вы можете исключить некоторые протоколы, подключившись к порту и наблюдая, есть ли приветствие. Но вы не можете исключить их все, и даже тогда, если вы подозреваете, что это протокол HTTP, вы действительно не знаете, прокси это или сервер.

Если ваш порт не является значением по умолчанию 3128, Nmap не обнаруживает HTTP-прокси.

Однако мне удалось подделать неверный запрос к порту, в результате чего прокси-сервер будет выдавать ответ, который будет содержать идентификаторы, которые могут помочь идентифицировать службу.

% echo foo | nc <proxy_ip> <proxy_port> | grep Server

Конечно, администратор сервера может усилить защиту, удалив идентифицирующие заголовки, но все же, вероятно, довольно легко обнаружить с помощью этой методологии.