我知道 -sS 标志用于端口扫描,-PS 用于主机发现。但是主机发现不也是一种端口扫描,数据包会发送到某些默认端口吗?
我在这里试图理解的是,命令
nmap -sS -p1-10000 SOME_IP
和 nmap -PS -p1-10000 SOME_IP
会产生相同的结果,不是吗,那么为什么我们首先有不同的标志呢?
-sS
如果您的计算机发送 SNY 数据包并收到设置了 SYN 和 ACK 标志(打开)的响应,则现在您的计算机会发送 RST 数据包。这种扫描类型减少了扫描时间。
它还需要 sudo 权限,因为它需要制作原始数据包。
-PS
如果 TCP Ping 向目标发送 SYN 或 ACK 数据包,如果目标回复响应,则主机已启动(打开)。PS 表示单个端口或端口列表。
-sS 和 -PS 之间最显着的区别是 -sS 是 TCP SYN 扫描,-PS 是 TCP SYN ping。
-sS 用于 TCP SYN 扫描(主要是端口扫描技术)。它将 TCP SYN 数据包发送到目标端口并观察响应以确定端口是否打开、关闭或被防火墙过滤。 它并不专注于主机发现,而是专注于识别主机上的开放端口。 (-sS详细解释:https://nmap.org/book/synscan.html)
-PS 用于主机发现(TCP SYN Ping),专门用于向目标主机发送 TCP ping 探测。它不执行详细的端口扫描;其主要目标是确定主机是否可达。 它向特定端口(默认为80端口)发送TCP数据包来检查主机是否响应,表明该主机可能在线。 这是 -PS 如何工作的另一种解释。 (https://hub.packtpub.com/discovering-network-hosts-with-tcp-syn-and-tcp-ack-ping-scans-in-nmaptutorial/)
在你的例子中:
nmap -sS -p1-10000 SOME_IP 将对目标主机的端口 1 到 10,000 执行 SYN 扫描,以识别开放端口。所以这是一个完整的扫描。
但是 nmap -PS -p1-10000 SOME_IP 会在几个端口(如端口 80,443 等)上使用 TCP ping 探测来执行主机发现,以检查主机是否处于活动状态。它不会执行详细的端口扫描。
因此,短期而言,当使用 -sS 时,它是对所有端口进行详细扫描,而 -PS 用于快速扫描特定端口。
希望这有帮助。