Nmap基礎學習
語法
nmap + [空格] + <選項|多選項|協議> + [空格]+ <目標>
如
nmap <ip>
可迅速掃出目標端口開放情況

端口狀態
Open對外開放狀態。
Closed關閉狀態(可能一會兒會打開哦)。
Filtered被防火牆或路由訪問規則過濾掉了,也有可能是網絡堵塞造成的。
Unfiltered未被過濾端口可以訪問,但不知道端口開放還是關閉。此時可換一種掃描方式。
Open|Filtered說明探測報文沒有得到目標端口的響應。此時可換一種掃描方式。
Closed|Filtered關閉或過濾,只出現在IPID Idle掃描中。
全面掃描
掃描目標的所有端口+目標系統信息
nmap -A <ip>
掃描指定段
在內網中用的較多,可以發現局域網下的所有主機目標
nmap 192.168.1.100-200
掃描結果如下,可以看到有7個主機存活(即在線)。


主機發現
目錄
| 選項 | 解釋 |
|---|---|
| -sP | Ping掃描 |
| -P0 | 無Ping掃描 |
| -PS | TCP SYN Ping掃描 |
| -PA | TCP ACK Ping掃描 |
| -PU | UDP Ping 掃描 |
| -PE;-PP;-PM | ICMP Ping Types 掃描 |
| -PR | ARP Ping 掃描 |
| -n | 禁止DNS反向解析 |
| -R | 反向解析域名 |
| --system-dns | 使用系統域名解析器 |
| sL | 列表掃描 |
| -6 | 掃描IPv6地址 |
| --traceroute | 路由跟蹤 |
| -PY | SCTP INIT Ping |
Ping掃描
nmap -sP <ip>
只進行Ping,然后返回做出響應的主機

你可能會覺得和Ping沒什么區別,那你感覺對了,哈哈
如果你想一次性Ping很多主機,參考上面1.掃描指定段
無Ping掃描
nmap -P0 <ip>
當防火牆禁止Ping時可以用這個,可避免被防火牆發現

nmap -P0 【協議1,協議2】<ip>
-P0默認使用協議1,協議2,協議4進行掃描,我們還可以指定協議進行掃描
ICMP:協議編號1
IGMP:協議編號2
TCP:協議編號6
UDP:協議編號17
另:如果你想知道只寫協議是如何判斷主機狀態的可以使用 --packet-trace(即namp -P0 --packe-trace)
如我們指定TCP,UDP,IGMP協議項目標發送包
namp -P06,17,2 www.heihei.work

TCP SYN Ping掃描
nmap -PS -v www.heihei.work
Nmap默認Ping掃描使用TCP ACK 和 ICMP Echo 請求目標,當請求被主機防火牆阻止時,可使用該方式。

TCP協議是一種可靠的傳輸層協議。
-PS選項發送一個設置SYN標志位的空TCP報文。
默認端口80(可修改,如-PS22,23,25,11,5,3306,3389 被指定的多個端口會被並發地掃描)
TCP ACK Ping掃描
nmap -PA <ip>
它與-PS的唯一區別就是設置TCP標志位時ACK而不是SYN。這樣就可應付很多防火牆封鎖SYN報文的情況。
另
我們也可以同時向目標發送ACK和SYN的報文
nmap -PA -PS <ip>

額額,發現兩次掃描結果不一樣就離譜,上圖比第一次掃描多掃出來了6個端口!
UDP Ping 掃描
nmap -PU -v <ip>
-PU選項是發送一個空的UDP報文到指定端口。目標主機相應則返回一個ICMP端口不可達錯誤,否則返回各種ICMP錯誤。
ICMP Ping Types 掃描
使用-PE;-PP;-PM;選項可進行ICMP(Internet Control Message Protocol)掃描。
nmap -PE -v <ip>


上面是ICMP Echo 掃描方式。
nmap -PM -v <ip>

上面是ICMP 地址掩碼Ping掃描。
nmap -PP -v <ip>

