網絡掃描:服務識別
這里的服務是指系統中用來提供服務的一些程序,如文件傳輸服務(FTP)、遠程登錄服務(SSH)等,在這些服務中包括一些指紋信息,如端口、服務名、提供商及版本等。本文介紹對服務信息進行識別的方法。
1. Nmap服務識別
在Nmap工具中提供了一些選項,可以用來進行服務識別。下面分別介紹使用這些選項對服務進行識別的方法。
(1)服務版本識別
每個服務都有對應的版本。通常情況下,在一些舊版本中可能存在漏洞,如果存在漏洞的話,入侵者可以對該主機實施滲透,進而獲取重要信息。因此,為了提高系統的安全性,應及時修復漏洞,避免黑客入侵。使用Nmap識別服務版本的語法格式如下:
nmap -sV [host]
其中,-sV表示實施服務版本探測。
識別目標主機192.168.33.152上的所有開放服務版本。執行命令如下:
root@daxueba:~# nmap -sV 192.168.33.152
Starting Nmap 7.70 ( https://nmap.org ) at 2021-07-31 15:11 CST
Nmap scan report for 192.168.33.152 (192.168.33.152)
Host is up (0.00016s latency).
Not shown: 997 closed ports
PORT STATE SERVICE VERSION
21/tcp open ftp vsftpd 3.0.3
22/tcp open ssh OpenSSH 7.8p1 Debian 1 (protocol 2.0)
80/tcp open http Apache httpd 2.4.34 ((Debian))
MAC Address: 00:0C:29:FD:58:4B (VMware)
Service Info: OSs: Unix, Linux; CPE: cpe:/o:linux:linux_kernel
Service detection performed. Please report any incorrect results at
https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 6.68 seconds
從以上輸出信息中可以看到識別出的服務相關信息。在輸出的信息中包括4列,分別是PORT(端口)、STATE(狀態)、SERVICE(服務)和VERSION(版本)。通過分析每列信息,可以獲取到對應服務的相關信息。例如,TCP端口21對應的服務為FTP,版本為vsftpd 3.0.3。從倒數第2行中還可以看到目標主機的服務操作信息為UNIX或Linux。
(2)掃描所有端口
在Nmap中提供了一個選項,可以用來掃描所有端口。用于掃描所有端口的語法格式如下:
nmap --allports [host]
其中,--allports表示掃描所有端口。默認情況下,Nmap僅掃描1000個端口,而且會跳過TCP端口9100。
掃描目標主機192.168.33.147上開放的所有端口。執行命令如下:
root@daxueba:~# nmap --allports 192.168.33.147
Starting Nmap 7.70 ( https://nmap.org ) at 2021-07-31 17:23 CST
Nmap scan report for 192.168.33.147 (192.168.33.147)
Host is up (0.0024s latency).
Not shown: 977 closed ports #關閉端口
PORT STATE SERVICE #開放端口信息
21/tcp open ftp
22/tcp open ssh
23/tcp open telnet
25/tcp open smtp
53/tcp open domain
80/tcp open http
111/tcp open rpcbind
139/tcp open netbios-ssn
445/tcp open microsoft-ds
512/tcp open exec
513/tcp open login
514/tcp open shell
1099/tcp open rmiregistry
1524/tcp open ingreslock
2049/tcp open nfs
2121/tcp open ccproxy-ftp
3306/tcp open mysql
5432/tcp open postgresql
5900/tcp open vnc
6000/tcp open X11
6667/tcp open irc
8009/tcp open ajp13
8180/tcp open unknown
MAC Address: 00:0C:29:3E:84:91 (VMware)
Nmap done: 1 IP address (1 host up) scanned in 0.29 seconds
從以上輸出信息中可以看到目標主機上開放的所有端口,而且還可以看到共有977個端口是關閉的。例如,目標主機中開放的端口有21、22、23、25和53等。
(3)指定服務版本掃描強度
當使用-sV選項實施版本掃描時,Nmap會發送一系列探測報文,每個報文都被賦予一個1~9之間的值。被賦予較低值的探測報文對大范圍的常見服務有效,而被賦予較高值的報文一般沒什么用。強度水平說明了應該使用哪些探測報文,數值越高,服務越有可能被正確識別。但是,高強度掃描更耗費時間,強度值必須在0~9之間,默認是7。用于指定服務版本掃描強度的語法格式如下:
nmap --version-intensity
其中,--version-intensity表示設置服務版本的掃描強度。其掃描強度的級別范圍為0~9,0表示輕量級,9表示嘗試每個探測。
指定服務版本掃描強度為9,將對目標主機實施服務識別。執行命令如下:
root@daxueba:~# nmap --version-intensity 9 192.168.33.152
Starting Nmap 7.70 ( https://nmap.org ) at 2021-07-31 15:14 CST
Nmap scan report for 192.168.33.152 (192.168.33.152)
Host is up (0.000096s latency).
Not shown: 997 closed ports
PORT STATE SERVICE
21/tcp open ftp
22/tcp open ssh
80/tcp open http
MAC Address: 00:0C:29:FD:58:4B (VMware)
Nmap done: 1 IP address (1 host up) scanned in 0.23 seconds
從輸出信息中可以看到,識別出的目標主機上運行的服務,分別有FTP、SSH和HTTP。
(4)輕量級掃描
我們還可以使用--version-light選項實施輕量級模式掃描。使用這種模式掃描的速度非常快,但是它識別服務的可能性也略微小一點。實施輕量級掃描的語法格式如下:
nmap --version-light [host]
其中,--version-light表示實施輕量級掃描,該選項相當于--version-intensity 2的別名。
對目標主機實施輕量級掃描。執行命令如下:
root@daxueba:~# nmap --version-light 192.168.33.152
Starting Nmap 7.70 ( https://nmap.org ) at 2021-07-31 15:19 CST
Nmap scan report for 192.168.33.152 (192.168.33.152)
Host is up (0.000085s latency).
Not shown: 997 closed ports
PORT STATE SERVICE
21/tcp open ftp
22/tcp open ssh
80/tcp open http
MAC Address: 00:0C:29:FD:58:4B (VMware)
Nmap done: 1 IP address (1 host up) scanned in 0.22 seconds
(5)探測所有端口
使用--version-all選項可以對每個端口嘗試發送探測報文。其中,使用該選項探測所有端口的語法格式如下:
nmap --version-all [host]
其中,--version-all選項表示保證對每個端口嘗試發送探測報文,該選項相當于--version-intensity 9的別名。
(6)跟蹤版本掃描
在Nmap工具中提供了一個--version-trace選項,可以用來跟蹤版本掃描,以獲取更詳細的信息。用于跟蹤版本掃描的語法格式如下:
nmap --version-trace [host]
其中,--version-trace選項表示實施跟蹤版本掃描。
對目標主機的服務實施跟蹤版本掃描。執行命令如下:
root@daxueba:~# nmap --version-trace 192.168.33.152
Starting Nmap 7.70 ( https://nmap.org ) at 2021-07-31 18:03 CST
PORTS: Using top 1000 ports found open (TCP:1000, UDP:0, SCTP:0)
--------------- Timing report --------------- #時間報告
hostgroups: min 1, max 100000
rtt-timeouts: init 1000, min 100, max 10000
max-scan-delay: TCP 1000, UDP 1000, SCTP 1000
parallelism: min 0, max 0
max-retries: 10, host-timeout: 0
min-rate: 0, max-rate: 0
---------------------------------------------
Packet capture filter (device eth0): arp and arp[18:4] = 0x000C2917 and arp[22:2] = 0x5F2B
Overall sending rates: 30.57 packets / s, 1283.89 bytes / s.
mass_rdns: Using DNS server 192.168.33.2 #DNS服務器
mass_rdns: 0.00s 0/1 [#: 1, OK: 0, NX: 0, DR: 0, SF: 0, TR: 1]
DNS resolution of 1 IPs took 0.00s. Mode: Async [#: 1, OK: 1, NX: 0, DR:
0, SF: 0, TR: 1, CN: 0]
Packet capture filter (device eth0): dst host 192.168.33.154 and (icmp or icmp6 or ((tcp or udp or sctp) and (src host 192.168.33.152))) #包捕獲過濾器
Overall sending rates: 12429.46 packets / s, 546896.36 bytes / s. #綜合發送速率
Nmap scan report for 192.168.33.152 (192.168.33.152) #Nmap掃描報告
Host is up (0.000088s latency).
Scanned at 2021-07-31 18:03:28 CST for 0s
Not shown: 997 closed ports
PORT STATE SERVICE
21/tcp open ftp
22/tcp open ssh
80/tcp open http
MAC Address: 00:0C:29:FD:58:4B (VMware)
Final times for host: srtt: 88 rttvar: 11 to: 100000
Read from /usr/bin/../share/nmap: nmap-mac-prefixes nmap-payloads nmap-services.
Nmap done: 1 IP address (1 host up) scanned in 0.22 seconds
從以上輸出信息中可以看到獲取到的詳細信息。例如,時間報告、使用的DNS服務器、數據包過濾器和發送速率等。
(7)實施RPC掃描
RPC掃描通常和Nmap的許多端口掃描方法結合使用。這種掃描方式通過向所有處于打開狀態的TCP/UDP端口,發送SunRPC程序NULL命令,以確定它們是否是RPC端口。如果是,就判斷是哪種程序及其版本。因此,我們也可以使用RCP掃描方式來識別服務的版本信息。RPC掃描的語法格式如下:
nmap -sR [host]
其中,-sR選項表示實施RPC掃描。
對目標主機192.168.33.152實施RPC掃描。執行命令如下:
root@daxueba:~# nmap -sR 192.168.33.152
WARNING: -sR is now an alias for -sV and activates version detection as well as RPC scan.
Starting Nmap 7.70 ( https://nmap.org ) at 2021-07-31 15:20 CST
Nmap scan report for 192.168.33.152 (192.168.33.152)
Host is up (0.000094s latency).
Not shown: 997 closed ports
PORT STATE SERVICE VERSION
21/tcp open ftp vsftpd 3.0.3
22/tcp open ssh OpenSSH 7.8p1 Debian 1 (protocol 2.0)
80/tcp open http Apache httpd 2.4.34 ((Debian))
MAC Address: 00:0C:29:FD:58:4B (VMware)
Service Info: OSs: Unix, Linux; CPE: cpe:/o:linux:linux_kernel
Service detection performed. Please report any incorrect results at
https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 6.69 seconds
從以上輸出信息中可以看到目標主機上開放的服務指紋信息。
2. Amap服務識別
Amap工具被設計的目的就是用來識別網絡服務的。用于識別服務的語法格式如下:
amap [host] [port]
使用Amap工具對目標主機192.168.33.152上的22號端口服務實施掃描。執行命令如下:
root@daxueba:~# amap 192.168.33.152 22
amap v5.4 (www.thc.org/thc-amap) started at 2021-07-31 18:14:06 - APPLICATION
MAPPING mode
Protocol on 192.168.33.152:22/tcp matches ssh
Protocol on 192.168.33.152:22/tcp matches ssh-openssh
Unidentified ports: none.
amap v5.4 finished at 2021-07-31 18:14:12
從輸出的信息中可以看到,22號端口匹配的服務為SSH。