nmap 主机发现

1. 主机发现概述

主机发现有时候也叫做 ping 扫描,但它远远超越用世人皆知的 ping 工具 发送简单的 ICMP 回声请求报文。用户完全可以通过使用列表扫描 -sL 或者 通过关闭 ping -P0 跳过 ping 的步骤,也可以使用多个端口把 TPC SYN/ACK,UDP 和 ICMP 任意组合起来使用。

由于主机发现的需求五花八门,所以 nmap 提供了一箩筐的选项来定制您的使用需求。注意:如果没有给出主机发现的选项,nmap 就发送一个 TCP ACK 报文到 80 端口和一个 ICMP 回声请求到每台目标机器。 一个例外是 ARP 扫描用于局域网上的任何目标机器。

2. 主机发现控制选项

nmap 定义了很多用于主机发现控制的控制选项,通过使用命令行向 nmap 指定不同的控制选项来控制namp 使用不同的扫描方式。这些选项可以配合其他的目标说明一起使用,目标说明 这个术语在前面目标说明文章中已经详细的说明,如果没有印象可以阅读前面的文章。前面文章也已经说明了指定命令选项是不需要刻意去指定选项的位置,就是说当需要指定很多命令选项时,不用说某个选项该放置在哪个选项的前面或后面,因为 namp 支持无序指定命令选项或命令参数。

2.1. 列表扫描

-sL (列表扫描) 通过这个选项告诉 nmap 你需要使用列表扫描,列表扫描是主机发现的退化形式,它仅仅列出指定网络上的每台主机, 不发送任何报文
到目标主机。默认情况下 nmap 仍然对主机进行反向域名解析以获取它们的名字。

列表扫描可以很好的确保您拥有正确的目标 IP。 如果主机的域名出乎您的意料,那么就值得进一步检查以防错误地扫描其它组织的网络。

2.2. Ping 扫描

**-sP (Ping 扫描)**该选项告诉 nmap 仅仅进行 ping 扫描 (主机发现),然后打印出对扫描做出响应的有哪些主机。 并不会进一步的测试,比如如端口扫描或者操作系统的探测。所以使用 Ping 扫描 可以很方便地得出网络上有多少机器正在运行或者监视服务器是否正常运行,这类似对主机群进行地毯式搜索

Ping 扫描比列表扫描更积极,常常用于和列表扫描相同的用途。它可以得到些许目标网络的信息而不被特别注意到。对于攻击者来说,了解多少主机正在运行比列表扫描提供的一列 IP 和主机名往往更有价值。

Ping 扫描在默认情况下, 发送一个 ICMP 回声请求和一个 TCP 报文到 80 端口。如果非特权用户执行,就发送一个 SYN 报文 (使用用 connect() 的操作系统调用) 到目标机的 80 端口。 当特权用户扫描局域网上的目标机时,会发送 ARP 请求(-PR),除非使用了–send-ip 选项。

2.3. 跳过 Ping 扫描

-P0 (无 ping) 使用该选项完全跳过 nmap 发现阶段,这个发现阶段会强度的扫描来确定正在运行的机器。用 -P0这个主机发现控制选项来禁止主机发现,会使 nmap 对每一个指定的目标 IP 地址 进行所要求的扫描,而免去执行一些多余的扫描。注意:第二个字符是数字 0 而不是字母 O。

2.4. TCP SYN Ping

-PS [端口列表] (TCP SYN Ping) 该选项发送一个设置了 SYN 标志位的空 TCP 报文。 默认目的端口为 80 (默认目的端口可以通过改变nmap.h来改变) 文件中的 DEFAULT_TCP_PROBE_PORT 值进行配置。指定端口列表如 -PS22,23,25,80,113,1050,35000。指定端口列表后每个端口会被并发地扫描。

SYN 标志的作用:
SYN 标志位告诉对方 (比如服务器) 您正试图建立一个连接。 如果目标端口是关闭的,将会给你返回一个 RST (复位)报文。 如果碰巧端口是开放的,目标(比如目标服务器)会进行 TCP 三步握手的第二步,回应 一个 SYN/ACK TCP 报文。然后运行 nmap 的机器则会扼杀这个正在建立的连接, 发送一个 RST 而非 ACK 报文,否则,一个完全的连接将会建立。 RST 报文是运行 nmap 的机器而不是 nmap 本身响应的,因为它对收到 的 SYN/ACK 感到很意外。

