1. 程式人生 > 實用技巧 >滲透測試-資訊收集之nmap

滲透測試-資訊收集之nmap

0x01 nmap介紹

Nmap是一個開源,免費的網路探測工具,可以用來探測存活主機以及開放的埠等,支援windows,linux,mac等多種作業系統。

nmap下載官網https://nmap.org/download.html

0x02 nmap常用功能

  • 探測主機存活
  • 掃描埠
  • 探測主機作業系統資訊
  • 檢測漏洞

0x03 nmap實戰

nmap 常用的幾個引數

nmap -v ip	顯示詳細的掃描過程
nmap -p ip 掃描指定埠
nmap -A ip 全面掃描作業系統
nmap -sP ip 進行ping掃描主機存活
nmap -Pn/-P0 ip 禁ping掃描
nmap -sS ip 進行tcp syn掃描 也叫半開放掃描
nmap -sT ip 進行tcp連線掃描 (準確性高)

埠狀態資訊

open :埠開啟
closed :埠關閉
filtered :埠被過濾,因為報文被防火牆攔截
Unfiltered :不確定埠是否開放 沒有被過濾
open|filtered(closed|filtered) :不能確定埠是否開放(關閉)或者被過濾

0x04 nmap中文說明文件

TARGET SPECIFICATION 目標說明

-iL 從主機地址列表檔案中匯入掃描地址
-iR 隨機選擇目標進行掃描,unm hosts 表示數目,設定為0則無休止掃描
--exclude 排除某個主機地址
--excludefile 排除主機列表檔案中的地址
*************************************************************
HOST DISCOVERY 主機發現

-sL 列表掃描,僅將指定的目標IP列舉出來,不進行主機發現
-sn 和-sP一樣,只利用ping掃描進行主機發現,不掃描目標主機的埠
-Pn 將所有指定的主機視為已開啟狀態,跳過主機發現過程
-PS TCP SYN ping ,傳送一個設定了SYN標誌位的TCP報文,預設埠為80,也可指定埠
-PA TCP ACK ping,傳送一個設定了ACK標誌位的TCP報文,預設埠為80,也可指定帶你看
-PU UDP ping ,傳送一個空的UDP報文到指定埠,可穿透只過濾TCp的防火牆
-P0 使用IP協議ping
-PR 使用ARP ping
-n/-R -n不用域名解析,加速掃描,-R為目標IP做為反向解析域名,掃描較慢一些
-dns-servers 自定義域名解析伺服器地址
-traceroute 目標主機路由追蹤
*************************************************************
SCAN TECHNIQUER 埠掃描

nmap 將目標埠分為6種狀態:
open(開放的)
closed(關閉的)
filtered (被過濾的)
unfiltered (未被過濾的)可訪問但不確定開發情況
open|filtered (開放或者被過濾)無法確定埠是否開放的還是被過濾的
closed|filtered (關閉或者被過濾)無法確定埠是否關閉還是被過濾的
nmap產生的結果基於目標機器的響應報文的,而這些主機肯能是不可信任的。會產生迷惑或者誤導nmap的報文

-sS TCP SYN 掃描,不進行ping 半開放掃描,速度快隱蔽性好(不完成TCP連線),能夠明確區分埠狀態
-sT TCP 連線掃描,容易產生記錄,效率低
-sA TCP ACK掃描,只設置ACK標誌位,區別被過濾與未被過濾的
-sU UDP 服務掃描,例如DNS/DHCP等,效率低
-sN;-sF;-sX TCP Null,Fin,Xmas掃描,從RFC挖掘的微妙方法來區分開放關閉埠
-sl 利用殭屍主機上已知IP分段ID序列生成演算法來探測目標上開放埠的資訊,極端隱蔽
-sO IP協議掃描,可以確定目標主機支援哪些IP協議,例如TCP/ICMP等
************************************************************************
PORT SPECIFICATION AND SCAN ORDER 埠說明和掃描順序


-p 指定掃描的埠,可以是單個埠,也可以是埠範圍,可以指定UDP或TCP協議掃描特定埠
-p<name> 指定掃描的協議,例如-p http 即可掃描http協議的埠狀態
--exclude-ports 排除指定埠不掃描
-F 極速模式,僅掃描100個常用埠
************************************************************************
SERVICE/VERSION DETECTION 服務與版本探測。

Nmap-services 包含大量服務的資料庫,Nmap通過查詢該資料庫可以報告哪些埠可能對應於掃描服務,但不一定正確
-sV 進行服務版本探測
--version-intensity<level> 設定版本掃描強度,範圍為0-9,預設是7,強度越高,時間越長,服務越可能被正確識別
************************************************************************
SCRIPT SCAN 指令碼掃描

允許使用者自己編寫的指令碼來執行自動化的操作或者擴充套件nmap的功能,使用Lua指令碼語言。
-sC 使用預設類別的指令碼進行掃描
--script=<Lua scripts> 使用某個或某類指令碼進行掃描,支援統配符描述
************************************************************************
OS DETECTION 作業系統探測

用TCP/IP協議棧fingerprinting進行探測,Nmap傳送一系列TCP和UDP報文到遠端主機,檢查響應的每一個位元。測試後Nmap吧結果和資料庫中超過1500個已知的fingerprints比較,如匹配則輸出結果

-O 啟用作業系統探測
-A 同時啟用作業系統探測和服務版本探測
--osscan-limit 針對指定的目標進行作業系統檢測
--osscan-guess 當nmap無法確定所檢測的作業系統時,會盡可能地提供相近的匹配
************************************************************************
TIMING AND PERFORMANCE 時間和效能
Nmap開發的最高優先順序是效能,但實際應用中很多因素會新增掃描時間,比如特定的掃描選項,防火牆配置以及版本掃描等

-T<0-5> 設定模板級數,在0-5中選擇。T0、T1用於IDS規避,T2降低了掃描速度以使用更少的頻寬和資源。預設為T3,未作任何優化。T4假設具有合適及可靠的網路從而加速掃描。T5假設具有特別快的網路或者願為速度犧牲準確性
-host-timeout<time> 放棄低速目標主機,時間單位為毫秒


掃描漏洞
nmap --script=vuln ip


3、提供暴力破解的方式,可對資料庫、smb、snmp等進行簡單密碼的暴力猜解
nmap --script=brute 192.168.88.131

4、利用FTP指定指令碼對目標特定FTP協議進行密碼爆破
nmap --script=ftp-brute.nse 192.168.88.131

5、利用第三方的資料庫或資源,例如進行whoise解析
nmap --script=external 192.168.88.131