上面是ICMP 時間戳Ping掃描。
從上面可以看出不同的掃描方式對不同的防火牆有着不同的效果。
ARP Ping 掃描
nmap -PR <ip>

-PR常用於局域網,ARP(Address Resolution Protocol)地址解析協議。
他的功能是將ARP請求廣播到網絡上的所有主機,接收返回的信息從而確定目標的IP地址,記錄IP地址和硬件地址到ARP緩存中,下次直接使用。
掃描列表
nmap -sL <ip>

他只會列出IP列表,如果IP對應的有他的域名也會被列出(即反向域名解析)。敢覺這個功能挺雞肋的。
禁止反向域名解析
nmap -n -sL <ip>
-n和上一個的區別就是不列出域名。
反向域名解析
nmap -R -sL <ip>
列出IP對應有域名的目標域名。
使用系統域名解析器
nmap --system-dns <ip1> <ip2>

多個請求並發執行可以提高性能。
掃描一個IPv6地址
nmap -6 <ip>
IPv6(Internet Protocol Version 6),它設計用於替代當前IPv4版本。
路由跟蹤
nmap --traceroute -v <ip>


--traceroute 可以查出從本地到目標之間所經過的網絡節點,及經過這些節點的時間。
默認使用主機配置的域名服務器域名解析,用該選項后會使用系統自帶的解析器。
SCTP INIT Ping 掃描
nmap -PY -v <ip>

通過發送INIT包判斷主機是否存活。
SCTP(Stream Control Transmission Protocol)流控制傳輸協議,SCTP可看做是傳輸層協議,可看做TCP協議的改進版。
探索網絡
目錄
| 選項 | 解釋 |
|---|---|
| -T | 時序選項 |
| -p | 端口掃描順序 |
| -sS | TCP SYN 掃描 |
| -sT | TCP連接掃描 |
| -sU | UDP掃描 |
| -sN;-sF;-sX | 隱蔽掃描 |
| -sA | TCP ACK 掃描 |
| -sW | TCP 窗口掃描 |
| -sM | TCP Maimon 掃描 |
| --scanflags | 自定義TCP掃描 |
| -sI | 空閑掃描 |
| -sO | IP協議掃描 |
| -b | FTP Bounce掃描 |
時序選擇(掃描速度選擇,一般我們使用-T4)
-T0非常慢,可IDS逃避。
-T1緩慢,可IDS逃避。
-T2有點慢,降低速度以減緩寬帶的消耗。
-T3默認,根據目標反應自動調整時間
-T4快速,需要良好的網絡環境,請求可能淹沒目標。
-T5急速,犧牲准確度以提高掃描速度。
IDS:入侵檢測系統
0.027s果然很快,哈哈
常用掃描方式
-p指定端口
nmap -p 445 <ip>
-p指定端口范圍
nmap -p 445~1000 <ip>
-p指定不同類型端口(以同時掃描TCP,UDP為例)
nmap -p T:111 ,U:445 <ip>


-F快速掃描部分端口
namp -F <ip>

--top-ports開放概率最高的1000個端口
nmap --top-ports <number> <ip>
如我們掃描概率最高的200個端口。

--port-ratio開放概率高於一定數值的端口
nmap --top-ports <0~1> <ip>

TCP SYN 掃描
nmap -sS <ip>

較為隱蔽,不完成三次握手避免被主機發現。
TCP 連接掃描
namp -sT <ip>
用於SYN掃描(-sS)不能使用時。
UDP 掃描
nmap -sU <ip>
一種很慢的掃描方式(所以通常加上-p 80-100來指定端口范圍),通常被管理員和安全審核人員忽略。
隱蔽掃描
-sNNULL掃描,發送非常規的TCP包探測。
-sFFIN掃描,發送FIN包比TCP FIN更隱蔽穿透效果更好。
-sXXmas掃描,數據包FIN,PSH,URG標記位打開即標志為1.
如
nmap -sN <ip>


