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