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