例如,在使用带有“-A”选项的 NMAP 进行网络扫描时,它在 OSI 模型的哪一层工作?
作为参考,这是“-A”选项的描述: -A:“启用操作系统检测、版本检测、脚本扫描和跟踪路由”
OSI模型是一个有7层的理论模型;有很多资源描述了哪些层映射到各种网络堆栈中的实际协议层,所以我不会深入讨论。相反,我将详细介绍 TCP/IP 堆栈的每一层发生的情况,该堆栈有 5 层。
lltd-discovery
、broadcast-ospf2-discovery
、sniffer-detect
等。-sT
TCP Connect 扫描除外),Nmap 自己构建网络数据包并直接发送出去,绕过操作系统的网络堆栈。这也是--traceroute
发生的地方,通过发送具有不同的小生存时间 (TTL) 值的数据包来确定每个数据包过期的地址。最后,操作系统检测的部分输入来自网络层:初始 TTL 值、IP ID 分析、ICMP 处理等。-sV
) 接管的地方,将各种数据字符串(探测)发送到开放服务,让它们以独特的方式响应。SSL/TLS 是特殊处理的,因为其他服务可能在其上分层(在这种情况下,它提供类似于 OSI 会话层的东西)。这也是绝大多数 NSE 脚本工作的地方,探测 HTTP、FTP、SSH、RDP 和 SMB 等服务。他们全部?如果你要求某种课程,我会留给你把它变成可以回答你的问题的东西,而不是专注于思考正在发生的事情。
显然第 1 层数据包已发送,但 nmap 并没有真正意识到它们
当在同一个本地网络上时,nmap 会注意 MAC 地址和 ARP。这有助于检测供应商,并为您提供网络距离信息
第 3 层(网络层)用于发送数据包,用于检测主机是否已启动。
传输层(第 4 层)用于 SYN 扫描之类的事情,并检测哪些端口是打开的。发生在第 4 层的序列号检测对操作系统检测很重要。
将 OSI 第 5 层和第 6 层会话以及我永远记不住的会话映射到 TCP/IP 协议栈是很复杂的。我把它留给我不会写的长篇论文。
第 7 层(应用程序)参与脚本和收集网站信息等工作。如果您认为 HTTP 是第 6 层而不是第 7 层(一个有效的世界模型),那么其中一些发生在第 6 层。
正如你所看到的,这真的不是很清楚。
-A 选项似乎做了一些事情。由于它似乎在进行 TCP/UDP 端口检测以及 traceroute(即 ICMP)(man nmap
有关更多信息,请参阅),我想说这包括传输层和网络层。由于它似乎正在检查正在运行的服务器软件的版本,它很有可能也在应用层上。