网络扫描:网络基础服务
网络基础服务是指连接到网络需要的基本服务,如DHCP、NTP和NetBIOS等。本文介绍对这些网络基础服务实施扫描的方法。
1. DHCP服务
DHCP是基于UDP协议工作的服务,该服务工作于UDP的67和68号端口。其中,UDP 67号端口作为DHCP客户端广播请求,UDP 68号端口作为DHCP服务器回应广播请求。我们可以借助Nmap的broadcast-dhcp-discover.nse和dhcp-discover.nse脚本来实施DHCP服务扫描。下面介绍使用这两个脚本实施DHCP服务扫描的方法。
(1)使用broadcast-dhcp-discover.nse脚本
broadcast-dhcp-discover.nse脚本通过向广播地址(255.255.255.255)发送一个DHCP请求,来寻找提供DHCP服务的主机。该脚本在执行操作时,使用静态MAC地址(de:ad:c0:de:ca:fe),以防止IP地址耗尽。使用该脚本实施DHCP扫描的语法格式如下:
nmap --script=broadcast-dhcp-discover.nse
在Nmap的脚本中,使用--script选项来指定其脚本或某类脚本,--script和脚本之间的等于号(=)可以省略。另外,如果使用的扫描脚本提供有参数的话,则使用--script-args选项指定,格式为--script-args=,[n2=v2,…]。例如,如果指定新的目标主机,则格式为--script-args=newtargets=IP。
使用broadcast-dhcp-discover.nse脚本实施DHCP服务扫描。执行命令如下:
root@daxueba:~# nmap --script broadcast-dhcp-discover
Starting Nmap 7.70 ( https://nmap.org ) at 2021-08-08 18:30 CST
Pre-scan script results:
| broadcast-dhcp-discover:
| Response 1 of 1:
| IP Offered: 192.168.33.156 #提供的IP地址
| DHCP Message Type: DHCPOFFER #DHCP消息类型
| Server Identifier: 192.168.33.254 #服务器标识符
| IP Address Lease Time: 30m00s #IP地址释放时间
| Subnet Mask: 255.255.255.0 #子网掩码
| Router: 192.168.33.2 #路由地址
| Domain Name Server: 192.168.33.2 #域名服务
| Domain Name: localdomain #域名
| Broadcast Address: 192.168.33.255 #广播地址
| NetBIOS Name Server: 192.168.33.2 #NetBIOS名称服务
| Renewal Time Value: 15m00s #更新时间值
|_ Rebinding Time Value: 26m15s #第二次选择时间值
WARNING: No targets were specified, so 0 hosts scanned.
Nmap done: 0 IP addresses (0 hosts up) scanned in 1.32 seconds
从以上输出信息中可以看到,本地网络的DHCP服务器IP地址为192.168.33.156。
(2)使用dhcp-discover.nse脚本
dhcp-discover.nse脚本用来向目标主机发送一个DHCP INFORM请求到主机的UDP 67号端口,来获取所有本地配置参数。其中,DHCPINFORM是一种从DHCP服务器返回有用信息而不分配IP地址的DHCP请求。使用该脚本实施DHCP扫描的语法格式如下:
nmap -sU -p [port] --script=dhcp-discover [target]
以上语法中的选项及含义如下。
-sU:实施UDP端口扫描。Nmap工具默认将扫描TCP端口。所以,如果要扫描UDP端口,则必须指定该选项。
-p:指定扫描的端口,默认是67。
使用dhcp-discover.nse脚本实施DHCP扫描。执行命令如下:
root@daxueba:~# nmap -sU -p 67 --script=dhcp-discover 192.168.1.1
Starting Nmap 7.70 ( https://nmap.org ) at 2021-08-08 11:03 CST
Nmap scan report for 192.168.1.1 (192.168.1.1)
Host is up (0.00092s latency).
PORT STATE SERVICE
67/udp open dhcps
| dhcp-discover:
| DHCP Message Type: DHCPACK #DHCP消息类型
| Subnet Mask: 255.255.255.0 #子网掩码
| Router: 192.168.1.1 #路由
| Domain Name Server: 192.168.1.1 #域名服务器(DNS)
|_ Server Identifier: 192.168.1.1 #服务器标识
MAC Address: 70:85:40:53:E0:35 (Unknown) #MAC地址
Nmap done: 1 IP address (1 host up) scanned in 0.61 seconds
从输出的信息中可以看到,目标主机开放了UDP的67号端口。而且,还可以看到本地的配置参数。例如,子网掩码为255.255.255.0,路由地址为192.168.1.1,DNS服务器的地址为192.168.1.1等。
2. Daytime服务
Daytime服务是基于TCP的应用。该服务在TCP端口13侦听,一旦有连接建立就返回ASCII形式的日期和时间,在传送完后关闭连接,而服务接收到的数据则被忽略。Daytime服务也可以使用UDP协议,端口也是13,不过UDP是用数据报传送当前时间的,接收到的数据同样会被忽略。我们可以借助Nmap的daytime脚本对Daytime服务进行扫描,语法格式如下:
nmap -sV-p 13 --script=daytime
使用daytime脚本实施Daytime服务扫描。执行命令如下:
root@daxueba:~# nmap -p 13 --script=daytime 195.223.72.174
Starting Nmap 7.70 ( https://nmap.org ) at 2021-08-08 12:10 CST
Nmap scan report for 195.223.72.174
Host is up (0.37s latency).
PORT STATE SERVICE
13/tcp open daytime
|_daytime: 08 Aug 2021 05:11:26 CET\x0D #获取的时间
Nmap done: 1 IP address (1 host up) scanned in 10.31 seconds
从以上输出信息中可以看到,从Daytime服务上获取的时间为08 Aug 2021 05:11:26 CET\x0D。
3. NTP服务
NTP服务是基于UDP协议的服务,该服务默认监听的端口为123。我们可以借助Nmap的ntp-info.nse脚本来实施NTP服务扫描。下面介绍具体的扫描方法。
ntp-info.nse脚本用来获取时间和配置信息。该脚本用来实施扫描的语法格式如下:
nmap -sU -p 123 --script=ntp-info
使用ntp-info.nse脚本对NTP服务实施扫描。执行命令如下:
root@daxueba:~# nmap -sU -p 123 --script=ntp-info 1.179.1.151
Starting Nmap 7.70 ( https://nmap.org ) at 2021-08-08 12:14 CST
Nmap scan report for 1.179.1.151
Host is up (0.30s latency).
PORT STATE SERVICE
123/udp open ntp
| ntp-info:
|_ receive time stamp: 2000-05-11 T05:11:10
Nmap done: 1 IP address (1 host up) scanned in 12.24 seconds
从输出的信息中可以看到,通过ntp-info.nse脚本成功获取到了目标NTP服务的时间,该时间为2000-05-11 T05:11:10。
4. LLTD服务
LLTD(Link Layer Topology Discovery,链路层拓扑结构发现)作为Windows Rally技术的关键部分,主要完成网络设备的发现和网络拓扑结构图的绘制。我们可以借助Nmap的lltd-discovery脚本来实施扫描。lltd-discovery脚本通过使用Microsoft LLTD协议,来发现本地网络中活动的主机。使用该脚本实施扫描的语法格式如下:
nmap --script=lltd-discovery [--script-args=lltd-discovery.interface=interface,newtargets=IP]
以上语法中的参数及含义如下:
lltd-discovery.interface:指定用于LLTD发现的接口。
newtargets:指定一个新的扫描目标。
使用LLTD协议来探测网络中活动的主机,并指定一个新的目标实施扫描。执行命令如下:
root@daxueba:~# nmap --script lltd-discovery --script-args=lltd-discovery.
interface=eth0,newtargets=192.168.1.5
Starting Nmap 7.70 ( https://nmap.org ) at 2021-08-08 18:31 CST
Pre-scan script results:
| lltd-discovery:
| 192.168.1.5 #IP地址
| Hostname: Test-PC #主机名
| Mac: 00:0c:29:21:8c:96 (VMware) #MAC地址
|_ IPv6: fe80::54b4:f48a:4804:2df0 #IPv6地址
Nmap scan report for test-pc (192.168.1.5)
Host is up (0.0011s latency).
Not shown: 981 closed ports
PORT STATE SERVICE
21/tcp open ftp
22/tcp open ssh
80/tcp open http
135/tcp open msrpc
139/tcp open netbios-ssn
443/tcp open https
445/tcp open microsoft-ds
902/tcp open iss-realsecure
912/tcp open apex-mesh
1433/tcp open ms-sql-s
2383/tcp open ms-olap4
3389/tcp open ms-wbt-server
5357/tcp open wsdapi
49152/tcp open unknown
49153/tcp open unknown
49154/tcp open unknown
49155/tcp open unknown
49157/tcp open unknown
49158/tcp open unknown
MAC Address: 00:0C:29:21:8C:96 (VMware)
Nmap done: 1 IP address (1 host up) scanned in 9.97 seconds
从输出的信息中可以看到,使用LLTD协议扫描到活动的主机地址为192.168.1.5,并且显示了该主机中开放的所有端口。
5. NetBIOS服务
NetBIOS协议是由IBM公司开发,主要用于数十台计算机的小型局域网。NetBIOS协议监听137(netbios-ns)、138(netbios-dgm)和139(netbios-ssn)3个端口。其中,UDP端口137用来提供NetBIOS名称解析服务,负责将短名字解析为IP地址;UDP端口138用于用户数据报服务,主要作用就是提供NetBIOS环境下的计算机名浏览功能;TCP的139端口则提供会话服务,在有打印和文件共享数据传输的时候发挥作用,即传输控制协议。我们可以借助Nmap的nbstat脚本来实施NetBIOS服务扫描。
nbstat脚本用来接收目标主机的NetBIOS名称和MAC地址。使用该脚本实施NetBIOS扫描的语法格式如下:
nmap -sU --script=nbstat.nse -p137
或者:
nmap --script=nbstat.nse -p139
实施NetBIOS服务扫描。执行命令如下:
root@daxueba:~# nmap -sU -p 137 --script=nbstat.nse 192.168.1.5
Starting Nmap 7.70 ( https://nmap.org ) at 2021-08-08 14:43 CST
Nmap scan report for test-pc (192.168.1.5)
Host is up (0.00046s latency).
PORT STATE SERVICE
137/udp open netbios-ns
MAC Address: 00:0C:29:21:8C:96 (VMware)
Host script results:
|_nbstat: NetBIOS name: TEST-PC, NetBIOS user: , NetBIOS MAC:00:0c:29:21:8c:96 (VMware)
Nmap done: 1 IP address (1 host up) scanned in 0.96 seconds
从输出信息中可以看到,目标主机上开放了NetBIOS服务。而且,从扫描结果中可以看到目标主机的NetBIOS名称、用户和MAC地址信息。
