ARP 扫描

  • 默认情况下 Nmap 使用 ping 扫描活动主机
  • 只有当与目标系统位与同一子网时才可以进行 ARP 扫描
    如果我们与目标位与同一子网上, ARP 查询优先于 ICMP 请求
  1. # -PR 表示只想要一个 ARP 扫描
  2. # -sn 表示不扫描端口
  3. pentester@TryHackMe$ sudo nmap -PR -sn 10.10.210.6/24

原理:当 ARP 请求发现活动主机后, 目标会返回一个 ARP 回复

nmap 主机发现 - 图1

ICMP扫描

我们可以直接使用 ping 来目标进行扫描,但并不是可靠的,许多防火墙会阻止 ICMP 回显

  1. # -PE 使用 ICMP 回显请求发现活动主机
  2. pentester@TryHackMe$ sudo nmap -PE -sn 10.10.68.220/24

nmap 主机发现 - 图2

因为 ICMP 回显请求经常被阻止,那么我们还可以考虑 ICMP 时间戳来判断目标是否在线, Nmap 使用时间戳请求(ICMP 类型 13)并检查它是否会收到时间戳回复(ICMP 类型 14)

  1. # -PP 使用 ICMP 时间戳来判断目标是否存在
  2. pentester@TryHackMe$ sudo nmap -PP -sn 10.10.68.220/24

nmap 主机发现 - 图3

我们还可以考虑使用地址掩码 (ICMP 类型 18)

  1. # -PM 使用地址掩码
  2. pentester@TryHackMe$ sudo nmap -PM -sn 10.10.68.220/24

nmap 主机发现 - 图4

TCP

TCP 三次握手中如果目标端口开放会建立三次握手,如果端口关闭则不会有三次握手

1. TCP SYN

  1. pentester@TryHackMe$ sudo nmap -PS -sn 10.10.68.220/24

2. TCP ACK

发送一个 ACK 标志的数据包

  1. pentester@TryHackMe$ sudo nmap -PA -sn 10.10.68.220/24

nmap 主机发现 - 图5

反向 DNS 查找

Nmap 的默认行为是使用反向DNS在线主机。因为主机名可以透露很多信息,所以这是一个很有帮助的步骤。但是,如果您不想发送此类 DNS 查询,则可以-n跳过此步骤。

默认情况下,Nmap 会查找在线主机;但是,您甚至可以使用该选项-R查询离线主机的DNS服务器。如果要使用特定的 DNS 服务器,可以添加该 --dns-servers DNS_SERVER 选项