在滲透測試過程中,信息收集可謂是重中之重,在信息收集端口掃描方面nmap可謂是神器,除此之外還提供服務識別、系統識別、存活主機判斷等功能。
可去官網上下載最新版本(https://nmap.org)
目錄
主要功能用法
一、基本掃描
1、最簡單的掃描
nmap 192.168.0.100
默認發送一個ARP ping數據包,來探測1-10000內所開放的端口
可以接受的地址格式:
www.abc.com、192.168.0.100、192.168.0.100-200、192.168.0.1/24
2、掃描文件列表中的主機
當需要掃描的主機多而亂的時候,可將其放入一個txt文件裏面
nmap -iL hostlist.txt
3、掃描速度
nmap -T4 192.168.0.100
-T0~-T5:從左往右速度逐漸變快,但是掃描的準確率降低,默認爲-T3
二、主機發現
1、-sL(列表掃描)
nmap -sL 192.168.0.1/24
僅僅列出指定網絡上的每臺主機,不發送任何數據報
2、-sP(Ping掃描)
nmap -sP 192.168.1.100
對目標進行Ping掃描,不進行端口掃描,默認發送一個ICMP回聲請求和一個TCP報文到80端口,非特權用戶則發送一個SYN報文,當特權用戶掃描局域網則是發送ARP請求僅僅列出指定網絡上的每臺主機,不發送任何數據報
3、-PS(SYN掃描)、-PA(ACK掃描)、-PU(UDP掃描)、-PR(ARP掃描)
nmap -PS 192.168.0.100
發送對應的報文,並且還會進行端口掃描
4、-PE(ICMP echo)、-PP(ICMP timestamp)、-PM(ICMP netmask)
nmap -PE 192.168.0.100
分別使用ICMP的者三中請求包進行掃描,並且還會進行端口掃描
三、端口掃描
nmap所知別端口的6個狀態
open(開放的):表明端口是開放的
closed(關閉的):關閉的端口,對於nmap來說是可訪問的,也許過段時間再去掃可能就開放了
filtered(被過濾的):無法確定端口開放,可能受到防火牆或路由器規則的影響
unfiltered(未被過濾的):端口可以訪問,但不能確定端口是否開放
open|filtered(開放或者過濾的):無法確定開放或過濾,可能是端口未響應
closed|filtered(關閉或者過濾的):不能確定端口是關閉還是過濾
1、-p(指定端口)
nmap -p 80 192.168.0.100
使用-p指定端口80進行掃描,可指定多個端口如:21,22,80;也可以是一個端口段:1-100
2、-sS(TCP SYN掃描)
nmap -sS 192.168.0.100
最常用的掃描選項,SYN掃描不會建立三次握手,執行速率快效率高
3、sT(TCP掃描)
nmap -sT 192.168.0.100
會與目標主機建立完整的TCP連接(三次握手),這樣會在目標主機上面留下大批連接日誌請求,掃描速度慢效率低
4、-sU(UDP掃描)
nmap -sU 192.168.0.100
掃描UDP端口,可與掃描TCP端口的選項一起使用,檢查兩種協議。掃描速度比較慢,可添加--host-timeout選項來跳過慢速主機
5、-sN(TCP Null)、-sF(TCP FIN)、-sX(Xmas)
nmap -sN 192.168.0.100
當端口關閉時,任何不含SYN、RST、ACK的報文會導致一個RST返回,端口開放則沒有任何響應,於是可構造:-sN——不設置任何標誌位(tcp標誌頭爲0)、-sF——只設置TCP FIN標誌位、-sX——設置FIN,PSH和URG標誌位
能夠躲過無狀態防火牆和和報文過濾路由器
6、-sA(TCP ACK掃描)
nmap -sA 192.168.0.100
主要用於發現防火牆規則,確定是有狀態還是無狀態,哪些端口是被過濾的
7、-sO(IP協議掃描)
nmap -sO 192.168.0.100
掃描目標主機支持哪些IP協議(如TCP、ICMP、UDP、IGMP等)
8、-F(快速掃描)
nmap -F 192.168.0.100
掃描常用的100個端口
9、--top-ports
nmap --top-ports 10 192.168.0.100
掃描常見的10個端口,其中的10可變,可以是其他數量
四、服務和版本探測
-sV(版本探測)
nmap -sV 192.168.0.100
nmap -sV -A 192.168.0.100
使用-sV選項啓用版本探測,可與-A選項一起使用進行操作系統和版本探測
nmap -sV --version-intensity 8 192.168.0.100
使用--version-intensity 選項來指定探測強度,取值爲0~9之間,取值越大探測強度也就越大,默認爲7
五、操作系統探測
-O(啓用操作系統檢測)
nmap -O 192.168.0.100
--osscan-limit:當發現開放或者是關閉的TCP端口時,使用該選項可以更快的掃描
nmap -O --osscan-limit 192.168.0.100
--osscan-guess或--fuzzy:當無法確定操作系統時,可使用該選項找到相近的匹配
nmap -O --osscan-guess 192.168.0.100
六、繞防火牆
1、-f、--mtu(分段掃描)
nmap -f 192.168.0.100
nmap --mtu 8 192.168.0.100
使用--mtu選項時,需要指定偏移大小,必須爲8的倍數
2、-D(誘餌掃描)
nmap -D 192.168.0.97,192.168.0.98,192.168.0.99 192.168.0.100
-D選項後面那三個用逗號分隔的ip地址爲誘餌ip,誘餌主機必須是存活的主機
nmap -D RND:5 192.168.0.100
使用RND來隨機生成ip地址
3、空閒掃描
nmap -P0 -sI 192.168.0.111 192.168.0.100
其中192.168.0.111爲殭屍機
4、隨機掃描
nmap --data-length 25 192.168.0.100
在發送報文時附加隨機數據
nmap --randomize-hosts 192.168.0.1-100
對目標主機進行隨機排列掃描
5、欺騙掃描
nmap -sT -PN --spoof-mac 01:02:03:04:05:06 192.168.0.100
欺騙目的主機源主機MAC地址爲01:02:03:04:05:06
nmap --badsum 192.168.0.100
發送帶有虛假TCP/UDP/SCTP校驗和的數據包
除此之外,各種選項還可以進行組合,來實現更強大的掃描