欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  网络运营

Nmap扫描教程之网络基础服务DHCP服务类

程序员文章站 2022-04-02 10:01:27
Nmap扫描教程之网络基础服务DHCP服务类 Nmap网络基础服务 网络基础服务是网络正常工作的基石,常见的网络基础服务包括 DHCP 服务和 DNS服务。其...

Nmap扫描教程之网络基础服务DHCP服务类

Nmap网络基础服务

网络基础服务是网络正常工作的基石,常见的网络基础服务包括 DHCP 服务和 DNS服务。其中, DHCP 服务用来为计算机动态分配 IP 地址; DNS 服务用来对主机名进行解析。本章将介绍网络基础服务的扫描方法。

NmapDHCP 服务类

DHCP ( Dynamic Host Configuration Protocol ,动态主机配置协议)是一种局域网的网络协议。它的主要作用就是,给内部网络或网络服务供应商自动分配 IP 地址。当一台客户机需要一个 IP 地址时,将会向 DHCP 服务器发送广播包。然后,收到请求的服务器会提供一个可用的 IP 地址给客户端。由于客户端在请求包时发送的是广播包,所以存在一定的风险。本节将介绍 DHCP 服务的扫描方法。

Nmap 广播 DHCP 请求包

DHCP 请求是客户端为了通过 DHCP 服务获取 IP 地址而发送的一种数据包。通过向网络中发送一个 DHCP Request ( DHCP 请求)广播包,可以获取到当前局域网中可用的一个 IP 地址。在 Nmap 中, broadcast-dhcp-discover 脚本可以用来发送DHCP 广播请求,并显示响应包的详细信息。通过读分析响应的包信息,可以找到可分配的 IP 地址。
其中,语法格式如下所示:
nmap --script broadcast-dhcp-discover
在以上语法中,仅指定使用的 Nmap 脚本即可,不需要指定目标地址。由于broadcast-dhcp-discover 脚本将会发送包到局域网中的所有主机,并且等待有响应的主机。
【示例 1 - 1 】使用 broadcast-dhcp-discover 脚本向局域网中发送 DHCP Request广播包。执行命令如下所示:

