Skip to content

Latest commit

 

History

History
1154 lines (791 loc) · 47.2 KB

File metadata and controls

1154 lines (791 loc) · 47.2 KB

二、网络探索

本章向您展示了如何做一些在许多情况下可能是非法的、不道德的、违反服务条款的或不是好主意的事情。这里提供的信息可用于保护您免受威胁,并使您自己的系统更安全。在遵循这些说明之前,请确保您站在法律和道德的正确一边。。。善用你的力量!

在本章中,我们将介绍:

  • 使用 TCP SYN ping 扫描发现主机
  • 使用 TCP 确认 ping 扫描发现主机
  • 使用 UDP ping 扫描发现主机
  • 使用 ICMP ping 扫描发现主机
  • 使用 IP 协议 ping 扫描发现主机
  • 使用 ARP ping 扫描发现主机
  • 使用广播 ping 发现主机
  • 用额外的随机数据隐藏我们的流量
  • 强制 DNS 解析
  • 从扫描中排除主机
  • 扫描 IPv6 地址
  • 使用广播脚本收集网络信息

导言

近年来,Nmap 已成为网络探索的实际工具,其他扫描器远远落后。它的流行源于拥有大量对渗透测试人员和系统管理员有用的特性。它相应地支持应用于主机和服务发现的若干 ping 和端口扫描技术。

受数据包过滤系统(如防火墙或入侵防御系统)保护的主机有时会由于用于阻止某些类型流量的规则而导致错误结果。Nmap 在这些情况下提供的灵活性是非常宝贵的,因为我们可以很容易地尝试替代主机发现技术(或它们的组合)来克服这些限制。Nmap 还包括一些非常有趣的特性,使我们的流量不那么可疑。因此,如果您想执行真正全面的扫描,学习如何组合这些功能是至关重要的。

系统管理员将了解不同扫描技术的内部工作原理,并希望激励他们强化流量过滤规则,使其主机更安全。

本章介绍支持的ping 扫描技术——TCP SYN、TCP ACK、UDP、IP、ICMP 和广播。还介绍了其他有用的技巧,包括如何强制 DNS 解析、随机化主机顺序、附加随机数据和扫描 IPv6 地址。

别忘了访问主机发现参考指南,该指南位于http://nmap.org/book/man-host-discovery.html

通过 TCP SYN ping 扫描发现主机

