如何通過(guò)掃描工具Nmap列出開(kāi)放端口和監(jiān)聽(tīng)服務(wù)?
譯文網(wǎng)絡(luò)管理員面臨的最棘手問(wèn)題之一就是設(shè)備上的開(kāi)放端口。除非你將操作系統(tǒng)手動(dòng)安裝到網(wǎng)絡(luò)上的每個(gè)設(shè)備上,確保關(guān)閉了所有不必要的端口,否則你就有可能面臨攻擊的風(fēng)險(xiǎn)。
你應(yīng)該禁用的端口視系統(tǒng)而異,甚至可能取決于特殊軟件的需要(比如說(shuō),QuickBooks需要特定的端口才能正常運(yùn)行――具體哪些端口由版本決定)。你需要列出可以或必須保持開(kāi)放的端口。一旦你有了這份列表,就可以著手關(guān)閉那些機(jī)器上的端口了。
但是你又如何才能知道哪些機(jī)器的哪些端口是開(kāi)放的?當(dāng)然了,你可以過(guò)去查看網(wǎng)絡(luò)上的每個(gè)機(jī)器,打開(kāi)用作防火墻的任何設(shè)備,手動(dòng)確保所有必要的端口都開(kāi)放,所有不必要的端口都關(guān)閉。
或者,你可以掃描網(wǎng)絡(luò),查明哪些機(jī)器的哪些端口是開(kāi)放的?如果你知道了開(kāi)放端口的位置,就能對(duì)照主列表來(lái)核實(shí)該信息,關(guān)閉必要的每個(gè)端口?,F(xiàn)在來(lái)說(shuō)說(shuō)棘手的部分。
如何運(yùn)行端口掃描?
你如何才能查明哪些機(jī)器的哪個(gè)端口是開(kāi)放的?你可以運(yùn)行端口掃描。假如你不知道如何運(yùn)行端口掃描,我會(huì)逐步介紹整個(gè)過(guò)程。
我使用一臺(tái)Linux機(jī)器來(lái)掃描。原因何在?因?yàn)長(zhǎng)inux擁有出色的掃描工具,它們隨時(shí)可以處理這項(xiàng)任務(wù),不僅免費(fèi),而且易于使用。
如果你沒(méi)有Linux運(yùn)行在上面的機(jī)器,也不用擔(dān)心――你可以下載Kali Linux之類的網(wǎng)絡(luò)滲透直啟動(dòng)發(fā)行版(live distribution),將ISO文件刻錄到CD或USB閃驅(qū)上,并啟動(dòng)機(jī)器、進(jìn)入到Linux的直啟動(dòng)實(shí)例(不需要對(duì)所用的機(jī)器進(jìn)行更改,因?yàn)橹眴?dòng)實(shí)例完全從內(nèi)存運(yùn)行)。直啟動(dòng)實(shí)例安裝并運(yùn)行起來(lái)后,你就有了形形色色的網(wǎng)絡(luò)取證/分析工具可以使用。
你應(yīng)該使用的端口掃描工具
最出色的端口掃描工具是Nmap。如果你不想搗鼓命令行,還有一個(gè)出色的GUI前端程序,名為Zenmap(https://nmap.org/zenmap/),它可適用于Linux、Windows和Mac等平臺(tái)。如果你不想為L(zhǎng)inux而操心,可以將它安裝在Windows上。(Nmap的功能要比Windows內(nèi)置網(wǎng)絡(luò)掃描工具強(qiáng)大得多。)Nmap和Zenmap在眾多平臺(tái)上工作起來(lái)一模一樣,所以如果你知道了如何在一個(gè)平臺(tái)上使用該工具,就可以在所有平臺(tái)上使用它。
Zenmap安裝完畢后,你隨時(shí)可以對(duì)自己的網(wǎng)絡(luò)運(yùn)行全面的端口掃描。網(wǎng)絡(luò)規(guī)模將決定運(yùn)行掃描所花的時(shí)間。如果使用Zenmap,你可以運(yùn)行非常籠統(tǒng)的掃描和非常具體的掃描。不妨先運(yùn)行非?;\統(tǒng)的掃描,大致了解我們所處理的對(duì)象。我們將在整個(gè)192.168.1.x網(wǎng)絡(luò)上運(yùn)行掃描。
1. 打開(kāi)Zenmap。
2. 在Target(目標(biāo))部分,輸入192.168.1.1/24(或者你想要擴(kuò)展的任何龐大的目標(biāo))。
3. 從Profile(配置文件)中選擇Intense Scan(精細(xì)掃描)。
4. 點(diǎn)擊Scan(掃描)按鈕。
你應(yīng)該會(huì)立馬看到結(jié)果批量裝入到Nmap Output(輸出)選項(xiàng)卡;結(jié)果顯示網(wǎng)絡(luò)中機(jī)器上的開(kāi)放端口(圖A)。精細(xì)掃描要花很長(zhǎng)時(shí)間,但是如果你想要獲得網(wǎng)絡(luò)方面的最詳細(xì)信息,就應(yīng)該進(jìn)行精細(xì)掃描。
圖A:使用Zenmap進(jìn)行精細(xì)掃描。
一旦掃描完畢,你會(huì)在左窗格看到一份列表,列出了網(wǎng)絡(luò)上存在的所有設(shè)備。點(diǎn)擊其中一個(gè)設(shè)備,滾動(dòng)瀏覽Nmap Output(輸出),尋找列有Port(端口)、State(狀態(tài))和Service(服務(wù))的這幾部分(圖B)。
圖B:Linux生產(chǎn)機(jī)器上開(kāi)放的端口8080和端口8086。
如果你沒(méi)有時(shí)間來(lái)梳理掃描,總是可以保存起來(lái),以便之后查看(使用Zenmap查看)。想保存掃描結(jié)果,進(jìn)入到Scan(掃描) | Save Scan(保存掃描),給它取個(gè)名字,并點(diǎn)擊Save(保存)。
想快速查看網(wǎng)絡(luò)上的開(kāi)放端口,點(diǎn)擊Ports/Hosts(端口/主機(jī))選項(xiàng)卡,即可查看哪些端口完全開(kāi)放(圖C)。
圖C:使用Zenmap快速查看開(kāi)放端口。
如果你不想依賴GUI,如果使用Nmap(你在安裝Zenmap時(shí)一并安裝),就可以從命令行運(yùn)行同樣的掃描。比如說(shuō),你想對(duì)單一主機(jī)運(yùn)行精細(xì)掃描。打開(kāi)終端窗口,執(zhí)行這個(gè)命令。
sudo nmap -T4 -A -v 192.168.1.1/24
這些是上述命令的參數(shù)選項(xiàng)符。
T4─ 將時(shí)間設(shè)為4(0-5,5代表最快)
A ─ 啟用操作系統(tǒng)檢測(cè)
v ─ 詳細(xì)輸出
這時(shí)候(無(wú)論你通過(guò)命令行使用Nmap還是使用Zenmap GUI),應(yīng)該可以獲得網(wǎng)絡(luò)上開(kāi)放端口的完整列表。既然已知道了哪些機(jī)器上的哪些端口開(kāi)放,保護(hù)這些端口安全性、進(jìn)而保護(hù)網(wǎng)絡(luò)安全性的可能性大大提高。
結(jié)束語(yǔ)
Nmap/Zenmap不是市面上唯一的網(wǎng)絡(luò)掃描選擇方案,不過(guò)你很難找到使用更簡(jiǎn)單、功能更強(qiáng)大的工具來(lái)幫助發(fā)現(xiàn)網(wǎng)絡(luò)上哪些端口是開(kāi)放的。
英文:List open ports and listening services