主機發現
-
nmap -A baidu.com:全面掃描
-
nmap 127.0.0.1-200:掃描一個C段
-
nmap baidu.com :進行一個快速的掃描
-
Ping掃描:
- 只進行ping,然後顯示出在線的主機
- 主機發現:
- nmap -sP 192.168.126.131/24
-
無Ping掃描:
-
常用於防火牆禁止ping的情況下
-
nmap -P0 192.168.121.32
-
可以手動設置掃描的協議
如:
TCP:對應協議編號爲6。 ICMP:對應協議編號爲1 IGMP:對應協議編號爲2 UDP:對應協議編號爲17
-
用TCP,UDP,IGMP協議向目標主機發包判斷是否存活;
- nmap -p06,17,2 192.168.121.1/24
(默認用的爲1,2,4)
-
-
TCP SYN掃描
- nmap -PS -v 192.168.21.1
- 通常情況下Nmap 默認ping掃描是使用TCP ACK和ICMP Echo請求對目標進行掃描.目標主機的防火牆阻止這些請求時,可以用TCP SYN Ping掃描進行對目標主機存活的判斷
- 指定端口範圍進行的掃描nmap -PS80,100-200 -v 192.168.21.1
-
TCP ACK Ping掃描
使用-PA選項可以進行TCP ACK Ping掃描,它與TCP SYN Ping掃描是非常類似的,唯一的區別是設置TCP的標誌位是ACK而不是SYN,使用這種方式掃描可以探測阻止:SYN包或ICMP Echo請求的主機。很多防火牆會封鎖SYN報文,所以Nmap提供了TCP SYN Ping掃描與TCP ACK Ping掃描兩種探測方式,這兩種方式可以極大地提高通過防火牆的概率,我們還可以同時使用-PS與-PA來既發送SYN又發送ACK。在使用TCP ACK Ping掃描時,Nmap 會發送一一個ACK標誌的TCP包給目標主機,如果目標主機不是存活狀態則不響應該請求,如果目標主機在線則會返回一個RST包。
- nmap -PA 192.168.21.1
- nmap -PA -PS -v 192.168.21.1兩種一起用
-
UDP Ping 掃描
- nmap -PU 192.168.21.1
-
ARP Ping 掃描
- 通常在掃描局域網時使用,內網使用ARP Ping掃描方式是最有效的
- nmap 默認情況下掃描局域網內的主機會使用ARP掃描,即使指定了-PS等
- nmap -PR 192.168.21.1-200
-
列表掃描 -sL 不知道有啥用
-
禁止反向域名解析 -n
該選項很少使用,如果是對–臺有域名綁定的服務器通常不會使用該選項;
如果是單純掃描一-段IP, 使用該選項可以大幅度減少目標主機的相應時間,從而更快地得到結果。 -
反向域名解析
- -R選項意爲反向解析城名,使用該選項時Nmap永遠對目標IP地址作反向域名解析。
該選項多用於綁定域名的服務器主機上,該選項的使用便於我們瞭解目標的詳細信息。例如,在掃描一個C段的時候,我們更加清楚在哪- - 段IP上存在哪些網站。
-
掃描IPV6
- nmap -6 fe80::1c98:68e:303d:496a
IPv6將會逐漸替換IPv4,但在一段相當長的時間內,IPv4 還會大量地存在。後面章節演示的IP則都是IPv4地址,如果需要掃描IPv6地址,則需要在每個語句的IPv6目標地址前面加上-6選項。
- –traceroute 路由跟蹤
- nmap --traceroute -v baidu.com
- nmap --traceroute -v baidu.com
端口掃描
-
所有的掃描選項都是以
-s<x>
形式出現的 -
ACK -sA | UDP -sU
-
端口六個狀態
- open(開放的)
- closed(關閉的) 關閉的關口是可訪問的
- filtered(被過濾的) 建議再次掃描
- unfiltered(未被過濾的) 未被過濾狀態意味着端口可訪問,但Nmap不能確定它是開放還是關閉。
- open|filtered(開放或者被過濾的) 開放的端口不響應就是一個例子。沒有響應也可能意味着報文過濾器丟棄 了探測報文或者它引發的任何響應。因此Nmap無法確定該端口是開放的還是被過濾的。
- closed|filtered(關閉或者被過濾的) 該狀態用於Nmap不能確定端口是關閉的還是被過濾的。 它只可能出現在IPID Idle掃描中。
-
時序選項
在Nmap中使用-T (0-5)可以啓用時序選項,對於時序選項這裏有0~5不同的選項。
IDS:入侵檢測系統
-T0 (偏執的):非常慢的掃描,用於IDS逃避。
-T1 (鬼祟的):緩慢的掃描,用於IDS逃避。
-T2 (文雅的):降低速度以降低對帶寬的消耗,此選項- -般不常用。
-T3 (普通的):默認,根據目標的反應自動調整時間。
-T4 (野蠻的):快速掃描,常用掃描方式,需要在很好的網絡環境下進行掃描,請求可能會淹沒目標。
-T5 (瘋狂的):極速掃描,這種掃描方式以犧牲準確度來提升掃描速度。
(現在一般用-T4)
nmap -T4 192.168.21.1
-
常用掃描選項
-
-p 指定掃描端口
- nmap -p 80,445 192.168.21.1
- nmap -p 1-1000 192.168.21.1
-
-F 快速掃描常用端口
- nmap -F 192.168.21.1
-
-r 使用該選項不會對端口進行隨機的順序掃描
-
–top-ports
- 掃描開發概率最高的1000個TCP端口
- nmap --top-ports 1000 192.168.21.1
- nmap --top-ports 100 192.168.21.1
-
-
TCP SYN 掃描 -sS
- nmap -sS 192.168.21.1
- 比較常用,掃描速度較快
- 比較隱蔽,不會輕易被目標主機發現
-
TCP 連接掃描 -sT
- 用於SYN掃描不能用的時候
- 基本不會對目標主機進行泛洪攻擊或導致目標主機崩潰
- 比較穩定,基礎
- 首先選用SYN掃描
-
UDP掃描-sU
使用-sU選項可以進行UDP掃描。UDP掃描是非常慢的,很多的安全審覈人員忽略了這些端口,這顯然是一個錯誤的做法。
-
隱藏掃描-sN -sF -sX
- -sF FIN掃描,使用TCP SYN被目標主機防火牆發現,會阻止SYN數據包.
- 這時候可以用-sF 嘗試穿透
- 這些掃描方式可能會躲過一些無狀態防火牆的過濾
- -sF FIN掃描,使用TCP SYN被目標主機防火牆發現,會阻止SYN數據包.
-
空閒掃描,利用跳板/代理掃描
-
nmap -sI www.0day.co:80 192.168.21.1
這裏是利用殭屍主機爲www0day.co 的主機對192.168.126.131 進行空閒掃描,如果有IDS,IDS 則會把www0day.co當作掃描者。
-
指紋識別與探測
- 版本探測
- 探測主機系統,以及一些服務的版本
使用-A選項後我們可以獲取更加詳細的信息和更加直觀的方式。我們在以上的結果中甚至可以得到具體的Linux內核版本,這得益於強大的Nmap。
使用-sV選項或-A選項時,對於獲知的結果不要過分地相信,Nmap並不一
定能全部躲過某些軟件的僞裝。
-
全端口版本探測
- nmap -sV --allports 192.168.21.1
-
設置掃描強度
–version-intensity 0~9
數值越大,可能越準確,耗時也更長
0最低 9最高
默認是7
- 獲取詳細的版本信息
–version-trace
操作系統探測
nmap -O 192.168.21.1
- 以下兩個可以推測操作系統
nmap -O --fuzzy 192.168.21.1
nmap -O --osscan-guess 192.168.21.1
- 有一定的差別的
防火牆/IDS(入侵檢測)逃逸
- 報文分段
nmap -sV -F 192.168.1.100
- IP欺騙 -D
RND 隨機生成:
nmap -D RND:11 192.168.21.1
指定IP:
nmap -D 192.168.1.1,192.168.1.2,192.168.1.3 192.168.21.1
需要注意的是,誘餌主機必須處於工作狀態,否則會導致目標主機的SYN洪水攻擊。
- 源地址欺騙-sI
nmap -sI www. 0day.co:80 192.168.126.131
- 源端口欺騙
nmap --source-port 53 182.168.21.1
- MAC地址欺騙
–spoof-mac 0會隨機生成一個
nmap -sT -PN --spoof-mac 0 192.168.126.131
保存和輸出
- 標準保存 -oN
nmap -F -oN test.txt 192.168.21.1
- 補充保存 --append-output
nmap -F --append-out -oN test.txt 192.168.21.1