我正在学习如何在我的kali linux上使用nmap,并且正在测试它中可用的各种类型的扫描。
-sn用于ping扫描,它基本上阻止nmap扫描所有端口(并且可能扫描一个端口)。
然后向下滚动nmap帮助,我找到了另一个选项-PE,即ICMP扫描。我对它做了一些研究,知道它向目标主机发送一个请求,以检查它是否已启动,并在主机打开时接收一个回复查询作为响应。但是,这又是一次平扫描。
但是,我不知道这两者有什么区别。一个比另一个更有效吗?请您解释一下普通的ping扫描做什么吗?
发布于 2021-09-03 13:31:54
要回答这个问题,我们可以看一下nmap手册:
HOST DISCOVERY:
-sL: List Scan - simply list targets to scan
-sn: Ping Scan - disable port scan
-Pn: Treat all hosts as online -- skip host discovery
-PS/PA/PU/PY[portlist]: TCP SYN/ACK, UDP or SCTP discovery to given ports
-PE/PP/PM: ICMP echo, timestamp, and netmask request discovery probes
-PO[protocol list]: IP Protocol Ping
-n/-R: Never do DNS resolution/Always resolve [default: sometimes]
--dns-servers <serv1[,serv2],...>: Specify custom DNS servers
--system-dns: Use OS's DNS resolver
--traceroute: Trace hop path to each host您看,nmap在扫描期间有几个“阶段”。在第一阶段,称为主机发现,所有的目标是点击,看看他们是否在线。在第二阶段,执行实际的端口扫描。
命令-sL、-sn和-Pn修改此行为。-sL只列出要扫描的目标,跳过主机发现和端口扫描阶段。-sn只执行主机发现,完全跳过端口扫描。-Pn跳过主机发现,对所有主机执行端口扫描,就好像ping扫描成功地返回了所有主机一样。
另一方面,-PE、-PP和-PM严格修改主机发现的执行方式。主机发现上的手册页声明如下:
如果没有提供主机发现选项,Nmap将发送一个ICMP回送请求、一个TCP SYN数据包到端口443、一个TCP ACK数据包发送到端口80和一个ICMP时间戳请求。(对于IPv6,省略ICMP时间戳请求,因为它不是ICMPv6的一部分。)这些默认值等效于-PE -PS443 -PA80 -PP选项。这方面的例外是ARP (用于IPv4)和邻居发现(用于IPv6)扫描,这些扫描用于本地以太网网络上的任何目标。对于非特权的Unix用户,默认探测是使用connect系统调用到端口80和443的SYN数据包。当扫描本地网络时,这种主机发现通常就足够了,但是建议使用一组更全面的发现探测来进行安全审核。
因此,如果指定了-PE选项,则意味着发送一个简单的ICMP请求,就像在主机上使用ping实用程序一样。如果没有指定其他选项,这是唯一要做的事情。因此,它实际上不如没有显式地注意到-PE那么全面。
博士
-sn和-PE是两个完全不同的选择。-sn指定不应执行端口扫描。-PE显式地指定了执行主机发现的一种方法,其中-PP和-PM是替代方法。
https://security.stackexchange.com/questions/254904
复制相似问题