漏洞掃描工具Nmap的使用

小編今天瀏覽了一篇非常好的博客,發現了Nmap這個神奇的漏洞掃描軟件。

這是一款免費的網絡發現和安全審計工具,用於列舉網絡主機清單、管理服務升級調度、監控主機或服務運行狀況。可檢測主機是否在線、端口開放情況:

監測操作系統與設備類型等信息。

它擁有靈活,強大,可移植,簡單,文檔豐富,社區支持等優點;包括:主機發現、端口掃描、版本偵測、操作系統偵測。

而這四項功能之間,又存在大致的依賴關係 ( 通常情況下的順序關係, 但特殊應用另外考慮),首先需要進行主機發現, 隨後確定端口狀況, 然後確定端口上運行具體應用程序與版本信息,然後可以進行操作系統的偵測。 而在四項基本功能的基礎上, Nmap 提供防火牆與 IDS( IntrusionDetection System,入侵檢測系統) 的規避技巧, 可以綜合應用到四個基本功能的各個階段; 另外 Nmap 提供強大的 NSE( Nmap Scripting Language) 腳本引擎功能, 腳本可以對基本功能進行補充和擴展。

這裏給出其官網,能翻牆的朋友可以直接去下。點擊打開鏈接

我會在最後給出,windows7 -64和linux-64的RPM安裝包 嘿嘿

下面列舉了一些常用的口令

1.確定指定存活的主機端口開放情況

2.完全掃描(主機發現、端口掃描、應用程序、版本偵測和調用默認NSE腳本掃描)

 T4是指:指定掃描過程使用的時序 ( Timing),總有 6 個級別( 0-5) , 級別越高, 掃描速度越快, 但也容易被防火牆或 IDS 檢測並屏蔽掉
在網絡通訊狀況良好的情況推薦使用 T4;-A 選項用於使用進攻性方式掃描 
v顯示過程中的詳細信息

3.主機發現

這裏給出能經常使用到的參數:

-sL: List Scan 列表掃描,僅將指定的目標的IP列舉出來,不進行主機發現。

-sn: Ping Scan 只進行主機發現,不進行端口掃描。

-Pn: 將所有指定的主機視作開啓的,跳過主機發現的過程。

-PS/PA/PU/PY[portlist]: 使用TCPSYN/ACK或SCTP INIT/ECHO方式進行發現。

-PE/PP/PM: 使用ICMP echo, timestamp, and netmask 請求包發現主機。-PO[protocollist]: 使用IP協議包探測對方主機是否開啓。

-n/-R: -n表示不進行DNS解析;-R表示總是進行DNS解析。

--dns-servers <serv1[,serv2],...>: 指定DNS服務器。

--system-dns: 指定使用系統的DNS服務器

--traceroute: 追蹤每個路由節點


4.快速探測局域網內活動的主機(探測一個網段內)

快速探測固定主機的情況

快速探測一段網段內主機



5.端口掃描

用於確定TCP\UDP端口開放情況;將端口劃分爲以下6個狀態:

1. open: 端口是開放的。
2. closed: 端口是關閉的。
3. filtered: 端口被防火牆 IDS/IPS 屏蔽, 無法確定其狀態。
4. unfiltered: 端口沒有被屏蔽, 但是否開放需要進一步確定。
5. open|filtered: 端口是開放的或被屏蔽。
6. closed | filtered : 端口是關閉的或被屏蔽。


5.1 UDP和TCP方式掃描

下面給出一些選擇掃描方式的參數

  -sS/sT/sA/sW/sM:指定使用 TCP SYN/Connect()/ACK/Window/Maimon scans的方式來對目標主機進行掃描。

  -sU: 指定使用UDP掃描方式確定目標主機的UDP端口狀況。

  -sN/sF/sX: 指定使用TCP Null, FIN, and Xmas scans祕密掃描方式來協助探測對方的TCP端口狀態。

  --scanflags <flags>: 定製TCP包的flags。

  -sI <zombiehost[:probeport]>: 指定使用idle scan方式來掃描目標主機(前提需要找到合適的zombie host)

  -sY/sZ: 使用SCTP INIT/COOKIE-ECHO來掃描SCTP協議端口的開放的情況。

  -sO: 使用IP protocol 掃描確定目標機支持的協議類型。

  -b <FTP relay host>: 使用FTP bounce scan掃描方式

5.1.1 UDP方式掃描端口

UDP掃描方式用於判斷UDP端口的情況。向目標主機的UDP端口發送探測包,如果收到回覆“ICMP port unreachable”就說明該端口是關閉的;如果沒有收到回覆,那說明UDP端口可能是開放的或屏蔽的。因此,通過反向排除法的方式來斷定哪些UDP端口是可能出於開放狀態。

抓包發現ICMP回包,防火牆將其屏蔽


5.1.2 TCP方式掃描端口

原理是基於TCP三次握手,通過SYN指令使連接一直處於半打開狀態,便於掃描

用TCP和UDP結合的方式掃描前300端口


5.2掃描特定端口

參數如下

-p <port ranges>: 掃描指定的端口

實例: -p22; -p1-65535; -p U:53,111,137,T:21-25,80,139,8080,S:9(其中T代表TCP協議、U代表UDP協議、S代表SCTP協議)

-F: Fast mode – 快速模式,僅掃描TOP 100的端口

-r: 不進行端口隨機打亂的操作(如無該參數,nmap會將要掃描的端口以隨機順序方式掃描,以讓nmap的掃描不易被對方防火牆檢測到)。

--top-ports <number>:掃描開放概率最高的number個端口(nmap的作者曾經做過大規模地互聯網掃描,以此統計出網絡上各種端口可能開放的概率。以此排列出最有可能開放端口的列表,具體可以參見文件:nmap-services。默認情況下,nmap會掃描最有可能的1000個TCP端口)

--port-ratio <ratio>: 掃描指定頻率以上的端口。與上述--top-ports類似,這裏以概率作爲參數,讓概率大於--port-ratio的端口才被掃描。顯然參數必須在在0到1之間,具體範圍概率情況可以查看nmap-services文件。


掃描UDP53端口狀態

掃描1-100號的端口狀態

快速掃描重要性排名前100的端口情況



6.版本偵測

-sV: 指定讓Nmap進行版本偵測

--version-intensity <level>: 指定版本偵測強度(0-9),默認爲7。數值越高,探測出的服務越準確,但是運行時間會比較長。

--version-light: 指定使用輕量偵測方式 (intensity 2)

--version-all: 嘗試使用所有的probes進行偵測 (intensity 9)

--version-trace: 顯示出詳細的版本偵測過程信息。




7.OS偵測(用於偵測用於目標主機的操作系統類型和設備信息)

Nmap通過TCP/IP協議棧指紋來識別不同的系統和設備。Nmap分別挑選一個OPEN和CLOSE的端口,向其發送一份TCP/UDP數據包,後生成一份系統指紋

將生成的指紋與Nmap庫中的進行對比,匹配出最具可能的系統。

參數如下

-O: 指定Nmap進行OS偵測。

--osscan-limit: 限制Nmap只對確定的主機的進行OS探測(至少需確知該主機分別有一個open和closed的端口)。

--osscan-guess: 大膽猜測對方的主機的系統類型。由此準確性會下降不少,但會儘可能多爲用戶提供潛在的操作系統。



文中只給出了一些基礎的用法,IDS避規和NSE腳本引擎請瀏覽這位博主的博客

點擊打開鏈接



這裏給出兩個版本的安裝包     Linux 64 位

win 64 位 



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章