端口掃描工具 nmap 使用手冊


0x00 主機發現

-sL                         僅僅是顯示,掃描的IP數目,不會進行任何掃描
-sn                         ping掃描,即主機發現
-Pn                         不檢測主機存活
-PS/PA/PU/PY[portlist]      TCP SYN Ping/TCP ACK Ping/UDP Ping發現
-PE/PP/PM                   使用ICMPecho, timestamp and netmask請求包發現主機
-PO[prococol list]          使用IP協議包探測對方主機是否開啟
-n/-R                       不對IP進行域名反向解析/為所有的IP都進行域名的反響解析

0x01 掃描技巧

-sS/sT/sA/sW/sM             TCP SYN/TCP connect()/ACK/TCP窗口掃描/TCPMaimon掃描
-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                         使用IPprotocol掃描確定目標機支持的協議類型
-b "FTP relay host"         使用FTPbounce scan

0x02 指定端口和掃描順序

-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"        掃描指定頻率以上的端口

0x03服務版本識別

-sV                         開放版本探測,可以直接使用-A同時打開操作系統探測和版本探測
--version-intensity "level" 設置版本掃描強度,強度水平說明了應該使用哪些探測報文。
                            數值越高,服務越有可能被正確識別。默認是7
--version-light             打開輕量級模式,為--version-intensity2的別名
--version-all               嘗試所有探測,為--version-intensity9的別名
--version-trace             顯示出詳細的版本偵測過程信息

0x04 腳本掃描

-sC                         根據端口識別的服務,調用默認腳本
--script="Lua scripts"      調用的腳本名
--script-args=n1=v1,[n2=v2] 調用的腳本傳遞的參數
--script-args-file=filename 使用文本傳遞參數
--script-trace              顯示所有發送和接收到的數據
--script-updatedb           更新腳本的數據庫
--script-help="Lua script"  顯示指定腳本的幫助
nmap -sV --script=ssl-heartbleed target_ip           掃描心臟滴血漏洞
nmap -p 6379 --script redis-info target_ip           掃描redis未授權訪問漏
nmap -p 27017 --script mongodb-info target_ip        掃描mongodb未授權訪問
nmap -p 21 --script ftp-anon.nse -v target_ip        掃描ftp匿名訪問的漏洞
nmap -p 21 --script ftp-brute.nse -v target_ip       對目標IP進行ftp弱口令
nmap -p 22 --script ssh-brute.nse -v target_ip       對目標IP進行ssh口令爆破
nmap -p445 –script smb-vuln-ms17-010 target_ip/mask  對目標網段進行永恆之藍漏洞掃描

0x05 OS識別

-O                          啟用操作系統檢測,-A來同時啟用操作系統檢測和版本檢測
--osscan-limit              針對指定的目標進行操作系統檢測(至少需確知該主機分別有一個open和closed的端口)
--osscan-guess              推測操作系統檢測結果,當Nmap無法確定所檢測的操作系統時,會盡可能地提供最相近的匹配,
                            Nmap默認進行這種匹配

0x06 防火牆/IDS躲避和哄騙

-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                     設置IPtime-to-live域
--spoof-mac ADDR/PREFIX/VEBDOR  MAC地址偽裝
--badsum                        使用錯誤的checksum來發送數據包

0x07 Nmap輸出

-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樣式表

0x08 其他nmap選項

-6                                開啟IIPV6
-A                                OS識別,版本探測,腳本掃描和traceroute
--datedir DIRNAME                 說明用戶Nmap數據文件位置
--send-eth / --send-ip            使用原以太網幀發送/在原IP層發送
--privileged                      假定用戶具有全部權限
--unprovoleged                    假定用戶不具有全部權限,創建原始套接字需要root權限
-V                                打印版本信息
-h                                輸出幫助信息

0x09 nmap常用命令

nmap -sV -sT -Pn --open -v 192.168.1.1         不使用ping對ip進行服務識別 使用tcp發包 返回端口開放的結果
nmap -sT -Pn --open -v banner.nse 192.168.1.1  獲取服務器的banner信息
nmap -sP 192.168.0.0/24                        判斷哪些主機存活
nmap -sT 192.168.0.3                           開放了哪些端口
nmap -sS 192.168.0.127                         開放了哪些端口(隱蔽掃描)
nmap -sU 192.168.0.127                         開放了哪些端口(UDP)
nmap -sS -O 192.168.0.127                      操作系統識別
nmap -sT -p 80 -oG – 192.168.1.* | grep open   列出開放了指定端口的主機列表
nmap -sV -p 80 baidu.com                       列出服務器類型(列出操作系統,開發端口,服務器類型,網站腳本類型等)


-iL filename                                  從文件中讀取待檢測的目標,文件中的表示方法支持機名,ip,網段
-iR hostnum                                   隨機選取,進行掃描.如果-iR指定為0,則是無休止的掃描
–exclude host1[, host2]                       從掃描任務中需要排除的主機
nmap --exclude 192.168.1.1 192.168.1.1-2      這個只掃描192.168.1.2這個IP–exculdefile exclude_file
                                              排除文件中的IP,格式和-iL指定掃描文件的格式相同
# 批量掃描
nmap -sT -sV -O -P0 --open -n -oN result.txt -p80-89,8080-8099,8000-8009,7001-7009,9000-9099,21,443,
873,2601,2604,3128,4440,6082,6379,8888,3389,9200,11211,27017,28017,389,8443,4848,8649,995,9440,9871,
2222,2082,3311,18100,9956,1433,3306,1900,49705,50030,7778,5432,7080,5900,50070,5000,5560,10000 -iL 
ip.txt2 --open         只輸出端口開放的結果 輸出到result.txt文件

nmap -sT -sV -p80-89,8080-8099,8000-8009,7001-7009,9000-9099,21,443,873,2601,2604,3128,4440,6082,6379,
8888,3389,9200,11211,27017,28017,389,8443,4848,8649,995,9440,9871,2222,2082,3311,18100,9956,1433,3306,
1900,49705,50030,7778,5432,7080,5900,50070,5000,5560,10000 --open --max-hostgroup10 --max-parallelism 
10 --max-rtt-timeout 1000ms --host-timeout 800s --max-scan-delay 2000ms -iL ~/Desktop/ip.txt 
-oN ~/Desktop/result/result.txt

0x10 nmap api

nmap支持很多語言的擴展,本文簡單介紹下python中如何使用nmap。

  • python-nmap

    • 安裝:pipinstall python-nmap

    • 作用:利用python調用nmap接口,實現端口掃描。

    • 使用:

>>> import nmap2
>>> nm = nmap.PortScanner()
>>> nm.scan('127.0.0.1', '22-443')
>>> nm.command_line()


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM