1.摘要
Nmap的漏洞掃描功能能夠迅速識別目標系統(tǒng)中的漏洞, 通過Nmap腳本引擎(NSE)的強大功能, 它可以擴展成一個強大的漏洞掃描器, 幫助我們列舉目標系統(tǒng)中的最新漏洞。通常在滲透測試過程中, 漏洞掃描是一個關(guān)鍵步驟, 而Nmap也是大部分滲透測試人員依賴的工具, 在本文中, 我們將一起學(xué)習(xí)使用Nmap進行漏洞掃描,迅速發(fā)現(xiàn)目標機器的安全漏洞。
2.掃描基礎(chǔ)知識
Nmap是一款強大的網(wǎng)絡(luò)掃描工具, 旨在查找連接到網(wǎng)絡(luò)的設(shè)備上開放的端口和正在運行的服務(wù)。該工具免費且開源, 并且被滲透測試人員廣泛使用, 用于對目標網(wǎng)絡(luò)執(zhí)行安全審計, 在Kali Linux上默認安裝了Nmap。
要執(zhí)行Nmap掃描, 使用命令nmap <目標>。該命令執(zhí)行默認的Nmap掃描, 查詢前1000個端口以確定哪些是開放的。
圖片
上圖中的Nmap掃描的輸出顯示如下內(nèi)容:
序號1: Nmap命令運行的是:nmap 10.0.100.5。
序號2: 命令運行的日期和時間。
序號3: 連接到目標系統(tǒng)時的網(wǎng)絡(luò)延遲。
序號4: 顯示開放端口的報告。
序號5: 完成掃描所花費的時間。
我們可以通過添加掃描選項以更改Nmap的掃描行為, 命令為: nmap <選項> <目標>
例如:使用-sV標志執(zhí)行服務(wù)掃描, 以顯示每個開放端口上運行的具體服務(wù), 該步驟是漏洞查找過程的重要一步。
圖片
如果要更改掃描的執(zhí)行方式, 可以使用下面的任意選項:
- 使用時間模板 -T1 到 -T4 改變Nmap掃描的速度和攻擊性。
- 使用 -Pn 選項阻止Nmap執(zhí)行Internet Control Message Protocol(ICMP)回顯ping以發(fā)現(xiàn)目標。
- 使用 -n 選項阻止Nmap嘗試解析DNS名稱。
- 使用 -p- 選項掃描所有端口。
具體的選項內(nèi)容可以參考我的另一篇文章:<<xxx>>
3.三種類型的漏洞掃描
Nmap通常用來執(zhí)行掃描端口任務(wù), 但也可以作為漏洞掃描器使用。利用Nmap腳本引擎(NSE)可以通過網(wǎng)絡(luò)發(fā)現(xiàn)目標系統(tǒng)漏洞,NSE允許創(chuàng)建和執(zhí)行定制腳本, 擴展Nmap功能。
通過下面三個強大的Nmap腳本選項, 可以將Nmap變成一個全面的漏洞掃描工具:
- Vuln:--script vuln選項執(zhí)行所有NSE腳本, 這些腳本專注于識別正在掃描目標系統(tǒng)是否有安全漏洞, 這是發(fā)現(xiàn)已知漏洞的常用選項。
- Vulners:--script vulners選項使用vulners.com在線數(shù)據(jù)庫,利用Nmap掃描目標以查找最新漏洞。該數(shù)據(jù)庫定期更新,可能會找到其它掃描可能遺漏的信息。
- Vulscan: --script vulscan選項是一個Nmap漏洞掃描腳本, 它使用多個離線漏洞數(shù)據(jù)庫來測試目標系統(tǒng)漏洞, 它使用了NVD、CVE和OVAL漏洞數(shù)據(jù)庫來掃描本地網(wǎng)絡(luò)中的漏洞, 該模式支持本地離線和在線掃描。
以下是三種漏洞掃描選項的比較:
Vuln | Vulners | Vulscan |
執(zhí)行 Nmap 漏洞類別中的多個 NSE 腳本 | 執(zhí)行從在線數(shù)據(jù)庫中提取的單個腳本 | 執(zhí)行從離線數(shù)據(jù)庫中提取的單個腳本 |
使用Nmap的內(nèi)置腳本掃描漏洞 | 使用 vulners.com 在線數(shù)據(jù)庫掃描漏洞 | 使用多個離線數(shù)據(jù)庫掃描漏洞 |
如果不創(chuàng)建自己的腳本并將其添加到vuln目錄,則無法更新 Nmap 掃描的漏洞 | 要掃描的漏洞會定期自動更新 | 要掃描的漏洞必須通過 |
掃描最常見的漏洞 | 掃描最新的漏洞 | 掃描各種漏洞 |
主要優(yōu)點:內(nèi)置于 Nmap | 主要優(yōu)點:快速、準確 | 主要優(yōu)點:離線執(zhí)行全面的漏洞掃描 |
下面將通過這三種模式分別執(zhí)行漏洞掃描過程。
4.Vuln漏洞掃描
Nmap 的漏洞掃描將針對目標運行該工具的默認漏洞掃描腳本。這些對于查找可利用的常見漏洞非常有用。要運行漏洞掃描,使用以下命令語法:
nmap --script vuln <target>
圖片
上圖中輸出顯示以下內(nèi)容:
序號1: 用于運行漏洞掃描的命令行。接下來是默認的 Nmap 報告標頭。
序號2: 文件傳輸協(xié)議 (FTP) 服務(wù)正在目標計算機的端口 21 上運行。所使用的特定服務(wù)是vsFTPd 版本 2.3.4,該服務(wù)容易受到CVE-2011-2523 的攻擊。Nmap 甚至提供了一些參考資料和一個可用于利用該漏洞的 Metasploit 模塊。
序號3: 簡單郵件傳輸協(xié)議 (SMTP) 服務(wù)在端口 25 上運行。此服務(wù)容易受到CVE-2014-3566的攻擊。Nmap 再次提供了此漏洞的參考。
從該輸出中,可以通過攻擊正在運行的 FTP 或 SMTP 服務(wù)來開始利用該目標計算機。可以使用 Nmap 參考作為利用這些漏洞的起點。
5.Vulners漏洞掃描
vulners漏洞掃描能夠使用在線數(shù)據(jù)庫vulners.com掃描目標是否有最新的漏洞。要執(zhí)行此掃描,使用以下命令語法:
nmap -sV --script vulners <target>
圖片
上圖中返回的輸出顯示以下內(nèi)容:
序號1: 用于運行漏洞掃描的命令行。
序號2: Secure Shell (SSH) 服務(wù)正在目標計算機的端口 22 上運行。使用的特定服務(wù)是OpenSSH 版本 4.7p1 Debian 8ubuntu1,該服務(wù)容易受到多個 CVE 的攻擊。漏洞腳本提供對每個 CVE 或其他漏洞 ID 的引用。
序號3: 漏洞 ID 旁邊的標志*EXPLOIT*表示該漏洞是可利用的,應(yīng)該能夠手動利用它或在線查找利用代碼。
序號4: 域名服務(wù) (DNS) 服務(wù)正在端口 53 上運行。運行的特定服務(wù)版本是ISC BIND 9.4.2,該版本容易受到一系列漏洞的影響。同樣,漏洞腳本為每個漏洞提供了參考,并提供了該漏洞是否可利用該*EXPLOIT*標志進行利用的參考。
此輸出表明應(yīng)該嘗試利用目標計算機上運行的 SSH 和 DNS 服務(wù)。如果選擇以 SSH 為目標,則應(yīng)在vulners.com上查找SSV:60656,因為此漏洞 ID 與漏洞利用相關(guān)。同時,如果試利用 DNS,可以使用SSV:60184的鏈接或其旁邊的任何其他鏈接。*EXPLOIT*
6.Vulscan漏洞掃描
默認情況下,Nmap 的 vulscan 選項不隨該工具一起提供。相反,需要從https://github.com/scipag/vulscan下載漏洞掃描腳本。可以通過使用 git clone 命令將 vulscan 腳本下載到 Nmap 腳本目錄來完成此操作。
圖片
接下來,使用 Linux命令在文件和 Nmap vulscan 腳本ln之間創(chuàng)建符號鏈接。scipag_vulscan這將允許使用vulscanNmap 命令行上的選項。
圖片
每當添加新的 NSE 腳本以在 Nmap 中使用時,需要運行 nmap 命令--script-updatedb來更新 Nmap 的數(shù)據(jù)庫以識別新腳本。然而, 默認情況下,Nmap 中不包含 vulscan 腳本,這意味著無法使用該命令對其進行更新。相反,需要使用update.sh之前克隆的 GitHub 存儲庫附帶的腳本來更新 Nmap 的數(shù)據(jù)庫和 vulscan 從中提取的漏洞數(shù)據(jù)庫。運行以下命令:
./update.sh
圖片
將 vulscan 腳本添加到 Nmap 的數(shù)據(jù)庫后,可以使用以下語法來運行 vulscan 漏洞掃描:
nmap -sV --script=vulscan/vulscan.nse <target>
圖片
上圖掃描返回的輸出顯示以下內(nèi)容:
序號1: 用于運行漏洞掃描的命令行
序號2: FTP 服務(wù)正在目標計算機的端口 21 上運行,具體來說是vsFTPd 版本 2.3.4
序號3: VulDB 漏洞數(shù)據(jù)庫中沒有與此版本的 FTP 匹配的結(jié)果
序號4: MITRE CVE 漏洞數(shù)據(jù)庫中的一個 CVE 與此版本的 FTP (CVE-2011-0762) 匹配
vulscan 輸出繼續(xù)顯示,此版本 FTP 的 Security Focus (5)、IBM X-Force (6) 和 Exploit-DB (7) 漏洞數(shù)據(jù)庫中存在多個匹配的漏洞。詳細的漏洞信息可以從這里獲取:https://www.exploit-db.com
7.結(jié)果比較
下面來總結(jié)一下上面三個Nmap漏洞掃描選項的結(jié)果:
- 與其他兩次掃描相比,vuln漏洞掃描的運行時間很長,而且它發(fā)現(xiàn)的許多漏洞都是過時或不正確的。
- Nmap vulners掃描速度很快,并發(fā)現(xiàn)了更多漏洞。它還包含每個鏈接的有用鏈接,并顯示了可利用的內(nèi)容。
- Nmap vulscan 掃描的速度介于 vuln 和 vulners 掃描之間,但其輸出更為豐富。它通過查詢多個漏洞數(shù)據(jù)庫提供了有關(guān)每個潛在漏洞的綜合報告。
總的來說,在大多數(shù)情況下可以跳過 vuln漏洞掃描, 掃描速度慢且漏洞也比較過時。相反,應(yīng)該重點使用 Nmap vulners和 Nmap vulscan 選項。如果想要提供簡潔輸出的快速掃描,則使用vulners掃描。如果想要對目標系統(tǒng)進行全面的漏洞掃描,利用多個漏洞數(shù)據(jù)庫來查找潛在的安全漏洞,則使用vulcan選項。