序
許多人認為端口掃描器是黑客們才需要關心的工具,其實不然,知己知彼,才能百戰不殆,端口掃描器是幫助你了解自己係統的絕佳助手。象Windows2K/XP這樣複雜的操作係統支持應用軟件打開數百個端口與其他客戶程序或服務器通信,端口掃描是檢測服務器上運行了哪些服務和應用、向Internet或其他網絡開放了哪些聯係通道的一種辦法,不僅速度快,而且效果也很不錯。
目前支持Win2K/XP的端口掃描器已經有不少,部分還提供GUI(圖形用戶界麵)。在諸多端口掃描器中,Nmap是其中的佼佼者--它提供了大量的命令行選項,能夠靈活地滿足各種掃描要求,而且輸出格式豐富。Nmap原先是為Unix平台開發的,是許多Unix管理員的至愛,後來才被移植到Windows平台。NmapforWindows最新的穩定版本是3.27,可以從www.insecure.org/nmap/免費下載。
一、安裝Nmap
Nmap要用到一個稱為"Windows包捕獲庫"的驅動程序WinPcap--如果你經常從網上下載流媒體電影,可能已經熟悉這個驅動程序--某些流媒體電影的地址是加密的,偵測這些電影的真實地址就要用到WinPcap。WinPcap的作用是幫助調用程序(即這裏的Nmap)捕獲通過網卡傳輸的原始數據。WinPcap的最新版本在http://netgroup-serv.polito.it/winpcap,支持XP/2K/Me/9x全係列操作係統,下載得到的是一個執行文件,雙擊安裝,一路確認使用默認設置就可以了,安裝好之後需要重新啟動。
接下來從www.insecure.org/nmap/nmap_download.html下載Nmap(國內各大軟件網站也有,但一般版本更新略有滯後)。下載好之後解開壓縮,不需要安裝。除了執行文件nmap.exe之外,它還有下列參考文檔:
㈠nmap-os-fingerprints:列出了500多種網絡設備和操作係統的堆棧標識信息。
㈡nmap-protocols:Nmap執行協議掃描的協議清單。
㈢nmap-rpc:遠程過程調用(RPC)服務清單,Nmap用它來確定在特定端口上監聽的應用類型。
㈣nmap-services:一個TCP/UDP服務的清單,Nmap用它來匹配服務名稱和端口號。
除了命令行版本之外,www.insecure.org還提供了一個帶GUI的Nmap版本。和其他常見的Windows軟件一樣,GUI版本需要安裝,圖一就是GUI版Nmap的運行界麵。GUI版的功能基本上和命令行版本一樣,鑒於許多人更喜歡用命令行版本,本文後麵的說明就以命令行版本為主。
圖一
二、常用掃描類型
解開Nmap命令行版的壓縮包之後,進入Windows的命令控製台,再轉到安裝Nmap的目錄(如果經常要用Nmap,最好把它的路徑加入到PATH環境變量)。不帶任何命令行參數運行Nmap,Nmap顯示出命令語法,如圖二所示。
圖二
下麵是Nmap支持的四種最基本的掃描方式:
⑴TCPconnect()端口掃描(-sT參數)。
⑵TCP同步(SYN)端口掃描(-sS參數)。
⑶UDP端口掃描(-sU參數)。
⑷Ping掃描(-sP參數)。
如果要勾畫一個網絡的整體情況,Ping掃描和TCPSYN掃描最為實用。Ping掃描通過發送ICMP(InternetControlMessageProtocol,Internet控製消息協議)回應請求數據包和TCP應答(Acknowledge,簡寫ACK)數據包,確定主機的狀態,非常適合於檢測指定網段內正在運行的主機數量。
TCPSYN掃描一下子不太好理解,但如果將它與TCPconnect()掃描比較,就很容易看出這種掃描方式的特點。在TCPconnect()掃描中,掃描器利用操作係統本身的係統調用打開一個完整的TCP連接--也就是說,掃描器打開了兩個主機之間的完整握手過程(SYN,SYN-ACK,和ACK)。一次完整執行的握手過程表明遠程主機端口是打開的。