Nmap 报告在 8080 上打开 http 代理,但没有一个正在运行

Kho*_*zid 1 port nmap

从我的 Mac OSX 执行以下命令时:

 nmap -PN  server.com
Run Code Online (Sandbox Code Playgroud)

它报告如下:

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
Run Code Online (Sandbox Code Playgroud)

http 和 https 都很好,但我对http-proxy. 我们在此服务器上的端口 8080 上没有运行任何内容:

# sudo ss -lnp | grep :8080
#     
Run Code Online (Sandbox Code Playgroud)

和 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  
Run Code Online (Sandbox Code Playgroud)

这是一个 Nginx 服务器,没有代理回任何其他东西,它只是 Nginx。我们可以做什么来“关闭”这个不开放的端口。这是 Nmap 的错误还是我误解了什么?

bon*_*ing 6

当 Nmap 收到对端口上 SYN 探测的 SYN/ACK 响应时,或者(在 TCP 连接模式下-sT)与端口的 TCP 连接成功时,Nmap 会报告打开的 TCP 端口。在多种情况下,netstat/ss 和 Nmap 的输出可能会有所不同:

  1. 有些东西正在拦截到端口的流量并欺骗来自预期目标的回复。住宅 ISP 对端口 25、137、139 和 445 执行此操作,以避免蠕虫和垃圾邮件。透明代理对 80 和 443 执行此操作以拦截 Web 流量。有时,您可以使用 Nmap 来检测这一点,方法是使用该--reason选项并查找来自已知良好端口与可疑端口的响应数据包 TTL 的差异。您还可以比较数据包捕获中的响应,因为回复的其他部分可能不同(主要是 TCP 选项)。
  2. 该端口正被防火墙转发到同一系统上的不同端口。您将无法从外部得知这种情况正在发生,但您可以检查防火墙设置来检测它。
  3. 端口被转发到不同的系统,例如 NAT 设备上的端口转发。在大多数情况下,--reason上面建议的选项和其他比较将有助于检测到这一点。另一种方法是使用qscanNSE 脚本来比较回复时间,以确定某些端口是否因附加路由而出现延迟。这也可以像第 1 点一样检测干扰。
  4. 目标上的某些内容正在响应,就好像端口 8080 已打开一样,而不使用操作系统来管理连接。这可能是一个类似用户空间的 TCP 堆栈masscan,它使用数据包捕获来检查入站流量,并使用原始套接字来生成回复。
  5. 操作系统中的某些内容阻止普通工具显示开放端口。通常称为“rootkit”,这是各种旨在隐藏感染的远程访问恶意软件的功能。netstat和二进制文件ss可能已被覆盖,或者内核模块可能正在拦截系统调用并过滤返回值以隐藏端口。在像 8080 这样的公共端口上发现这种干扰是非常不寻常的。Nmap 通常用于检测这种干扰,因为它报告目标的实际行为,而不是 Rootkit 伪造的内部帐户。不过,您必须确保没有其他因素干扰扫描。