При выполнении следующей команды в Mac OSX:
nmap -PN server.com
Он сообщает следующее:
Starting Nmap 7.70 ( https://nmap.org ) at 2019-04-18 16:14 EDT
Nmap scan report for server.com (9.9.9.9)
Host is up (0.020s latency).
Not shown: 997 filtered ports
PORT STATE SERVICE
80/tcp open http
443/tcp open https
8080/tcp open http-proxy
HTTP и https в порядке, но меня сбивает с толку http-proxy
. У нас ничего не работает на порту 8080 на этом сервере:
# sudo ss -lnp | grep :8080
#
И вывод netstat:
# netstat -tnlp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 12378/mysqld
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 2441/nginx: master
tcp 0 0 0.0.0.0:443 0.0.0.0:* LISTEN 2441/nginx: master
tcp6 0 0 :::80 :::* LISTEN 2441/nginx: master
tcp6 0 0 :::443 :::* LISTEN 2441/nginx: master
Это сервер Nginx без прокси-сервера ни на что другое, это просто Nginx. Что мы можем сделать, чтобы «закрыть» этот закрытый порт. Это ошибка Nmap или я что-то не понимаю?
Nmap сообщает об открытом TCP-порту, когда получает ответ SYN / ACK на SYN-зонд на этом порту, или (в режиме TCP Connect, -sT
) при успешном TCP-подключении к порту. Есть несколько случаев, когда вывод netstat / ss и Nmap может отличаться:
--reason
и ищем различия в TTL ответных пакетов от заведомо исправных портов по сравнению с сомнительными. Вы также можете сравнить ответы при захвате пакета, поскольку другие части ответа могут отличаться (в первую очередь, параметры TCP).--reason
вариант и другие сравнения, предложенные выше, помогут обнаружить это. Другой подход - использовать qscan
Сценарий NSE для сравнения времени ответов, чтобы определить, есть ли задержка на некоторых портах из-за дополнительной маршрутизации. Это также может обнаруживать помехи, как в номере 1.masscan
использует, который использует захват пакетов для проверки входящего трафика и необработанные сокеты для генерации ответов.netstat
и ss
двоичные файлы могли быть перезаписаны, или модуль ядра может перехватывать системные вызовы и фильтровать возвращаемые значения, чтобы скрыть порт. Было бы очень необычно найти это на обычном порту, таком как 8080. Nmap часто используется для обнаружения такого рода помех, поскольку он сообщает фактическое поведение цели вместо внутреннего учета, которое фальсифицирует руткит. Однако вы должны убедиться, что ничто другое не мешает сканированию.