nmap

nmap

NMap,也就是Network Mapper,最早是Linux下的網路掃描和嗅探工具包。

基本信息

簡介

nmap是一個網路連線端掃描軟體,用來掃描網上電腦開放的網路連線端。確定哪些服務運行在哪些連線端,並且推斷計算機運行哪個作業系統(這是亦稱 fingerprinting)。它是網路管理員必用的軟體之一,以及用以評估網路系統安全。

正如大多數被用於網路安全的工具,nmap 也是不少黑客及駭客(又稱腳本小子)愛用的工具 。系統管理員可以利用nmap來探測工作環境中未經批准使用的伺服器,但是黑客會利用nmap來蒐集目標電腦的網路設定,從而計畫攻擊的方法。

Nmap 常被跟評估系統漏洞軟體Nessus 混為一談。Nmap 以隱秘的手法,避開闖入檢測系統的監視,並儘可能不影響目標系統的日常操作。

功能

其基本功能有三個,一是探測一組主機是否線上;其次是掃描 主機連線埠,嗅探所提供的網路服務;還可以推斷主機所用的作業系統 。Nmap可用於掃描僅有兩個節點的LAN,直至500個節點以上的網路。Nmap 還允許用戶定製掃描技巧。通常,一個簡單的使用ICMP協定的ping操作可以滿足一般需求;也可以深入探測UDP或者TCP連線埠,直至主機所 使用的作業系統;還可以將所有探測結果記錄到各種格式的日誌中, 供進一步分析操作。

進行ping掃描,列印出對掃描做出回響的主機,不做進一步測試(如連線埠掃描或者作業系統探測):

nmap -sP 192.168.1.0/24

僅列出指定網路上的每台主機,不傳送任何報文到目標主機:

nmap -sL 192.168.1.0/24

探測目標主機開放的連線埠,可以指定一個以逗號分隔的連線埠列表(如-PS22,23,25,80):

nmap -PS 192.168.1.234

使用UDP ping探測主機:

nmap -PU 192.168.1.0/24

使用頻率最高的掃描選項:SYN掃描,又稱為半開放掃描,它不打開一個完全的TCP連線,執行得很快:

nmap -sS 192.168.1.0/24

當SYN掃描不能用時,TCP Connect()掃描就是默認的TCP掃描:

nmap -sT 192.168.1.0/24

UDP掃描用-sU選項,UDP掃描傳送空的(沒有數據)UDP報頭到每個目標連線埠:

nmap -sU 192.168.1.0/24

確定目標機支持哪些IP協定 (TCP,ICMP,IGMP等):

nmap -sO 192.168.1.19

探測目標主機的作業系統:

nmap -O 192.168.1.19

nmap -A 192.168.1.19

另外,nmap官方文檔中的例子:

nmap -v scanme.

這個選項掃描主機scanme中 所有的保留TCP連線埠。選項-v啟用細節模式。

nmap -sS -O scanme./24

進行秘密SYN掃描,對象為主機Saznme所在的“C類”網段 的255台主機。同時嘗試確定每台工作主機的作業系統類型。因為進行SYN掃描 和作業系統檢測,這個掃描需要有根許可權。

nmap -sV -p 22,53,110,143,4564 198.116.0-255.1-127

進行主機列舉和TCP掃描,對象為B類188.116網段中255個8位子網。這 個測試用於確定系統是否運行了sshd、DNS、imapd或4564連線埠。如果這些連線埠 打開,將使用版本檢測來確定哪種套用在運行。

nmap -v -iR 100000 -P0 -p 80

隨機選擇100000台主機掃描是否運行Web伺服器(80連線埠)。由起始階段 傳送探測報文來確定主機是否工作非常浪費時間,而且只需探測主機的一個連線埠,因 此使用-P0禁止對主機列表。

nmap -P0 -p80 -oX logs/pb-port80scan.xml -oG logs/pb-port80scan.gnmap 216.163.128.20/20

掃描4096個IP位址,查找Web伺服器(不ping),將結果以Grep和XML格式保存。

host -l | cut -d -f 4 | nmap -v -iL -

進行DNS區域傳輸,以發現中的主機,然後將IP位址提供給 Nmap。上述命令用於GNU/Linux -- 其它系統進行區域傳輸時有不同的命令。

其他選項:

-p (只掃描指定的連線埠)

單個連線埠和用連字元表示的連線埠范 圍(如 1-1023)都可以。當既掃描TCP連線埠又掃描UDP連線埠時,可以通過在連線埠號前加上T: 或者U:指定協定。 協定限定符一直有效直到指定另一個。 例如,參數 -p U:53,111,137,T:21-25,80,139,8080 將掃描UDP 連線埠53,111,和137,同時掃描列出的TCP連線埠。

-F (快速 (有限的連線埠) 掃描)

使用

一、安裝Nmap

Nmap要用到一個稱為“Windows包捕獲庫”的驅動程式WinPcap——如果你經常從網上下載流媒體電影,可能已經熟悉這個驅動程式——某些流媒體電影的地址是加密的,偵測這些電影的真實地址就要用到WinPcap。WinPcap的作用是幫助調用程式(即這裡的Nmap)捕獲通過網卡傳輸的原始數據。WinPcap支持XP/2K/Me/9x全系列作業系統,下載得到的是一個執行檔案,雙擊安裝,一路確認使用默認設定就可以了,安裝好之後需要重新啟動。

接下來下載Nmap(國內各大軟體網站也有,但一般版本更新略有滯後)。下載好之後解開壓縮,不需要安裝。除了執行檔案nmap.exe之外,它還有下列參考文檔:

