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

Nmap сообщает об открытом http-прокси на 8080, но ни один из них не запущен

При выполнении следующей команды в 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 может отличаться:

  1. Что-то перехватывает трафик к порту и подменяет ответы намеченной цели. Домашние интернет-провайдеры делают это для портов 25, 137, 139 и 445, чтобы избежать червей и спама. Прозрачные прокси-серверы делают это для 80 и 443 для перехвата веб-трафика. Иногда вы можете обнаружить это с помощью Nmap, используя --reason и ищем различия в TTL ответных пакетов от заведомо исправных портов по сравнению с сомнительными. Вы также можете сравнить ответы при захвате пакета, поскольку другие части ответа могут отличаться (в первую очередь, параметры TCP).
  2. Порт перенаправляется брандмауэром на другой порт той же системы. Вы не сможете узнать извне, что это происходит, но вы можете проверить настройки брандмауэра, чтобы обнаружить это.
  3. Порт перенаправляется в другую систему, например как переадресация портов на устройстве NAT. В большинстве случаев --reason вариант и другие сравнения, предложенные выше, помогут обнаружить это. Другой подход - использовать qscan Сценарий NSE для сравнения времени ответов, чтобы определить, есть ли задержка на некоторых портах из-за дополнительной маршрутизации. Это также может обнаруживать помехи, как в номере 1.
  4. Что-то на цели отвечает, как будто порт 8080 открыт, без использования ОС для управления соединением. Это может быть TCP-стек пользовательского пространства, например masscan использует, который использует захват пакетов для проверки входящего трафика и необработанные сокеты для генерации ответов.
  5. Что-то в ОС не позволяет обычным инструментам отображать открытый порт. Обычно называемый «руткитом», это возможность различных вредоносных программ удаленного доступа, предназначенных для сокрытия инфекции. В netstat и ss двоичные файлы могли быть перезаписаны, или модуль ядра может перехватывать системные вызовы и фильтровать возвращаемые значения, чтобы скрыть порт. Было бы очень необычно найти это на обычном порту, таком как 8080. Nmap часто используется для обнаружения такого рода помех, поскольку он сообщает фактическое поведение цели вместо внутреннего учета, которое фальсифицирует руткит. Однако вы должны убедиться, что ничто другое не мешает сканированию.