关于nmap的问题

关于nmap的问题

我有几个问题nmap。首先,nmap可以通过以下方式检测服务器:

  • 链路层
  • 网络层
  • 传输层

有什么区别(不是在层上,而是在nmap执行方式上)以及如何nmap做到这一点?

其次,当我使用 进行端口扫描时nmap,UDP 扫描比 TCP 扫描花费的时间要长得多。为什么?

第三:是否有任何不同的方法来探索操作系统然后使用命令-O --osscan-guess(我的意思是完全不同,而不是e)?

答案1

我可以回答你的第三个问题。

识别操作系统的一种完全不同的方法是使用 Michal Zalewski 的p0f。 p0f 根据经过的 TCP 数据包的特定标志和其他特征来猜测操作系统。来自传入连接的 SYN 数据包足以进行猜测。 Zalewski 网站上的“指纹”文件有点旧了。较新指纹文件存在。

答案2

我假设你不想研究源代码,因为它太复杂了。有一本书以简单的方式描述了 nmap 的工作原理以及它的扫描技术之间的区别,它是网络制图的秘密:nmap 综合指南(免费在线提供)。如需更多文档,请检查nmap.org 上的文档

答案3

您的问题的简短回答如下。长答案是,“阅读联机帮助页” 真正长的答案是,查看源代码。

  1. 主机发现(“检测服务器”)

    对于与扫描器位于同一链路上的主机,Nmap 使用 ARP 请求来确定正在扫描的每个 IP 地址的链路层地址。任何肯定的答复都意味着主机已启动。该--send-ip选项可用于覆盖此行为。

    对于所有其他主机,Nmap 使用 ICMP 和 TCP 数据包的组合来尝试请求响应。这可以被描述为“网络层”甚至“传输层”发现。简而言之,ICMP Echo 请求应生成 Echo 响应,TCP SYN 应生成 TCP SYN-ACK 或 RST,TCP ACK 应生成 TCP RST,ICMP 时间戳请求应生成时间戳响应。

  2. UDP 扫描需要更长的时间,因为开放端口不必返回回复。对于每个未受防火墙(过滤)的端口,TCP 扫描可以期待立即回复,无论是打开还是关闭。 UDP 扫描对于开放端口和过滤端口获得相同的回复(有一些例外。请参阅有关的文档UDP 有效负载)。此外,许多主机对关闭端口响应(ICMP端口不可达响应)进行速率限制,因此即使是关闭端口也只能缓慢确定。

  3. 目标系统上运行的某些服务可能会泄露操作系统,因此运行服务版本扫描 ( -sV) 可以提供该信息。此外,许多NSE脚本Nmap自带的也能得到类似的信息。然而,这些方法通常不如使用 可靠-O,并且依赖于可用的特定服务。

相关内容