一 nmap-os-fingerprints:列出了500多種網路設備和作業系統的堆疊標識信息。

二 nmap-protocols:Nmap執行協定掃描的協定清單。

三 nmap-rpc:遠程過程調用(RPC)服務清單,Nmap用它來確定在特定連線埠上監聽的套用類型。

四 nmap-services:一個TCP/UDP服務的清單,Nmap用它來匹配服務名稱和連線埠號。除了命令行版本之外,還提供了一個帶GUI的Nmap版本。和其他常見的Windows軟體一樣,GUI版本需要安裝,圖一就是GUI版Nmap的運行界面

二、常用掃描類型

解開Nmap命令行版的壓縮檔之後,進入Windows的命令控制台,再轉到安裝Nmap的目錄(如果經常要用Nmap,最好把它的路徑加入到PATH環境變數)。不帶任何命令行參數。

GUI版的功能基本上和命令行版本一樣,鑒於許多人更喜歡用命令行版本,本文後面的說明就以命令行版本為主。 下面是Nmap支持的四種最基本的掃描方式:

⑴ TCP connect()連線埠掃描(-sT參數)。

⑵ TCP同步(SYN)連線埠掃描(-sS參數)。

⑶ UDP連線埠掃描(-sU參數)。

⑷ Ping掃描(-sP參數)。

如果要勾畫一個網路的整體情況,Ping掃描和TCP SYN掃描最為實用。Ping掃描通過傳送ICMP (Internet Control Message Protocol,Internet控制訊息協定)回應請求數據包和TCP應答(Acknowledge,簡寫ACK)數據包,確定主機的狀態,非常適合於檢測指定網段內正在運行的主機數量。

TCP SYN掃描一下子不太好理解,但如果將它與TCP connect()掃描比較,就很容易看出這種掃描方式的特點。在TCP connect()掃描中,掃描器利用作業系統本身的系統調用打開一個完整的TCP連線——也就是說,掃描器打開了兩個主機之間的完整握手過程(SYN,SYN-ACK,和ACK)。一次完整執行的握手過程表明遠程主機連線埠是打開的。

TCP SYN掃描創建的是半打開的連線,它與TCP connect()掃描的不同之處在於,TCP SYN掃描傳送的是復位(RST)標記而不是結束ACK標記(即,SYN,SYN-ACK,或RST):如果遠程主機正在監聽且連線埠是打開的,遠程主機用SYN-ACK應答,Nmap傳送一個RST;如果遠程主機的連線埠是關閉的,它的應答將是RST,此時Nmap轉入下一個連線埠。

Nmap支持豐富、靈活的命令行參數。例如,如果要掃描192.168.7網路,可以用 192.168.7.x/24或192.168.7.0-255的形式指定IP位址範圍。指定連線埠範圍使用-p參數,如果不指定要掃描的連線埠,Nmap默認掃描從1到1024再加上nmap-services列出的連線埠。如果要查看Nmap運行的詳細過程,只要啟用verbose模式,即加上-v參數,或者加上-vv參數獲得更加詳細的信息。例如,nmap -sS 192.168.7.1-255 -p 20,21,53-110,30000- -v命令,表示執行一次TCP SYN掃描,啟用verbose模式,要掃描的網路是192.168.7,檢測20、21、53到110以及30000以上的連線埠(指定連線埠清單時中間不要插入空格)。再舉一個例子,nmap -sS 192.168.7.1/24 -p 80掃描192.168.0子網,查找在 80連線埠監聽的伺服器(通常是Web伺服器)。

有些網路設備,例如路由器和網路印表機,可能禁用或過濾某些連線埠,禁止對該設備或跨越該設備的掃描。初步偵測網路情況時,-host_timeout參數很有用,它表示逾時時間,例如 nmap sS host_timeout 10000 192.168.0.1命令規定逾時時間是10000毫秒。

網路設備上被過濾掉的連線埠一般會大大延長偵測時間,設定逾時參數有時可以顯著降低掃描網路所需時間。Nmap會顯示出哪些網路設備回響逾時,這時你就可以對這些設備個別處理,保證大範圍網路掃描的整體速度。當然,host_timeout到底可以節省多少掃描時間,最終還是由網路上被過濾的連線埠數量決定。

版本發布

2009年07月17日,開源網路安全掃描工具Nmap正式發布了5.00版,這是自1997年以來最重要的發布,代表著Nmap從簡單的網路連線端掃描軟體變身為全方面的安全和網路工具組件。

Nmap於1997年9月推出,支持Linux、Windows、Solaris、BSD、Mac OS X、AmigaOS系統,採用GPL許可證,最初用於掃描開放的網路連線端,確定哪服務運行在那些連線端,它是評估網路系統安全的重要軟體,也是黑客常用 的工具之一。新的Nmap 5.00版大幅改進了性能,增加了大量的腳本。例如Nmap現在能登錄進入Windows,執行本地檢查(PDF),能檢測出臭名昭著的Conficker蠕蟲。其它的主要特性包括:用於數據傳輸,重定向和調試的新Ncat工具,Ndiff快速掃描比較工具,高級GUI和結果瀏覽器Zenmap等。

2010年01月25日,Nmap 5.20 發布。

2012年12月04日,Nmap 6.25 發布,網路安全審計工具。

2015年11月19日,Nmap 7.0發布。

2016年03月17日,Nmap 7.10發布。

2016年09月29日,Nmap 7.30發布。

相關詞條

相關搜尋

熱門詞條

聯絡我們