Nmap速查手冊

wyzsk發表於2020-08-19
作者: 我是壯丁 · 2014/12/17 11:24

From:http://highon.coffee/docs/nmap/

0x00:說明


只是一個快速查詢手冊,理論的東西都沒有補充,歡迎大家積極在評論區補充自己常用的引數,O(∩_∩)O

0x01:nmap功能介紹


1.主機存活檢測
2.埠探測
3.服務識別
4.作業系統識別
5.硬體地址檢測
6.服務版本識別
7.漏洞掃描,使用nmap自帶指令碼

0x02:簡單示例


使用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

Nmap輸出格式

掃描的結果輸出到螢幕,同時會儲存一份到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 

Nmap掃描Netbios

在子網中發現開放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 -

0x03:Nmap引數詳解


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                      輸出幫助

0x04:例子


整個子網檢測的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漏洞

0x05參考


原文

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

本文章來源於烏雲知識庫,此映象為了方便大家學習研究,文章版權歸烏雲知識庫!

相關文章