Starting Nmap 6.47 ( http://nmap.org ) at 2015-05-21 16:58 CST

Pre-scan script results:

| broadcast-dhcp-discover:

|   IP Offered: 192.168.1.102                                                          # 提供的 IP 地址

|   DHCP Message Type: DHCPOFFER                                       #DHCP 消息类型

|   Server Identifier: 192.168.1.1                                                    # 服务标识符

|   IP Address Lease Time: 0 days, 2:00:00                                 #IP 地址租约时间

|   Subnet Mask: 255.255.255.0                                                     # 子网掩码

|   Router: 192.168.1.1                                                                     # 路由器地址

|_  Domain Name Server: 192.168.1.1                                         # 域名服务地址

WARNING: No targets were specified, so 0 hosts scanned.       # 警告信息

Nmap done: 0 IP addresses (0 hosts up) scanned in 1.37 seconds

 

从以上输出信息中,可以看到响应包的详细信息。例如,响应的 IP 地址为192.168.1.102 , DHCP 类型为 DHCPOFFER ,租约时间为 2 个小时等。从以上输出的倒数第二行信息中,可以看到显示了一行警告信息,提示没有指定目标,所以零个主机被扫描。

提示:本章中介绍的脚本都发送的是广播包,所以在扫描时不需要指定任何的目标。

Nmap DHCP 发现

DHCP 是一个局域网的网络协议,主要作用就是为局域网中计算机动态分配 IP 地址。在 Nmap 中,通过使用 dhcp-discover 脚本发送 DHCPINFORM 请求,可以获取所有本地的配置参数,但是不会被分配一个新的地址。 DHCPINFORM 是一个 DHCP请求,可以从一个 DHCP 服务器上获取到非常有用的信息。其中, dhcp-discover 脚本的使用语法格式如下所示:

nmap -sU -p 67 --script=dhcp-discover [ 目标 ]

【示例 1 - 2 】发送 DHCPINFORM 请求到路由器的 UDP 端口 67 ,获取所有本地配置参数。执行命令如下所示:

root@localhost:~# nmap -sU -p 67 --script=dhcp-discover 192.168.1.1

Starting Nmap 6.47 ( http://nmap.org ) at 2015-06-01 16:18 CST

Nmap scan report for localhost (192.168.1.1)

Host is up (0.00032s latency).

PORT   STATE SERVICE

67/udp   open  dhcps

| dhcp-discover:                                                                         # 获取的信息

|   DHCP Message Type: DHCPACK                                  #DHCP 消息类型

|   Server Identifier: 192.168.1.1                                           # 服务标识符

|   Subnet Mask: 255.255.255.0                                            # 子网掩码

|   Router: 192.168.1.1                                                            # 路由地址

|_  Domain Name Server: 192.168.1.1                                # 域名服务

MAC Address: 14:E6:E4:84:23:7A (Tp-link Technologies CO.)

Nmap done: 1 IP address (1 host up) scanned in 0.50 seconds

 

从以上输出信息中,可以看到通过发送 DHCPINFORM 请求,获取到的相关信息。从输出的信息中,可以看到发送 DHCPINFORM 请求后,服务器响应了一个DHCPACK 包。并且,服务器的标识符为 192.168.1.1 、子网掩码为 255.255.255.0、路由器地址为 192.168.1.1 等。

Nmap IGMP 协议发现

IGMP ( Internet Group Management Protocol , Internet 组管理协议)是因特网协议家族中的一个组播协议。该协议运行在主机和组播路由器之间。 IGMP 协议共有三个版本,分别是 IGMPv1 、 IGMPv2 和 IGMPv3 。通过发送 IGMP 成员查询消息到224.0.0.1 (组播地址),可以获取到 IGMP 成员信息。

在 Nmap 中,使用 broadcast-igmp-discovery 脚本可以发现目标主机上的 IGMP 组播成员,并获取有意义的信息,如版本、接口、源地址等。其中,语法格式如下所示:

nmap --script broadcast-igmp-discovery -e --script-args='broadcast-igmp-discovery.version=all, broadcast-igmp-discovery.timeout=3'

以上语法中“ -e ”选项是用来指定扫描接口。参数“ broadcast-igmp-discovery.version”用来指定扫描使用的 IGMP 协议版本,默认使用的是 IGMPv2 。该参数可使用的值有1 、 2 、 3 和 all 。参数“ broadcast-igmp-discovery.timeout ”用来指定等待报告的时间,默认是 5 秒。

【示例 1 - 3 】扫描局域网中 IGMP 协议。执行命令如下所示:

root@localhost:~# nmap --script broadcast-igmp-discovery

Starting Nmap 6.47 ( http://nmap.org ) at 2015-05-21 17:36 CST

Pre-scan script results:                                                                                # 扫描结果

| broadcast-igmp-discovery:                                                                      #IGMP 发现

|   192.168.1.101

|     Interface: eth0                                                                                              # 接口

|     Version: 2                                                                                            # 版本

|     Group: 224.0.0.251                                                                           # 组地址

|     Description: mDNS                                                                           # 描述

|   192.168.1.101

|     Interface: eth0                                                                                              # 接口

|     Version: 2                                                                                            # 版本

|     Group: 224.0.0.252                                                                           # 组地址

|     Description: Link-local Multicast Name Resolution (rfc4795)   # 描述

|   192.168.1.108

|     Interface: eth0                                                                                              # 接口

|     Version: 2                                                                                            # 版本

|     Group: 239.255.255.250                                                                  # 组

|     Description: Organization-Local Scope (rfc2365)                       # 描述

|_  Use the newtargets script-arg 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 7.13 seconds

 

从以上输出信息中,可以看到响应了 IGMP 协议相关的信息。如版本为 2 ,接口为eth0 ,组成员包括 224.0.0.251 、 224.0.0.252 和 239.255.255.250 等。

从上例中可以看到没有指定 IGMP 协议版本时,默认使用的是 IGMPv2 。用户可以指定所有协议,则执行命令如下所示:

# nmap --script broadcast-igmp-discovery --script-args 'broadcast-igmp-discovery.version=all

Starting Nmap 6.47 ( http://nmap.org ) at 2015-05-22 11:03 CST

Pre-scan script results:

| broadcast-igmp-discovery:

|   192.168.1.101

|     Interface: eth0

|     Version: 1

|     Multicast group: 224.0.0.252

|   192.168.1.101

|     Interface: eth0

|     Version: 1

|     Multicast group: 239.255.255.250

|_  Use the newtargets script-arg 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 7.26 seconds

从以上输出信息中,可以看到使用 IGMPv1 版本发送了数据包。