Ping 扫描用于检测网络中的活动主机。Nmap 的默认 ping 扫描(-sP使用 TCP ACK 和 ICMP 回显请求来确定主机是否正在响应,但如果防火墙阻止这些请求,我们将错过此主机。幸运的是,Nmap 支持一种称为 TCP SYN-ping 扫描的扫描技术,这种技术在这些情况下非常方便,因为系统管理员可以更灵活地使用其他防火墙规则。

本食谱将介绍 TCP 同步扫描及其相关选项。

怎么做。。。

打开终端并输入以下命令:

$ nmap -sP -PS 192.168.1.1/24

您应该看到使用 TCP SYN ping 扫描找到的主机列表:

$ nmap -sP -PS 192.168.1.1/24 
Nmap scan report for 192.168.1.101 
Host is up (0.088s latency). 
Nmap scan report for 192.168.1.102 
Host is up (0.000085s latency). 
Nmap scan report for 192.168.1.254 
Host is up (0.0042s latency). 
Nmap done: 256 IP addresses (3 hosts up) scanned in 18.69 seconds 

它是如何工作的。。。

参数-sP告诉 Nmap 执行 ping 扫描,该扫描只包括发现在线主机。

标志-PS强制 TCP 同步扫描。这种类型的 ping 扫描的工作方式如下:

  • Nmap 向端口 80 发送 TCP SYN 数据包。
  • 如果端口关闭,主机将使用 RST 数据包进行响应。
  • 如果端口打开,主机将用 TCP SYN/ACK 数据包响应,表明可以建立连接。然后,发送 RST 数据包以重置此连接。

192.168.1.1/24中的 CIDR/24用于表示我们希望扫描专用网络中的所有 256 个 IP。

还有更多。。。

让我们对不响应 ICMP 请求的主机启动 ping 扫描。

# nmap -sP 0xdeadbeefcafe.com 

Note: Host seems down. If it is really up, but blocking our ping probes, try -Pn 
Nmap done: 1 IP address (0 hosts up) scanned in 3.14 seconds 

主机被标记为脱机,但让我们尝试强制 TCP SYN ping 扫描:

# nmap -sP -PS 0xdeadbeefcafe.com 

Nmap scan report for 0xdeadbeefcafe.com (50.116.1.121) 
Host is up (0.090s latency). 
Nmap done: 1 IP address (1 host up) scanned in 13.24 seconds 

这一次,我们发现这个特定的主机确实是在线的,但是在一个过滤 TCP ACK 或 ICMP 回显请求的系统后面。

特权与非特权 TCP 同步扫描

作为无法发送原始数据包的非特权用户运行 TCP SYN ping 扫描,使 Nmap 使用系统调用connect()发送 TCP SYN 数据包。在这种情况下,当函数成功返回时,Nmap 区分 SYN/ACK 数据包,当收到 ECONREFUNCED 错误消息时,区分 RST 数据包。

防火墙和流量过滤器

在 TCP SYN ping 扫描期间,Nmap 使用 SYN/ACK 和 RST 响应来确定主机是否正在响应。需要注意的是,存在配置为丢弃 RST 数据包的防火墙。在这种情况下,除非我们指定一个开放端口,否则 TCP SYN ping 扫描将失败:

$ nmap -sP -PS80 <target>

您可以设置要与-PS(端口列表或范围)一起使用的端口列表,如下所示:

$ nmap -sP -PS80,21,53 <target>
$ nmap -sP -PS1-1000 <target>
$ nmap -sP -PS80,100-1000 <target>

另见

  • 第一章Nmap 基础中的在您的网络中查找实时主机配方
  • 使用 TCP 确认 ping 扫描发现主机配方
  • 使用 UDP ping 扫描发现主机配方
  • 使用 ICMP ping 扫描发现主机配方
  • 使用 IP 协议 ping 扫描主机配方
  • 使用 ARP ping 扫描发现主机配方
  • 使用广播 pings方法发现主机
  • 第 3 章中的使用 TCP ACK 扫描配方发现有状态防火墙收集额外主机信息

通过 TCP 确认 ping 扫描发现主机

与 TCP SYN ping 扫描类似,TCP ACK ping 扫描用于确定主机是否有响应。它可以用来检测阻止 SYN 数据包或 ICMP 回显请求的主机,但它很可能会被跟踪连接状态的现代防火墙阻止。

以下配方显示了如何执行 TCP 确认 ping 扫描及其相关选项。

怎么做。。。

打开终端并输入以下命令:

# nmap -sP -PA <target>

它是如何工作的。。。

TCP 确认 ping 扫描的工作方式如下:

  • Nmap 发送一个空 TCP 数据包,其 ACK 标志设置为端口 80
  • 如果主机处于脱机状态,则不应响应此请求
  • 如果主机联机,它将返回一个 RST 数据包,因为该连接不存在

还有更多。。。

重要的是要了解,在某些情况下,这种技术将不起作用。让我们针对这些主机之一启动 TCP 确认 ping 扫描。

# nmap -sP -PA 0xdeadbeefcafe.com 

Note: Host seems down. If it is really up, but blocking our ping probes, try -Pn 
Nmap done: 1 IP address (0 hosts up) scanned in 3.14 seconds 

主机显示为脱机,但让我们尝试使用同一主机进行 TCP SYN ping 扫描。

# nmap -sP -PS 0xdeadbeefcafe.com 

Nmap scan report for 0xdeadbeefcafe.com (50.116.1.121) 
Host is up (0.090s latency). 
Nmap done: 1 IP address (1 host up) scanned in 13.24 seconds 

我们发现主机处于联机状态,但阻止了这些 ACK 数据包。

特权与非特权 TCP 确认 ping 扫描

TCP ACK ping 扫描需要作为特权用户运行,否则系统调用connect()用于发送空 TCP SYN 数据包。因此,TCP ACK ping 扫描不会将前面讨论过的 TCP ACK 技术作为非特权用户使用,而是执行 TCP SYN ping 扫描。

在 TCP 确认 ping 扫描中选择端口

此外,您可以使用此技术选择要探测的端口,方法是在标记-PA后列出这些端口:

# nmap -sP -PA21,22,80 <target>
# nmap -sP -PA80-150 <target>
# nmap -sP -PA22,1000-65535 <target>

另见

  • 第一章Nmap 基础中的在您的网络中查找实时主机配方
  • 使用 TCP SYN ping 扫描主机配方
  • 使用 UDP ping 扫描发现主机配方
  • 使用 ICMP ping 扫描发现主机配方
  • 使用 IP 协议 ping 扫描主机配方
  • 使用 ARP ping 扫描发现主机配方
  • 使用广播 pings方法发现主机
  • 第 3 章中的使用 TCP ACK 扫描配方发现有状态防火墙收集额外主机信息

通过 UDP ping 扫描发现主机

Ping 扫描用于确定主机是否有响应,可以认为是在线的。UDP ping 扫描的优点是能够通过严格的 TCP 过滤检测防火墙后面的系统,从而忘记 UDP 通信。

下一个食谱描述了如何使用 Nmap 及其相关选项执行 UDP ping 扫描。

怎么做。。。

打开终端并键入以下命令:

# nmap -sP -PU <target>

Nmap 将确定使用此技术是否可以到达<target>

# nmap -sP -PU scanme.nmap.org 

Nmap scan report for scanme.nmap.org (74.207.244.221) 
Host is up (0.089s latency). 
Nmap done: 1 IP address (1 host up) scanned in 13.25 seconds 

它是如何工作的。。。

UDP ping 扫描使用的技术工作如下:

  • Nmap 向端口 31 和 338 发送空 UDP 数据包
  • 如果主机正在响应,则应返回 ICMP 端口不可访问错误
  • 如果主机脱机,可能会返回各种 ICMP 错误消息

还有更多。。。

不响应空 UDP 数据包的服务在探测时将生成误报。这些服务将忽略 UDP 数据包,主机将被错误地标记为脱机。因此,选择可能关闭的端口非常重要。

在 UDP ping 扫描中选择端口

要指定要探测的端口,请将它们添加到标记-PUas follows之后:

# nmap -sP -PU1337,11111 scanme.nmap.org

另见

  • 第一章Nmap 基础中的在您的网络中查找实时主机配方
  • 使用 TCP SYN ping 扫描主机配方
  • 使用 TCP 确认 ping 扫描发现主机配方
  • 使用 ICMP ping 扫描发现主机配方
  • 使用 IP 协议 ping 扫描主机配方
  • 使用 ARP ping 扫描发现主机配方
  • 使用广播 pings方法发现主机
  • 第 3 章中的使用 TCP ACK 扫描配方发现有状态防火墙收集额外主机信息

通过 ICMP ping 扫描发现主机

Ping 扫描用于确定主机是否在线并响应。ICMP 消息用于此目的,因此 ICMP ping 扫描使用这些类型的数据包来完成此任务。

以下配方描述了如何使用 Nmap 执行 ICMP ping 扫描,以及不同类型 ICMP 消息的标志。

怎么做。。。

要发出 ICMP 回显请求,请打开终端并输入以下命令:

# nmap -sP -PE scanme.nmap.org

如果主机响应,您将看到类似的内容:

# nmap -sP -PE scanme.nmap.org 

Nmap scan report for scanme.nmap.org (74.207.244.221) 
Host is up (0.089s latency). 
Nmap done: 1 IP address (1 host up) scanned in 13.25 seconds 

它是如何工作的。。。

参数-sP -PE scanme.nmap.org告诉 Nmap 向主机scanme.nmap.org发送 ICMP 回送请求数据包。如果我们收到对此探测器的 ICMP 回送回复,我们可以确定主机处于联机状态。

SENT (0.0775s) ICMP 192.168.1.102 > 74.207.244.221 Echo request (type=8/code=0) ttl=56 id=58419 iplen=28 
RCVD (0.1671s) ICMP 74.207.244.221 > 192.168.1.102 Echo reply (type=0/code=0) ttl=53 id=24879 iplen=28 
Nmap scan report for scanme.nmap.org (74.207.244.221) 
Host is up (0.090s latency). 
Nmap done: 1 IP address (1 host up) scanned in 0.23 seconds 

还有更多。。。

不幸的是,ICMP 已经存在很长时间了,远程 ICMP 数据包现在通常被系统管理员阻止。然而,它仍然是监视本地网络的一种有用的 ping 技术。

ICMP 类型

还有其他 ICMP 消息可用于主机发现,Nmap 支持 ICMP 时间戳回复(-PP)和地址标记回复(-PM)。这些变体可以绕过配置错误的防火墙,防火墙只阻止 ICMP 回显请求。

$ nmap -sP -PP <target>
$ nmap -sP -PM <target>

另见

  • 第一章Nmap 基础中的在您的网络中查找实时主机配方
  • 使用 TCP SYN ping 扫描主机配方
  • 使用 TCP 确认 ping 扫描发现主机配方
  • 使用 UDP ping 扫描发现主机配方
  • 使用 IP 协议 ping 扫描主机配方
  • 使用 ARP ping 扫描发现主机配方
  • 使用广播 pings方法发现主机
  • 第 3 章使用 TCP ACK 扫描配方发现有状态防火墙收集额外主机信息**

通过 IP 协议 ping 扫描发现主机

Ping 扫描对于主机发现非常重要。系统管理员和渗透测试人员使用它们来确定哪些主机在线并响应。Nmap 实现了几种 ping 扫描技术,包括一种称为 IP 协议 ping 扫描的技术。这种技术尝试使用不同的 IP 协议发送不同的数据包,希望得到一个指示主机在线的响应。

此配方描述了如何执行 IP 协议 ping 扫描。

怎么做。。。

打开终端并输入以下命令:

# nmap -sP -PO scanme.nmap.org

如果主机响应了任何请求,您应该看到如下内容:

# nmap -sP -PO scanme.nmap.org 
Nmap scan report for scanme.nmap.org (74.207.244.221) 
Host is up (0.091s latency). 
Nmap done: 1 IP address (1 host up) scanned in 13.25 seconds 

它是如何工作的。。。

参数-sP -PO scanme.nmap.org告诉 Nmap 对主机scanme.nmap.org执行 IP 协议 ping 扫描。

默认情况下,此 ping 扫描将使用协议 IGMP、IP-in-IP 和 ICMP 尝试获取指示主机联机的响应。使用--packet-trace将显示窗帘后面发生的更多细节:

# nmap -sP -PO --packet-trace scanme.nmap.org 

SENT (0.0775s) ICMP 192.168.1.102 > 74.207.244.221 Echo request (type=8/code=0) ttl=52 id=8846 iplen=28 
SENT (0.0776s) IGMP (2) 192.168.1.102 > 74.207.244.221: ttl=38 id=55049 iplen=28 
SENT (0.0776s) IP (4) 192.168.1.102 > 74.207.244.221: ttl=38 id=49338 iplen=20 
RCVD (0.1679s) ICMP 74.207.244.221 > 192.168.1.102 Echo reply (type=0/code=0) ttl=53 id=63986 iplen=28 
NSOCK (0.2290s) UDP connection requested to 192.168.1.254:53 (IOD #1) EID 8 
NSOCK (0.2290s) Read request from IOD #1 [192.168.1.254:53] (timeout: -1ms) EID 18 
NSOCK (0.2290s) Write request for 45 bytes to IOD #1 EID 27 [192.168.1.254:53]: .............221.244.207.74.in-addr.arpa..... 
NSOCK (0.2290s) Callback: CONNECT SUCCESS for EID 8 [192.168.1.254:53] 
NSOCK (0.2290s) Callback: WRITE SUCCESS for EID 27 [192.168.1.254:53] 
NSOCK (4.2300s) Write request for 45 bytes to IOD #1 EID 35 [192.168.1.254:53]: .............221.244.207.74.in-addr.arpa..... 
NSOCK (4.2300s) Callback: WRITE SUCCESS for EID 35 [192.168.1.254:53] 
NSOCK (8.2310s) Write request for 45 bytes to IOD #1 EID 43 [192.168.1.254:53]: .............221.244.207.74.in-addr.arpa..... 
NSOCK (8.2310s) Callback: WRITE SUCCESS for EID 43 [192.168.1.254:53] 
Nmap scan report for scanme.nmap.org (74.207.244.221) 
Host is up (0.090s latency). 
Nmap done: 1 IP address (1 host up) scanned in 13.23 seconds 

标记为SENT的三行显示 IP 数据包中的 ICMP、IGMP 和 IP:

SENT (0.0775s) ICMP 192.168.1.102 > 74.207.244.221 Echo request (type=8/code=0) ttl=52 id=8846 iplen=28 
SENT (0.0776s) IGMP (2) 192.168.1.102 > 74.207.244.221: ttl=38 id=55049 iplen=28 
SENT (0.0776s) IP (4) 192.168.1.102 > 74.207.244.221: ttl=38 id=49338 iplen=20 

在这三个国家中,只有 ICMP 作出了回应:

RCVD (0.1679s) ICMP 74.207.244.221 > 192.168.1.102 Echo reply (type=0/code=0) ttl=53 id=63986 iplen=28 

然而,这足以表明该主机处于联机状态。

还有更多。。。

您还可以通过在选项-PO后面列出 IP 协议来设置要使用的 IP 协议。例如,要使用协议 ICMP(协议编号 1)、IGMP(协议编号 2)和 UDP(协议编号 17),可以使用以下命令:

# nmap -sP -PO1,2,4 scanme.nmap.org

使用此技术发送的所有数据包都将为空。请记住,您可以使用选项--data-length:生成随机数据以用于这些数据包

# nmap -sP -PO --data-length 100 scanme.nmap.org

支持的 IP 协议及其有效负载

使用时,设置其所有协议头的协议包括:

  • TCP:协议编号 6
  • UDP:协议编号 17
  • ICMP:协议编号 1
  • IGMP:协议编号 2

对于任何其他 IP 协议,只发送带有 IP 报头的数据包。

另见

  • 第一章Nmap 基础中的在您的网络中查找实时主机配方
  • 使用 TCP SYN ping 扫描主机配方
  • 使用 TCP 确认 ping 扫描发现主机配方
  • 使用 UDP ping 扫描发现主机配方
  • 发现主机 ICMP ping 扫描配方
  • 使用 ARP ping 扫描发现主机配方
  • 使用广播 pings方法发现主机
  • 第 3 章中的使用 TCP ACK 扫描配方发现有状态防火墙收集额外主机信息

通过 ARP ping 扫描发现主机

Ping 扫描被渗透测试人员和系统管理员用来确定主机是否在线。ARP ping 扫描是局域网中检测主机最有效的方法。

通过使用自己的算法来优化这种扫描技术,Nmap 确实大放异彩。下面的方法介绍了启动 ARP ping 扫描的过程及其可用选项。

怎么做。。。

打开您喜爱的终端并输入以下命令:

# nmap -sP -PR 192.168.1.1/24 

您应该看到响应 ARP 请求的主机列表:

# nmap -sP -PR 192.168.1.1/24 

Nmap scan report for 192.168.1.102 
Host is up. 
Nmap scan report for 192.168.1.103 
Host is up (0.0066s latency). 
MAC Address: 00:16:6F:7E:E0:B6 (Intel) 
Nmap scan report for 192.168.1.254 
Host is up (0.0039s latency). 
MAC Address: 5C:4C:A9:F2:DC:7C (Huawei Device Co.) 
Nmap done: 256 IP addresses (3 hosts up) scanned in 14.94 seconds 

它是如何工作的。。。

参数-sP -PR 192.168.1.1/24使 Nmap 启动此专用网络中所有 256 个 IP(CIDR/24)的 ARP ping 扫描。

ARP ping 扫描的工作方式非常简单:

  • ARP 请求被发送到目标
  • 如果主机回复 ARP,很明显它是在线的

要发送 ARP 请求,请使用以下命令:

# nmap -sP -PR --packet-trace 192.168.1.254 

该命令的结果如下:

SENT (0.0734s) ARP who-has 192.168.1.254 tell 192.168.1.102 
RCVD (0.0842s) ARP reply 192.168.1.254 is-at 5C:4C:A9:F2:DC:7C 
NSOCK (0.1120s) UDP connection requested to 192.168.1.254:53 (IOD #1) EID 8 
NSOCK (0.1120s) Read request from IOD #1 [192.168.1.254:53] (timeout: -1ms) EID 18 
NSOCK (0.1120s) Write request for 44 bytes to IOD #1 EID 27 [192.168.1.254:53]: .............254.1.168.192.in-addr.arpa..... 
NSOCK (0.1120s) Callback: CONNECT SUCCESS for EID 8 [192.168.1.254:53] 
NSOCK (0.1120s) Callback: WRITE SUCCESS for EID 27 [192.168.1.254:53] 
NSOCK (0.2030s) Callback: READ SUCCESS for EID 18 [192.168.1.254:53] (44 bytes): .............254.1.168.192.in-addr.arpa..... 
NSOCK (0.2030s) Read request from IOD #1 [192.168.1.254:53] (timeout: -1ms) EID 34 
Nmap scan report for 192.168.1.254 
Host is up (0.011s latency). 
MAC Address: 5C:4C:A9:F2:DC:7C (Huawei Device Co.) 
Nmap done: 1 IP address (1 host up) scanned in 0.22 seconds 

注意扫描输出开始时的 ARP 请求:

SENT (0.0734s) ARP who-has 192.168.1.254 tell 192.168.1.102 
RCVD (0.0842s) ARP reply 192.168.1.254 is-at 5C:4C:A9:F2:DC:7C 

ARP 回复显示主机192.168.1.254处于在线状态,并且具有 MAC 地址5C:4C:A9:F2:DC:7C

还有更多。。。

每次 Nmap 扫描私有地址时,不可避免地需要发出 ARP 请求,因为在发送任何探测之前,我们需要目标的目的地。由于 ARP 回复显示主机处于联机状态,因此在该步骤之后实际上不需要进行进一步的测试。这就是为什么 Nmap 在您每次在专用 LAN 网络中执行 ping 扫描时自动使用此技术的原因,无论传递了什么参数:

# nmap -sP -PS --packet-trace 192.168.1.254 

SENT (0.0609s) ARP who-has 192.168.1.254 tell 192.168.1.102 
RCVD (0.0628s) ARP reply 192.168.1.254 is-at 5C:4C:A9:F2:DC:7C 
NSOCK (0.1370s) UDP connection requested to 192.168.1.254:53 (IOD #1) EID 8 
NSOCK (0.1370s) Read request from IOD #1 [192.168.1.254:53] (timeout: -1ms) EID 18 
NSOCK (0.1370s) Write request for 44 bytes to IOD #1 EID 27 [192.168.1.254:53]: 1............254.1.168.192.in-addr.arpa..... 
NSOCK (0.1370s) Callback: CONNECT SUCCESS for EID 8 [192.168.1.254:53] 
NSOCK (0.1370s) Callback: WRITE SUCCESS for EID 27 [192.168.1.254:53] 
NSOCK (0.1630s) Callback: READ SUCCESS for EID 18 [192.168.1.254:53] (44 bytes): 1............254.1.168.192.in-addr.arpa..... 
NSOCK (0.1630s) Read request from IOD #1 [192.168.1.254:53] (timeout: -1ms) EID 34 
Nmap scan report for 192.168.1.254 
Host is up (0.0019s latency). 
MAC Address: 5C:4C:A9:F2:DC:7C (Huawei Device Co.) 
Nmap done: 1 IP address (1 host up) scanned in 0.18 seconds 

要强制 Nmap 在扫描专用地址时不执行 ARP ping 扫描,请使用选项--send-ip。这将产生与以下类似的输出:

# nmap -sP -PS --packet-trace --send-ip 192.168.1.254 

SENT (0.0574s) TCP 192.168.1.102:63897 > 192.168.1.254:80 S ttl=53 id=435 iplen=44  seq=128225976 win=1024 <mss 1460> 
RCVD (0.0592s) TCP 192.168.1.254:80 > 192.168.1.102:63897 SA ttl=254 id=3229 iplen=44  seq=4067819520 win=1536 <mss 768> 
NSOCK (0.1360s) UDP connection requested to 192.168.1.254:53 (IOD #1) EID 8 
NSOCK (0.1360s) Read request from IOD #1 [192.168.1.254:53] (timeout: -1ms) EID 18 
NSOCK (0.1360s) Write request for 44 bytes to IOD #1 EID 27 [192.168.1.254:53]: d~...........254.1.168.192.in-addr.arpa..... 
NSOCK (0.1360s) Callback: CONNECT SUCCESS for EID 8 [192.168.1.254:53] 
NSOCK (0.1360s) Callback: WRITE SUCCESS for EID 27 [192.168.1.254:53] 
NSOCK (0.1610s) Callback: READ SUCCESS for EID 18 [192.168.1.254:53] (44 bytes): d~...........254.1.168.192.in-addr.arpa..... 
NSOCK (0.1610s) Read request from IOD #1 [192.168.1.254:53] (timeout: -1ms) EID 34 
Nmap scan report for 192.168.1.254 
Host is up (0.0019s latency). 
MAC Address: 5C:4C:A9:F2:DC:7C (Huawei Device Co.) 
Nmap done: 1 IP address (1 host up) scanned in 0.17 seconds 

MAC 地址欺骗

在执行 ARP ping 扫描时,可能会欺骗您的 MAC 地址。使用--spoof-mac设置新的 MAC 地址:

# nmap -sP -PR --spoof-mac 5C:4C:A9:F2:DC:7C

另见

  • 第一章Nmap 基础中的在您的网络中查找实时主机配方
  • 使用 TCP SYN ping 扫描主机配方
  • 使用 TCP 确认 ping 扫描发现主机配方
  • 使用 UDP ping 扫描发现主机配方
  • 使用 ICMP ping 扫描发现主机配方
  • 使用 IP 协议 ping 扫描主机配方
  • 使用广播 pings方法发现主机
  • 第 3 章中的使用 TCP ACK 扫描配方发现有状态防火墙收集额外主机信息

使用广播 ping 发现主机

广播 ping将 ICMP 回显请求发送到本地广播地址,即使它们不是一直工作,它们也是一种很好的发现网络中主机的方法,而无需向其他 HST 发送探测。

此配方描述了如何使用 Nmap NSE 通过广播 ping 发现新主机。

怎么做。。。

打开终端并键入以下命令:

# nmap --script broadcast-ping 

您应该看到响应广播 ping 的主机列表:

Pre-scan script results: 
| broadcast-ping: 
|   IP: 192.168.1.105  MAC: 08:00:27:16:4f:71 
|   IP: 192.168.1.106  MAC: 40:25:c2:3f:c7:24 
|_  Use --script-args=newtargets to add the results as targets 
WARNING: No targets were specified, so 0 hosts scanned. 
Nmap done: 0 IP addresses (0 hosts up) scanned in 3.25 seconds 

它是如何工作的。。。

广播 ping 通过向本地广播地址255.255.255.255发送 ICMP 回显请求,然后等待主机以 ICMP 回显回复进行回复来工作。它会产生类似以下内容的输出:。

# nmap --script broadcast-ping --packet-trace 

NSOCK (0.1000s) PCAP requested on device 'wlan2' with berkeley filter 'dst host 192.168.1.102 and icmp[icmptype]==icmp-echoreply' (promisc=0 snaplen=104 to_ms=200) (IOD #1) 
NSOCK (0.1000s) PCAP created successfully on device 'wlan2' (pcap_desc=4 bsd_hack=0 to_valid=1 l3_offset=14) (IOD #1) 
NSOCK (0.1000s) Pcap read request from IOD #1  EID 13 
NSOCK (0.1820s) Callback: READ-PCAP SUCCESS for EID 13 
NSOCK (0.1820s) Pcap read request from IOD #1  EID 21 
NSOCK (0.1850s) Callback: READ-PCAP SUCCESS for EID 21 
NSOCK (0.1850s) Pcap read request from IOD #1  EID 29 
NSOCK (3.1850s) Callback: READ-PCAP TIMEOUT for EID 29 
NSE: > | CLOSE 
Pre-scan script results: 
| broadcast-ping: 
|   IP: 192.168.1.105  MAC: 08:00:27:16:4f:71 
|   IP: 192.168.1.106  MAC: 40:25:c2:3f:c7:24 
|_  Use --script-args=newtargets to add the results as targets 
WARNING: No targets were specified, so 0 hosts scanned. 
Nmap done: 0 IP addresses (0 hosts up) scanned in 3.27 seconds 

还有更多。。。

要增加 ICMP 回显请求的数量,请使用脚本参数broadcast-ping.num_probes

# nmap --script broadcast-ping --script-args broadcast-ping.num_probes=5

在扫描大型网络时,可能需要使用--script-args broadcast-ping.timeout=<time in ms>增加超时限制,以避免丢失延迟差的主机。

# nmap --script broadcast-ping --script-args broadcast-ping.timeout=10000

您可以使用broadcast-ping.interface指定网络接口。如果不指定接口,broadcast-ping将使用所有具有 IPv4 地址的接口发送探测。

# nmap --script broadcast-ping --script-args broadcast-ping.interface=wlan3

目标库

参数--script-args=newtargets强制 Nmap 将这些新找到的主机用作目标:

# nmap --script broadcast-ping --script-args newtargets 
Pre-scan script results: 
| broadcast-ping: 
|   IP: 192.168.1.105  MAC: 08:00:27:16:4f:71 
|_  IP: 192.168.1.106  MAC: 40:25:c2:3f:c7:24 
Nmap scan report for 192.168.1.105 
Host is up (0.00022s latency). 
Not shown: 997 closed ports 
PORT    STATE SERVICE 
22/tcp  open  ssh 
80/tcp  open  http 
111/tcp open  rpcbind 
MAC Address: 08:00:27:16:4F:71 (Cadmus Computer Systems) 

Nmap scan report for 192.168.1.106 
Host is up (0.49s latency). 
Not shown: 999 closed ports 
PORT   STATE SERVICE 
80/tcp open  http 
MAC Address: 40:25:C2:3F:C7:24 (Intel Corporate) 

Nmap done: 2 IP addresses (2 hosts up) scanned in 7.25 seconds 

请注意,我们没有指定目标,但newtargets参数仍然将 IPs192.168.1.106192.168.1.105添加到扫描队列中。

参数max-newtargets设置要添加到扫描队列的最大主机数:

# nmap --script broadcast-ping --script-args max-newtargets=3

另见

  • 第一章Nmap 基础中的在您的网络中查找实时主机配方
  • 使用 TCP SYN ping 扫描主机配方
  • 使用 TCP 确认 ping 扫描发现主机配方
  • 使用 UDP ping 扫描发现主机配方
  • 使用 ICMP ping 扫描发现主机配方
  • 使用 IP 协议 ping 扫描主机配方
  • 使用 ARP ping 扫描发现主机配方
  • 第 3 章中的使用 TCP ACK 扫描配方发现有状态防火墙收集额外主机信息

用额外的随机数据隐藏我们的流量

Nmap 扫描生成的数据包通常只设置了协议头,并且仅在某些情况下,才包含特定的有效负载。Nmap 通过使用随机数据作为有效载荷,实现了一种降低检测这些已知探测的可能性的功能。

此配方描述了如何在扫描期间发送 Nmap 发送的数据包中的附加随机数据。

怎么做。。。

要附加 300 字节的随机数据,请打开终端并键入以下命令:

# nmap -sS -PS --data-length 300 scanme.nmap.org

它是如何工作的。。。

参数--data-length <# of bytes>告诉 Nmap 生成随机字节,并将它们作为数据附加到请求中。

此方法支持大多数扫描技术,但需要注意的是,使用此参数会减慢扫描速度,因为我们需要在每个请求中传输更多数据。

在下面的屏幕截图中,显示了默认 Nmap 扫描生成的数据包,以及我们使用参数--data-length的另一个数据包:

How it works...

还有更多。。。

将参数--data-length设置为0将强制 Nmap 在请求中不使用任何有效负载:

# nmap --data-length 0 scanme.nmap.org

另见

  • 第 1 章Nmap 基础中的使用特定端口范围进行扫描
  • 第三章收集额外主机信息中的欺骗端口扫描配方的源 IP
  • 强制 DNS 解析配方
  • 从扫描中排除主机配方
  • 扫描 IPv6 地址配方
  • 第 7 章扫描大型网络中的跳过测试以加速长扫描配方
  • 第 7 章扫描大网络中的调整定时参数配方
  • 第 7 章扫描大网络选择正确的定时模板配方

强制 DNS 解析

DNS 名称经常显示有价值的信息,因为系统管理员根据其功能命名其主机,如firewallmail.domain.com。默认情况下,如果主机脱机,Nmap 不会执行 DNS 解析。通过强制 DNS 解析,我们可以收集有关网络的额外信息,即使主机似乎处于脱机状态。

此配方描述如何在 Nmap 扫描期间强制脱机主机的 DNS 解析。

怎么做。。。

打开终端并输入以下命令:

# nmap -sS -PS -F -R XX.XXX.XXX.220-230

此命令将强制对范围为XX.XXX.XXX.220-230的脱机主机进行 DNS 解析。

考虑使用列表扫描,也将执行 DNS 解析,分别为

是的,列表扫描可以做到这一点。我在这里试图传达的是,您可以包括在端口扫描或运行 NSE 脚本期间停机的主机的 DNS 信息。

它是如何工作的。。。

参数-sS -PS -F -R告诉 Nmap 执行 TCP SYN 隐形(-sS)、SYN ping(-PS)、快速端口扫描(-F),并始终执行 DNS 解析(-R

假设我们想用 IPXX.XXX.XXX.223扫描域0xdeadbeefcafe.com周围的两个 IP,可以使用以下命令:

# nmap -sS -PS -F -R XX.XXX.XXX.222-224
Nmap scan report for liXX-XXX.members.linode.com (XX.XXX.XXX.222) 
Host is up (0.11s latency). 
All 100 scanned ports on liXX-XXX.members.linode.com (XX.XXX.XXX.222) are filtered 

Nmap scan report for 0xdeadbeefcafe.com (XX.XXX.XXX.223) 
Host is up (0.11s latency). 
Not shown: 96 closed ports 
PORT    STATE    SERVICE 
22/tcp  open     ssh 
25/tcp  open smtp 

Nmap scan report for mail.0xdeadbeefcafe.com (XX.XXX.XXX.224) 
Host is up (0.11s latency). 
Not shown: 96 closed ports 
PORT    STATE    SERVICE 
25/tcp  filtered     smtp

在本例中,快速扫描告诉我们,这可能是 Linode 托管的 VPS,也是其邮件服务器的位置。

还有更多。。。

您还可以使用参数-n完全禁用 DNS 解析。这加快了扫描速度,如果您不需要 DNS 解析主机,建议您这样做。

# nmap -sS -PS -F -n scanme.nmap.org

指定不同的 DNS 名称服务器

对于 DNS 解析,Nmap 默认查询系统的 DNS 服务器。可使用参数--dns-servers设置备用 DNS 名称服务器。例如,要使用谷歌的开放 DNS 服务器:

# nmap -sS -PS -R --dns-servers 8.8.8.8,8.8.4.4 <target>

另见

  • 用额外的随机数据隐藏我们的流量配方
  • 第 1 章Nmap 基础中的使用特定端口范围进行扫描
  • 第三章收集额外主机信息中的欺骗端口扫描配方的源 IP
  • 从您的扫描中排除主机配方
  • 扫描 IPv6 地址配方
  • 第 7 章扫描大型网络中的跳过测试以加速长扫描配方
  • 第 7 章扫描大网络中的调整定时参数配方
  • 第 7 章扫描大网络选择正确的定时模板配方

从扫描中排除主机

在某些情况下,需要主机排除以避免扫描某些机器。例如,您可能缺少授权,或者主机已被扫描,您希望节省一些时间。Nmap 实现了一个排除主机或主机列表的选项,以便在这些情况下为您提供帮助。

此配方描述如何从 Nmap 扫描中排除主机。

怎么做。。。

打开终端并键入以下命令:

# nmap -sV -O --exclude 192.168.1.102,192.168.1.254 192.168.1.1/24

您应该看到专网192.168.1.1-255中除 IP192.168.1.254192.168.1.102之外的所有可用主机的扫描结果,如下例所示:

# nmap -sV -O --exclude 192.168.1.102,192.168.1.254 192.168.1.1/24 

Nmap scan report for 192.168.1.101 
Host is up (0.019s latency). 
Not shown: 996 closed ports 
PORT     STATE    SERVICE VERSION 
21/tcp   filtered ftp 
53/tcp   filtered domain 
554/tcp  filtered rtsp 
3306/tcp filtered mysql 
MAC Address: 00:23:76:CD:C5:BE (HTC) 
Too many fingerprints match this host to give specific OS details 
Network Distance: 1 hop 

OS and Service detection performed. Please report any incorrect results at http://nmap.org/submit/ . 
Nmap done: 254 IP addresses (1 host up) scanned in 18.19 seconds 

它是如何工作的。。。

参数-sV -O --exclude 192.168.1.102,192.168.1.254 192.168.1.1/1告诉 Nmap 使用此专用网络中所有 256 个 IP(192.168.1.1/24)的 OS 指纹(-O)执行服务检测扫描(-sV),不包括分别具有 IP192.168.102192.168.1.254--exclude 192.168.1.102,192.168.1.254的机器。

还有更多。。。

参数--exclude也支持 IP 范围,如下例所示:

# nmap -sV -O --exclude 192.168.1-100 192.168.1.1/24 
# nmap -sV -O --exclude 192.168.1.1,192.168.1.10-20 192.168.1.1/24

从扫描中排除主机列表

Nmap 还支持参数--exclude-file <filename>,以排除<filename>中列出的目标:

# nmap -sV -O --exclude-file dontscan.txt 192.168.1.1/24

另见

  • 用额外的随机数据隐藏我们的流量配方
  • 强制 DNS 解析配方
  • 扫描 IPv6 地址配方
  • 用广播脚本采集网络信息
  • 第 1 章Nmap 基础中的使用特定端口范围进行扫描
  • 第三章收集额外主机信息中的欺骗端口扫描配方的源 IP
  • 从您的扫描中排除主机配方
  • 第 7 章扫描大型网络中的跳过测试以加速长扫描配方
  • 第 7 章扫描大网络中的调整定时参数配方
  • 第 7 章扫描大网络选择正确的定时模板配方

正在扫描 IPv6 地址

虽然我们还没有像一些人预测的那样用尽 IPv4 地址,但 IPv6 地址正变得越来越普遍,Nmap 开发团队一直在努力改进其 IPv6 支持。所有端口扫描和主机发现技术都已经实现,这使得 Nmap 在使用 IPv6 网络时至关重要。

此配方描述了如何使用 Nmap 扫描 IPv6 地址。

怎么做。。。

让我们扫描表示本地主机的 IPv6 地址(::1):

# nmap -6 ::1

结果类似于常规 Nmap 扫描:

Nmap scan report for ip6-localhost (::1) 
Host is up (0.000018s latency). 
Not shown: 996 closed ports 
PORT     STATE SERVICE VERSION 
25/tcp   open  smtp    Exim smtpd 
80/tcp   open  http    Apache httpd 2.2.16 ((Debian)) 
631/tcp  open  ipp     CUPS 1.4 
8080/tcp open  http    Apache Tomcat/Coyote JSP engine 1.1 

它是如何工作的。。。

参数-6告诉 Nmap 执行 IPv6 扫描。您基本上可以结合-6设置任何其他标志。它支持使用原始数据包、服务检测、TCP 端口和 ping 扫描以及 Nmap 脚本引擎的扫描技术。

# nmap -6 -sT --traceroute ::1 

Nmap scan report for ip6-localhost (::1) 
Host is up (0.00033s latency). 
Not shown: 996 closed ports 
PORT     STATE SERVICE 
25/tcp   open  smtp 
80/tcp   open  http 
631/tcp  open  ipp 
8080/tcp open  http-proxy 

还有更多。。。

执行 IPv6 扫描时,请记住,您可以使用主机名和 IPv6 地址作为目标:

# nmap -6 scanmev6.nmap.org
# nmap -6 2600:3c01::f03c:91ff:fe93:cd19

IPv6 扫描中的 OS 检测

IPv6 地址的操作系统检测工作方式与 IPv4 类似;发送探针并与指纹数据库匹配。发送的探头列在中 http://nmap.org/book/osdetect-ipv6-methods.html 。您可以使用选项-O在 IPv6 扫描中启用操作系统检测:

#nmap -6 -O <target>

OS 检测是最近添加的,您可以通过发送用于检测算法的 Nmap 数据库的指纹来提供帮助。Luis Martin Garcia 在中描述了提交新 IPv6 指纹的过程 http://seclists.org/nmap-dev/2011/q3/21 。知道 Nmap 团队的工作速度有多快,我知道它很快就会准备好。

另见

  • 用额外的随机数据隐藏我们的流量配方
  • 强制 DNS 解析配方
  • 从您的扫描中排除主机配方
  • 用广播脚本采集网络信息
  • 第 1 章Nmap 基础中的使用特定端口范围进行扫描
  • 第三章收集额外主机信息中的欺骗端口扫描配方的源 IP
  • 扫描 IPv6 地址配方
  • 第 7 章扫描大型网络中的跳过测试以加速长扫描配方
  • 第 7 章扫描大网络中的调整定时参数配方
  • 第 7 章扫描大网络选择正确的定时模板配方

通过广播脚本收集网络信息

广播请求通常会显示协议和主机详细信息,在 Nmap 脚本引擎的帮助下,我们可以从网络中收集有价值的信息。NSE 广播脚本执行检测 dropbox 侦听器、嗅探主机、发现 MS SQL 和 NCP 服务器等任务。

本食谱描述了如何使用 NSE 广播脚本从网络收集有趣的信息。

怎么做。。。

打开终端并输入以下命令:

# nmap --script broadcast

请注意,广播脚本可以在不设置特定目标的情况下运行。找到信息的所有 NSE 脚本都将包含在扫描结果中:

Pre-scan script results: 
| targets-ipv6-multicast-invalid-dst: 
|   IP: fe80::a00:27ff:fe16:4f71  MAC: 08:00:27:16:4f:71  IFACE: wlan2 
|_  Use --script-args=newtargets to add the results as targets 
| targets-ipv6-multicast-echo: 
|   IP: fe80::a00:27ff:fe16:4f71   MAC: 08:00:27:16:4f:71  IFACE: wlan2 
|   IP: fe80::4225:c2ff:fe3f:c724  MAC: 40:25:c2:3f:c7:24  IFACE: wlan2 
|_  Use --script-args=newtargets to add the results as targets 
| targets-ipv6-multicast-slaac: 
|   IP: fe80::a00:27ff:fe16:4f71   MAC: 08:00:27:16:4f:71  IFACE: wlan2 
|   IP: fe80::4225:c2ff:fe3f:c724  MAC: 40:25:c2:3f:c7:24  IFACE: wlan2 
|_  Use --script-args=newtargets to add the results as targets 
| broadcast-ping: 
|   IP: 192.168.1.105  MAC: 08:00:27:16:4f:71 
|   IP: 192.168.1.106  MAC: 40:25:c2:3f:c7:24 
|_  Use --script-args=newtargets to add the results as targets 
| broadcast-dns-service-discovery: 
|   192.168.1.102 
|     9/tcp workstation 
|_      Address=192.168.1.102 fe80:0:0:0:2c0:caff:fe50:e567 
| broadcast-avahi-dos: 
|   Discovered hosts: 
|     192.168.1.102 
|   After NULL UDP avahi packet DoS (CVE-2011-1002). 
|_  Hosts are all up (not vulnerable). 
WARNING: No targets were specified, so 0 hosts scanned. 
Nmap done: 0 IP addresses (0 hosts up) scanned in 35.06 seconds 

它是如何工作的。。。

参数--script broadcast告诉 Nmap 初始化广播类别中的所有 NSE 脚本。该类别包含使用广播请求的脚本,这意味着不直接向目标发送探测。

在编写这篇文章的时候,有 18 个广播脚本可用。让我们看一下脚本描述,这些描述摘自 Nmap 的官方文档:

  • broadcast-avahi-dos:此脚本尝试使用 DNS 服务发现协议在本地网络中发现主机,并向每个主机发送一个空 UDP 数据包,以测试其是否易受 Avahi 空 UDP 数据包拒绝服务攻击(CVE-2011-1002)。
  • broadcast-db2-discover:此脚本试图通过向端口523/udp.发送广播请求来发现网络上的 DB2 服务器
  • broadcast-dhcp-discover:此脚本向广播地址(255.255.255.255)发送 DHCP 请求并报告结果。它在执行此操作时使用静态 MAC 地址(DE:AD:CO:DE:CA:FE),以防止作用域耗尽。
  • broadcast-dns-service-discovery:此脚本尝试使用 DNS 服务发现协议来发现主机的服务。它发送一个多播 DNS-SD 查询并收集所有响应。
  • broadcast-dropbox-listener:此脚本侦听Dropbox.com客户端每隔 20 秒广播的 LAN 同步信息,然后打印所有发现的客户端 IP 地址、端口号、版本号、显示名称等。
  • broadcast-listener:此脚本嗅探网络以获取传入的广播通信,并尝试解码接收到的数据包。它支持 CDP、HSRP、Spotify、DropBox、DHCP、ARP 等协议。更多信息请参见packetdecoders.lua
  • broadcast-ms-sql-discover:此脚本在同一最广域中发现 Microsoft SQL Server。
  • broadcast-netbios-master-browser:此脚本尝试发现主浏览器及其管理的域。
  • broadcast-novell-locate:此脚本尝试使用服务位置协议发现**Novell NetWare 核心协议****(NCP)**服务器。
  • broadcast-ping:此脚本使用原始以太网数据包向所选接口发送广播 ping,并输出响应主机的 IP 和 MAC 地址或(如果请求)将其添加为目标。运行此脚本需要 Unix 上的 Root 权限,因为它使用原始套接字。大多数操作系统不响应广播 ping 探测,但它们可以配置为响应广播 ping 探测。
  • broadcast-rip-discover:该脚本发现 LAN 上运行 RIPv2 的设备和路由信息。它通过发送一个 RIPv2 请求命令来实现,并从响应请求的所有设备收集响应。
  • broadcast-upnp-info:此脚本试图通过发送多播查询,然后收集、解析和显示所有响应,从 UPnP 服务中提取系统信息。
  • broadcast-wsdd-discover:此脚本使用多播查询来发现支持 Web 服务动态发现(WS-Discovery)协议的设备。它还试图找到任何已发布的**Windows Communication Framework(WCF)**web 服务(.NET 4.0 或更高版本)。
  • lltd-discovery:此脚本使用 Microsoft LLTD 协议发现本地网络上的主机。
  • targets-ipv6-multicast-echo:此脚本向所有节点、链路本地多播地址(ff02::1发送 ICMPv6 echo 请求数据包,以发现 LAN 上的响应主机,而无需单独 ping 每个 IPv6 地址。
  • targets-ipv6-multicast-invalid-dst:此脚本向所有节点、链路本地多播地址(ff02::1)发送一个带有无效扩展头的 ICMPv6 数据包,以发现局域网上的(一些)可用主机。这是因为某些主机将使用 ICMPv6 参数问题数据包响应此探测。
  • targets-ipv6-multicast-slaac:此脚本通过触发**无状态地址 au****o 配置(SLAAC)**来执行 IPv6 主机发现。
  • targets-sniffer:此脚本在相当长的时间内(默认情况下为 10 秒)嗅探本地网络并打印发现的地址。如果设置了newtargets脚本参数,则会将发现的地址添加到扫描队列中。

考虑每个脚本都有一组可用的参数,有时需要调整这些参数。例如,targets-sniffer仅嗅探网络 10 秒,这对于大型网络可能不够:

# nmap --script broadcast --script-args targets-sniffer.timeout 30 

正如您所看到的,广播类别有一些非常漂亮的 NSE 脚本,值得一看。您可以在了解有关广播脚本的特定参数的更多信息 http://nmap.org/nsedoc/categories/broadcast.html

还有更多。。。

请记住,NSE 脚本可以按类别、表达式或文件夹进行选择。因此,我们可以调用除名为targets-*之外的所有广播脚本,如下所示:

# nmap --script "broadcast and not targets*" 

Pre-scan script results: 
| broadcast-netbios-master-browser: 
| ip             server    domain 
|_192.168.1.103  CLDRN-PC  WORKGROUP 
| broadcast-upnp-info: 
|   192.168.1.103 
|       Server: Microsoft-Windows-NT/5.1 UPnP/1.0 UPnP-Device-Host/1.0 
|_      Location: http://192.168.1.103:2869/upnphost/udhisapi.dll?content=uuid:69d208b4-2133-48d4-a387-3a19d7a733de 
| broadcast-dns-service-discovery: 
|   192.168.1.101 
|     9/tcp workstation 
|_      Address=192.168.1.101 fe80:0:0:0:2c0:caff:fe50:e567 
| broadcast-wsdd-discover: 
|   Devices 
|     192.168.1.103 
|         Message id: b9dcf2ab-2afd-4791-aaae-9a2091783e90 
|         Address: http://192.168.1.103:5357/53de64a8-b69c-428f-a3ec-35c4fc1c16fe/ 
|_        Type: Device pub:Computer 
| broadcast-listener: 
|   udp 
|       DropBox 
|         displayname  ip             port   version  host_int   namespaces 
|_        104784739    192.168.1.103  17500  1.8      104784739  14192704, 71393219, 68308486, 24752966, 69985642, 20936718, 78567110, 76740792, 20866524 
| broadcast-avahi-dos: 
|   Discovered hosts: 
|     192.168.1.101 
|   After NULL UDP avahi packet DoS (CVE-2011-1002). 
|_  Hosts are all up (not vulnerable). 
WARNING: No targets were specified, so 0 hosts scanned. 
Nmap done: 0 IP addresses (0 hosts up) scanned in 34.86 seconds 

目标库

参数--script-args=newtargets强制 Nmap 将这些新找到的主机用作目标:

# nmap --script broadcast-ping --script-args newtargets
Pre-scan script results: 
| broadcast-ping: 
|   IP: 192.168.1.105  MAC: 08:00:27:16:4f:71 
|_  IP: 192.168.1.106  MAC: 40:25:c2:3f:c7:24 
Nmap scan report for 192.168.1.105 
Host is up (0.00022s latency). 
Not shown: 997 closed ports 
PORT    STATE SERVICE 
22/tcp  open  ssh 
80/tcp  open  http 
111/tcp open  rpcbind 
MAC Address: 08:00:27:16:4F:71 (Cadmus Computer Systems) 

Nmap scan report for 192.168.1.106 
Host is up (0.49s latency). 
Not shown: 999 closed ports 
PORT   STATE SERVICE 
80/tcp open  http 
MAC Address: 40:25:C2:3F:C7:24 (Intel Corporate) 

Nmap done: 2 IP addresses (2 hosts up) scanned in 7.25 seconds 

请注意,我们没有指定目标,但是newtargets参数将 IPs192.168.1.106192.168.1.105添加到了扫描队列中。

参数max-newtargets设置要添加到扫描队列的最大主机数:

# nmap --script broadcast-ping --script-args max-newtargets=3

另见

  • 使用广播 pings方法发现主机
  • 强制 DNS 解析配方
  • 扫描 IPv6 地址配方
  • 第三章发现主机名指向同一 IP 地址配方收集额外主机信息
  • 第 3 章中的地理定位 IP 地址配方收集额外主机信息
  • 第一章Nmap 基础中的在您的网络中查找实时主机配方
  • 第一章Nmap 基础中远程主机配方的指纹服务
  • 第一章Nmap 基础中的运行 NSE 脚本配方