From:http://highon.coffee/docs/nmap/
只是一個快速查詢手冊,理論的東西都沒有補充,歡迎大家積極在評論區補充自己常用的參數,O(∩_∩)O
1.主機存活檢測
2.端口探測
3.服務識別
4.操作系統識別
5.硬件地址檢測
6.服務版本識別
7.漏洞掃描,使用nmap自帶腳本
使用ping檢測10.0.0.0/24這個網段
#!bash
nmap -sP 10.0.0.0/24
使用SYN的方法對全端口進行掃描,在aggressive(4)的時間模板下,同時對開放的端口進行端口識別
#!bash
nmap -p1-65535 -sV -sS -T4 target
PS: -T代表的是掃描的時候,一些控制選項(TCP的延遲時間,探測報文之間的間隔等)的集合,具體的man nmap一下就知道了
使用SYN掃描,在aggressive(4)的時間模板下,探測操作系統的類型和版本,還有顯示traceroute的結果,結果輸出較為詳細
#!bash
nmap -v -sS -A -T4 target
使用SYN掃描,在insane(5)的時間模板下,探測操作系統的類型和版本,還有顯示traceroute的結果,結果輸出較為詳細
#!bash
nmap -v -sS -A -T5 target
使用SYN掃描,在insane(5)的時間模板下,探測操作系統的類型,還有顯示traceroute的結果,操作系統的類型,結果輸出較為詳細
#!bash
nmap -v -sV -O -sS -T5 target
使用SYN的方法對全端口進行掃描,同時對開放的端口進行端口識別,在aggressive(4)的時間模板下,探測操作系統的類型還有顯示traceroute的結果,結果輸出較為詳細
#!bash
nmap -v -p 1-65535 -sV -O -sS -T4 target
用SYN的方法對全端口進行掃描,同時對開放的端口進行端口識別,在insane(5)的時間模板下,探測操作系統的類型,還有顯示traceroute的結果,結果輸出較為詳細
#!bash
nmap -v -p 1-65535 -sV -O -sS -T5 target
從文件中讀取需要掃描的IP列表
#!bash
nmap -iL ip-address.txt
掃描的結果輸出到屏幕,同時會存儲一份到grep-output.txt
#!bash
nmap -sV -p 139,445 -oG grep-output.txt 10.0.1.0/24
掃描結果輸出為html
#!bash
nmap -sS -sV -T5 10.0.1.99 --webxml -oX - | xsltproc --output file.html
在子網中發現開放netbios的IP
#!bash
nmap -sV -v -p139,445 10.0.0.1/24
掃描指定netbios的名稱
#!bash
nmap -sU --script nbstat.nse -p 137 target
掃描指定的目標,同時檢測相關漏洞
#!bash
nmap --script-args=unsafe=1 --script smb-check-vulns.nse -p 445 target
將nmap的80端口的掃描結果,通過管道交給nikto進行掃描
#!bash
Nmap Nikto Scan nmap -p80 10.0.1.0/24 -oG - | nikto.pl -h -
將nmap的80,443端口的掃描結果,通過管道交給nikto進行掃描
#!bash
nmap -p80,443 10.0.1.0/24 -oG - | nikto.pl -h -
Nmap支持主機名,ip,網段的表示方式
例如:blah.highon.coffee, namp.org/24, 192.168.0.1;10.0.0-25.1-254
#!bash
-iL filename 從文件中讀取待檢測的目標,文件中的表示方法支持機名,ip,網段
-iR hostnum 隨機選取,進行掃描.如果-iR指定為0,則是無休止的掃描
--exclude host1[, host2] 從掃描任務中需要排除的主機
--exculdefile exclude_file 排除文件中的IP,格式和-iL指定掃描文件的格式相同
主機發現
#!bash
-sL 僅僅是顯示,掃描的IP數目,不會進行任何掃描
-sn ping掃描,即主機發現
-Pn 不檢測主機存活
-PS/PA/PU/PY[portlist] TCP SYN Ping/TCP ACK Ping/UDP Ping發現
-PE/PP/PM 使用ICMP?echo,?timestamp and?netmask?請求包發現主機
-PO[prococol list] 使用IP協議包探測對方主機是否開啟
-n/-R 不對IP進行域名反向解析/為所有的IP都進行域名的反響解析
掃描技巧
#!bash
-sS/sT/sA/sW/sM TCP SYN/TCP connect()/ACK/TCP窗口掃描/TCP Maimon掃描
-sU UDP掃描
-sN/sF/sX TCP Null,FIN,and Xmas掃描
--scanflags 自定義TCP包中的flags
-sI zombie host[:probeport] Idlescan
-sY/sZ SCTP INIT/COOKIE-ECHO 掃描
-sO 使用IP?protocol?掃描確定目標機支持的協議類型
-b “FTP relay host” 使用FTP bounce scan
指定端口和掃描順序
#!bash
-p 特定的端口 -p80,443 或者 -p1-65535
-p U:PORT 掃描udp的某個端口, -p U:53
-F 快速掃描模式,比默認的掃描端口還少
-r 不隨機掃描端口,默認是隨機掃描的
--top-ports "number" 掃描開放概率最高的number個端口,出現的概率需要參考nmap-services文件,ubuntu中該文件位于/usr/share/nmap.nmap默認掃前1000個
--port-ratio "ratio" 掃描指定頻率以上的端口
服務版本識別
#!bash
-sV 開放版本探測,可以直接使用-A同時打開操作系統探測和版本探測
--version-intensity "level" 設置版本掃描強度,強度水平說明了應該使用哪些探測報文。數值越高,服務越有可能被正確識別。默認是7
--version-light 打開輕量級模式,為--version-intensity 2的別名
--version-all 嘗試所有探測,為--version-intensity 9的別名
--version-trace 顯示出詳細的版本偵測過程信息
腳本掃描
#!bash
-sC 根據端口識別的服務,調用默認腳本
--script=”Lua scripts” 調用的腳本名
--script-args=n1=v1,[n2=v2] 調用的腳本傳遞的參數
--script-args-file=filename 使用文本傳遞參數
--script-trace 顯示所有發送和接收到的數據
--script-updatedb 更新腳本的數據庫
--script-help=”Lua script” 顯示指定腳本的幫助
OS識別
#!bash
-O 啟用操作系統檢測,-A來同時啟用操作系統檢測和版本檢測
--osscan-limit 針對指定的目標進行操作系統檢測(至少需確知該主機分別有一個open和closed的端口)
--osscan-guess 推測操作系統檢測結果,當Nmap無法確定所檢測的操作系統時,會盡可能地提供最相近的匹配,Nmap默認進行這種匹配
防火墻/IDS躲避和哄騙
#!bash
-f; --mtu value 指定使用分片、指定數據包的MTU.
-D decoy1,decoy2,ME 使用誘餌隱蔽掃描
-S IP-ADDRESS 源地址欺騙
-e interface 使用指定的接口
-g/ --source-port PROTNUM 使用指定源端口??
--proxies url1,[url2],... 使用HTTP或者SOCKS4的代理?
--data-length NUM 填充隨機數據讓數據包長度達到NUM
--ip-options OPTIONS 使用指定的IP選項來發送數據包
--ttl VALUE 設置IP time-to-live域
--spoof-mac ADDR/PREFIX/VEBDOR MAC地址偽裝
--badsum 使用錯誤的checksum來發送數據包
Nmap 輸出
#!bash
-oN 將標準輸出直接寫入指定的文件
-oX 輸出xml文件
-oS 將所有的輸出都改為大寫
-oG 輸出便于通過bash或者perl處理的格式,非xml
-oA BASENAME 可將掃描結果以標準格式、XML格式和Grep格式一次性輸出
-v 提高輸出信息的詳細度
-d level 設置debug級別,最高是9
--reason 顯示端口處于帶確認狀態的原因
--open 只輸出端口狀態為open的端口
--packet-trace 顯示所有發送或者接收到的數據包
--iflist 顯示路由信息和接口,便于調試
--log-errors 把日志等級為errors/warings的日志輸出
--append-output 追加到指定的文件
--resume FILENAME 恢復已停止的掃描
--stylesheet PATH/URL 設置XSL樣式表,轉換XML輸出
--webxml 從namp.org得到XML的樣式
--no-sytlesheet 忽略XML聲明的XSL樣式表
其他nmap選項
#!bash
-6 開啟IPv6
-A OS識別,版本探測,腳本掃描和traceroute
--datedir DIRNAME 說明用戶Nmap數據文件位置
--send-eth / --send-ip 使用原以太網幀發送/在原IP層發送
--privileged 假定用戶具有全部權限
--unprovoleged 假定用戶不具有全部權限,創建原始套接字需要root權限
-V 打印版本信息
-h 輸出幫助
整個子網檢測的Netbios
#!bash
Nmap -sV -v -p 139,445 10.0.1.0/24
Starting Nmap 6.47 ( http://nmap.org ) at 2014-12-11 21:26 GMT
Nmap scan report for nas.decepticons 10.0.1.12
Host is up (0.014s latency).
PORT STATE SERVICE VERSION
139/tcp open netbios-ssn Samba smbd 3.X (workgroup: MEGATRON)
445/tcp open netbios-ssn Samba smbd 3.X (workgroup: MEGATRON)
Service detection performed. Please report any incorrect results at http://nmap.org/submit/ .
Nmap done: 256 IP addresses (1 hosts up) scanned in 28.74 seconds
Nmap 查找Netbios名稱
#!bash
nmap -sU --script nbstat.nse -p 137 10.0.1.12
Starting Nmap 6.47 ( http://nmap.org ) at 2014-12-11 21:26 GMT
Nmap scan report for nas.decepticons 10.0.1.12
Host is up (0.014s latency).
PORT STATE SERVICE VERSION
137/udp open netbios-ns
Host script results:
|_nbstat: NetBIOS name: STARSCREAM, NetBIOS user: unknown, NetBIOS MAC: unknown (unknown)?
Nmap done: 256 IP addresses (1 hosts up) scanned in 28.74 seconds
如果開啟Netbios服務,檢查是否存在漏洞
#!bash
nmap --script-args=unsafe=1 --script smb-check-vulns.nse -p 445?10.0.0.1
Nmap scan report for ie6winxp.decepticons (10.0.1.1)
Host is up (0.00026s latency).
PORT STATE SERVICE
445/tcp open microsoft-ds
Host script results:
| smb-check-vulns:
| MS08-067: VULNERABLE
| Conficker: Likely CLEAN
| regsvc DoS: NOT VULNERABLE
| SMBv2 DoS (CVE-2009-3103): NOT VULNERABLE
|_ MS07-029: NO SERVICE (the Dns Server RPC service is inactive)
Nmap done: 1 IP address (1 host up) scanned in 5.45 seconds
根據掃描結果,發現存在MS08-067漏洞
原文
http://highon.coffee/docs/nmap/
Namp官網的完整手冊
https://svn.nmap.org/nmap/docs/nmap.usage.txt
Nmap官方的中文手冊
http://nmap.org/man/zh/
國內的一篇講Nmap的,寫的挺不錯的
http://blog.csdn.net/aspirationflow/article/details/7694274
終極必殺:
man nmap