OSI模型中的哪一层进行网络扫描?

时间:2017-11-09 20:14:40

标签: nmap osi

使用例如NMAP及其“-A”选项进行网络扫描时,OSI模型的哪一层可以工作?

作为参考,这是“-A”选项的描述: -A:“启用操作系统检测,版本检测,脚本扫描和traceroute”

3 个答案:

答案 0 :(得分:1)

OSI模型是一个有7层的理论模型;有很多资源描述哪些层映射到各种网络堆栈中的实际协议层,所以我不会深入研究。相反,我将向您详细介绍TCP / IP堆栈的每一层发生的情况,该堆栈有5层。

  1. 物理层。 Nmap不可避免地使用此图层,但通常不关心它。如果您使用Cat 5电缆,2.4 GHz无线电或同轴电缆并不重要 - 如果没有物理层,则无法使用网络。 Nmap也不知道它是什么;网卡中的固件可以处理。
  2. 数据链接层。此处,Nmap必须再次使用此图层,否则不会将任何内容发送到目标。但是在某些情况下,Nmap知道正在使用哪些第2层协议。这些都需要root权限才能工作:
    • 在Windows上,Nmap无法发送原始IP数据包(在下一层中有更多内容),因此它会回退到发送原始以太网(第2层)帧。这意味着它只能在类似以太网的数据链路上工作 - WiFi很好,但PPTP不起作用。
    • 有一些NSE脚本可以探测第2层协议:lltd-discoverybroadcast-ospf2-discoverysniffer-detect等。
    • 如果目标位于同一数据链路上,Nmap将使用ARP来确定IP地址是否响应。然后它将报告目标的MAC地址。对于IPv6目标,使用邻居发现数据包。
  3. 网络层。 Nmap支持IPv4和IPv6网络层协议。对于端口扫描(除了-sT TCP Connect扫描),Nmap会自行构建网络数据包并直接将其发送出去,绕过操作系统的网络堆栈。这也是--traceroute发生的地方,通过发送具有不同的小生存时间(TTL)值的数据包来确定每个到期的地址。最后,OS检测的部分输入来自网络层:初始TTL值,IP ID分析,ICMP处理等。
  4. 传输层。这是Nmap的“端口扫描程序”核心工作的地方。端口是传输层地址;其中一些可能被目标服务(“开放”端口)使用,而其他可能未使用(“关闭”端口)。 Nmap可以扫描3种不同的传输层协议:TCP,UDP和SCTP。 OS检测的大部分输入来自此处:TCP选项,序列号分析,窗口大小等。
  5. 应用程序层。这是版本检测(-sV)接管的地方,它将各种数据字符串(探针)发送给开放服务,以使它们以独特的方式响应。 SSL / TLS是专门处理的,因为其他服务可以在其上分层(在这种情况下,它提供类似OSI会话层的东西)。这也是绝大多数NSE脚本完成工作,探测HTTP,FTP,SSH,RDP和SMB等服务的地方。

答案 1 :(得分:0)

所有这些?如果你要求某种程度的话,我会留给你把它变成能回答你问题的东西,而是专注于思考正在发生的事情。

  • 显然会发送第1层数据包,但是nmap并不真正意识到它们

  • 在同一本地网络上,nmap会关注MAC地址和ARP。这有助于供应商检测,并为您提供网络距离信息

  • 第3层(网络层)用于发送数据包,用于检测主机是否已启动。

  • 传输层(第4层)用于SYN扫描等事务,并检测哪些端口是打开的。在第4层发生的序列号检测对于OS检测很重要。

  • 映射OSI第5层和第6层会话以及我永远记不住的TCP / IP协议栈很复杂。我把它留给了一篇我不打算写的长文。

  • 第7层(应用程序)涉及脚本和收集有关网站的信息。如果你认为HTTP是第6层而不是7(一个有效的世界模型),那么其中一些发生在第6层。

正如你所看到的,这真的不是很清楚。

答案 2 :(得分:0)

-A选项似乎做了一些事情。由于它似乎正在进行TCP / UDP端口检测以及traceroute(ICMP)(有关详细信息,请参阅man nmap),我想说它包括传输层和网络层。由于它似乎正在检查运行的服务器软件的版本,因此它很可能也在应用层上。