網絡掃描:網絡基礎服務
網絡基礎服務是指連接到網絡需要的基本服務,如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地址信息。