掃描器是幫助你了解自己系統(tǒng)的絕佳助手。象Windows 2K/XP這樣復(fù)雜的操作系統(tǒng)支持應(yīng)用軟件打開數(shù)百個端口與其他客戶程序或服務(wù)器通信,端口掃描是檢測服務(wù)器上運行了哪些服務(wù)和應(yīng)用、向Internet或其他網(wǎng)絡(luò)開放了哪些聯(lián)系通道的一種辦法,不僅速度快,而且效果也很不錯。簽于RHEL4/5自帶了nmap,而CentOS可用yum安裝,下面介紹windows下如何使用它,二個平臺下的語法是一樣的
Nmap被開發(fā)用于允許系統(tǒng)管理員察看一個大的網(wǎng)絡(luò)系統(tǒng)有哪些主機以及其上運行何種服務(wù)。它支持多種協(xié)議的掃描如UDP,TCP connect(),TCP SYN (half open), ftp proxy (bounce attack),Reverse-ident, ICMP (ping sweep), FIN, ACK sweep,Xmas Tree, SYN sweep, 和Null掃描。你可以從SCAN TYPES一節(jié)中察看相關(guān)細節(jié)。nmap還提供一些實用功能如通過tcp/ip來甄別操作系統(tǒng)類型、秘密掃描、動態(tài)延遲和重發(fā)、平行掃描、通過并行的PING偵測下屬的主機、欺騙掃描、端口過濾探測、直接的RPC掃描、分布掃描、靈活的目標(biāo)選擇以及端口的描述。
一、安裝Nmap
Nmap要用到一個稱為“Windows包捕獲庫”的驅(qū)動程序WinPcap——如果你經(jīng)常從網(wǎng)上下載流媒體電影,可能已經(jīng)熟悉這個驅(qū)動程序——某些流媒體電影的地址是加密的,偵測這些電影的真實地址就要用到WinPcap。WinPcap的作用是幫助調(diào)用程序(即這里的Nmap)捕獲通過網(wǎng)卡傳輸?shù)脑紨?shù)據(jù)。WinPcap的最新版本在http://netgroup-serv.polito.it/winpcap,支持XP/2K/Me/9x全系列操作系統(tǒng),下載得到的是一個執(zhí)行文件,雙擊安裝,一路確認(rèn)使用默認(rèn)設(shè)置就可以了,安裝好之后需要重新啟動。 中國網(wǎng)管聯(lián)盟bitsCN.com
接下來下載Nmap。下載好之后解開壓縮,不需要安裝。除了執(zhí)行文件nmap.exe之外,它還有下列參考文檔:
㈠ nmap-os-fingerprints:列出了500多種網(wǎng)絡(luò)設(shè)備和操作系統(tǒng)的堆棧標(biāo)識信息。
㈡ nmap-protocols:Nmap執(zhí)行協(xié)議掃描的協(xié)議清單。
㈢ nmap-rpc:遠程過程調(diào)用(RPC)服務(wù)清單,Nmap用它來確定在特定端口上監(jiān)聽的應(yīng)用類型。
㈣ nmap-services:一個TCP/UDP服務(wù)的清單,Nmap用它來匹配服務(wù)名稱和端口號。
除了命令行版本之外,www.insecure.org還提供了一個帶GUI的Nmap版本。和其他常見的Windows軟件一樣,GUI版本需要安裝,GUI版的功能基本上和命令行版本一樣,鑒于許多人更喜歡用命令行版本,本文后面的說明就以命令行版本為主.
二、常用掃描類型
解開Nmap命令行版的壓縮包之后,進入Windows的命令控制臺,再轉(zhuǎn)到安裝Nmap的目錄(如果經(jīng)常要用Nmap,最好把它的路徑加入到PATH環(huán)境變量)。不帶任何命令行參數(shù)運行Nmap,Nmap顯示出命令語法,linux下是nmap --help
下面是Nmap支持的四種最基本的掃描方式:
⑴ TCP connect()端口掃描(-sT參數(shù),-sP是用于掃描整個局域網(wǎng)段)
⑵ TCP同步(SYN)端口掃描(-sS參數(shù))
⑶ UDP端口掃描(-sU參數(shù))
⑷ TCP ACK掃描(-sA參數(shù))
TCP SYN掃描一下子不太好理解,但如果將它與TCP connect()掃描比較,就很容易看出這種掃描方式的特點。在TCP connect()掃描中,掃描器利用操作系統(tǒng)本身的系統(tǒng)調(diào)用打開一個完整的TCP連接——也就是說,掃描器打開了兩個主機之間的完整握手過程(SYN,SYN-ACK,和ACK)。一次完整執(zhí)行的握手過程表明遠程主機端口是打開的。
TCP SYN掃描創(chuàng)建的是半打開的連接,它與TCP connect()掃描的不同之處在于,TCP SYN掃描發(fā)送的是復(fù)位(RST)標(biāo)記而不是結(jié)束ACK標(biāo)記(即,SYN,SYN-ACK,或RST):如果遠程主機正在監(jiān)聽且端口是打開的,遠程主機用SYN-ACK應(yīng)答,Nmap發(fā)送一個RST;如果遠程主機的端口是關(guān)閉的,它的應(yīng)答將是RST,此時Nmap轉(zhuǎn)入下一個端口。
TCP SYN掃描速度要超過TCP connect()掃描。采用默認(rèn)計時選項,在LAN環(huán)境下掃描一個主機,Ping掃描耗時不到十秒,TCP SYN掃描需要大約十三秒,而TCP connect()掃描耗時最多,需要大約7分鐘。需要說明的是,TCP SYN掃描又叫隱蔽掃描,掃描時可隱藏自身IP,因為它很少在目標(biāo)機上留下記錄,三次握手的過程從來都不會完全實現(xiàn).namp -sS -O 192.168.0.1這樣的命令可以對此主機進行操作系統(tǒng)識別。
Nmap支持豐富、靈活的命令行參數(shù)。例如,如果要掃描192.168.7網(wǎng)絡(luò),可以用192.168.7.x/24或192.168.7.0-255的形式指定IP地址范圍。指定端口范圍使用-p參數(shù),如果不指定要掃描的端口,Nmap默認(rèn)掃描從1到1024再加上nmap-services列出的端口。
如果要查看Nmap運行的詳細過程,只要啟用verbose模式,即加上-v參數(shù),或者加上-vv參數(shù)獲得更加詳細的信息。例如,nmap -sS 192.168.7.1-255 -p 20,21,53-110,30000- -v命令,表示執(zhí)行一次TCP SYN掃描,啟用verbose模式,要掃描的網(wǎng)絡(luò)是192.168.7,檢測20、21、53到110以及30000以上的端口(指定端口清單時中間不要插入空格)。再舉一個例子,nmap -sS 192.168.7.1/24 -p 80掃描192.168.0子網(wǎng),查找在80端口監(jiān)聽的服務(wù)器(通常是Web服務(wù)器)。 中國網(wǎng)管論壇bbs.bitsCN.com
有些網(wǎng)絡(luò)設(shè)備,例如路由器和網(wǎng)絡(luò)打印機,可能禁用或過濾某些端口,禁止對該設(shè)備或跨越該設(shè)備的掃描。初步偵測網(wǎng)絡(luò)情況時,-host_timeout<毫秒數(shù)>參數(shù)很有用,它表示超時時間,例如nmap sS host_timeout 10000 192.168.0.1命令規(guī)定超時時間是10000毫秒。
網(wǎng)絡(luò)設(shè)備上被過濾掉的端口一般會大大延長偵測時間,設(shè)置超時參數(shù)有時可以顯著降低掃描網(wǎng)絡(luò)所需時間。Nmap會顯示出哪些網(wǎng)絡(luò)設(shè)備響應(yīng)超時,這時你就可以對這些設(shè)備個別處理,保證大范圍網(wǎng)絡(luò)掃描的整體速度。當(dāng)然,host_timeout到底可以節(jié)省多少掃描時間,最終還是由網(wǎng)絡(luò)上被過濾的端口數(shù)量決定。
Nmap的手冊(man文檔)詳細說明了命令行參數(shù)的用法(雖然man文檔是針對UNIX版Nmap編寫的,但同樣提供了Win32版本的說明)。
三、注意事項
也許你對其他端口掃描器比較熟悉,但Nmap絕對值得一試。建議先用Nmap掃描一個熟悉的系統(tǒng),感覺一下Nmap的基本運行模式,熟悉之后,再將掃描范圍擴大到其他系統(tǒng)。首先掃描內(nèi)部網(wǎng)絡(luò)看看Nmap報告的結(jié)果,然后從一個外部IP地址掃描,注意防火墻、入侵檢測系統(tǒng)(IDS)以及其他工具對掃描操作的反應(yīng)。通常,TCP connect()會引起IDS系統(tǒng)的反應(yīng),但IDS不一定會記錄俗稱“半連接”的TCP SYN掃描。最好將Nmap掃描網(wǎng)絡(luò)的報告整理存檔,以便隨后參考。
如果你打算熟悉和使用Nmap,下面幾點經(jīng)驗可能對你有幫助:
㈠ 避免誤解。不要隨意選擇測試Nmap的掃描目標(biāo)。許多單位把端口掃描視為惡意行為,所以測試Nmap最好在內(nèi)部網(wǎng)絡(luò)進行。如有必要,應(yīng)該告訴同事你正在試驗端口掃描,因為掃描可能引發(fā)IDS警報以及其他網(wǎng)絡(luò)問題, 如果不是在你控制的網(wǎng)絡(luò),系統(tǒng)及站點上用該工具,你應(yīng)該首先看許可權(quán).記住,尊重他人網(wǎng)絡(luò)和系統(tǒng)的隱私意味著別人以后也許也這樣對你.
㈡ 關(guān)閉不必要的服務(wù)。根據(jù)Nmap提供的報告(同時考慮網(wǎng)絡(luò)的安全要求),關(guān)閉不必要的服務(wù),或者調(diào)整路由器的訪問控制規(guī)則(ACL),禁用網(wǎng)絡(luò)開放給外界的某些端口。
㈢ 建立安全基準(zhǔn)。在Nmap的幫助下加固網(wǎng)絡(luò)、搞清楚哪些系統(tǒng)和服務(wù)可能受到攻擊之后,下一步是從這些已知的系統(tǒng)和服務(wù)出發(fā)建立一個安全基準(zhǔn),以后如果要啟用新的服務(wù)或者服務(wù)器,就可以方便地根據(jù)這個安全基準(zhǔn)執(zhí)行。
◆Michael Rash大師基于namp多樣化的掃描內(nèi)型,建議用其對iptables的策略進行嚴(yán)格測試,我深表贊同,所以希望大家可以熟練掌握此安全工具的使用。