下面指定了一个端口列表 80,443

┌──(zhbi98㉿kali)-[~]
└─$ nmap -PS80, 443 183.232.152.235 
Starting Nmap 7.91 ( https://nmap.org ) at 2021-09-12 15:13 CST
Nmap scan report for 183.232.152.235
Host is up (0.025s latency).
Not shown: 993 filtered ports
PORT      STATE  SERVICE
80/tcp    open   http
113/tcp   closed ident
443/tcp   open   https
2000/tcp  open   cisco-sccp
5060/tcp  open   sip
8080/tcp  open   http-proxy
10002/tcp open   documentum

Nmap done: 2 IP addresses (1 host up) scanned in 5.28 seconds

2.5. TCP ACK Ping

-PA [端口列表](TCP ACK Ping) 该选项发送一个设置了 ACK 标志位的空 TCP 报文,ACK 报文表示确认一个建立连接的尝试。如果目标机器恰好是正在运行的那么目标机器总是回应一个 RST 报文, 因为它们并没有发出过连接请求到运行 nmap 的机器。默认目标端口为 80,(同样默认目的端口可以通过改变nmap.h 文件中的 DEFAULT_TCP_PROBE_PORT 值进行配置来改变) 。

2.6. UDP Ping

-PU [端口列表] (UDP Ping) 还有一个主机发现的选项是 UDP ping,它发送一个空的(除非指定了–data-length UDP 报文到给定的端口。端口列表的格式和前面讨论过的两点 -PS-PA 选项还是一样的格式。默认目标端口为 31338,(同样默认目的端口可以通过改变nmap.h 文件中的 DEFAULT_TCP_PROBE_PORT 值进行配置来改变) 。

如果目标机器的端口是关闭的,UDP 探测应该马上得到一个 ICMP 端口无法到达的回应报文,这说明该目标机器正在运行。少数服务器如则会响应一个空的 UDP 报文, 从而告诉你该目标机器正在运行。

UDP 扫描的优点是可以穿越只过滤 TCP 的防火墙和过滤器,对于这样的目标主机使用 UDP 探测仍然会收到一个端口不可到达的消息,从而可以得知目标主机存在且正在运行。

2.7. ICMP Ping Types

-PE 选项打开该回声请求功能。
-PP 时间戳查询。
-PM 地址掩码查询。

2.8. ARP Ping

-PR (ARP Ping) 该主机发现控制选项用于 ARP 扫描,ARP 扫描最常见的使用场景之一是扫描一个以太局域网。在大部分局域网上,那些使用基于 RFC1918 私有地址范围的网络,在一个给定的时间绝大部分的IP 地址都是没有使用的。当 nmap 发送一个原始 IP 报文如 ICMP 回声请求时, 操作系统需要确定对应
于目标 IP 的硬件地址(ARP),这样它才能把以太帧送往正确的地址。 这种扫描速度一般比较慢而且会有些问题,因为操作系统一般认为一般不会在短时间内对没有运行的机器作几百万次的 ARP 请求。

ARP 扫描比基于 IP 的扫描更快更可靠,所以扫描时发现目标主机就在它所在的局域网上,则会启动 ARP 扫描。 如果不想使用 ARP 扫描,可以使用 --send-ip 来使用 IP 扫描。

2.9. 不使用域名解析

-n (不用域名解析) 告诉 nmap 永久不对发现的活动 IP 地址进行反向域名解析。 既然 DNS 一般比较慢,不使用 DNS 可以使得扫描速度更快一些。

2.10. 为所有目标解析域名

-R (为所有目标解析域名) 告诉 nmap 永久对发现的活动 IP 地址进行反向域名解析。 只有当发现目标主机正在运行时才进行解析操作。

2.11. 使用系统域名解析器

--system_dns (使用系统域名解析器) 默认情况下 nmap 通过直接查询您的主机上配置的域名服务器来解析域名。如果您希望使用系统自带的解析器就可以指定该控制选项告诉 namp 使用系统解析器。

注意:系统解析器解析速度比较慢,所以一般不使用该选项。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值