目錄
- 簡介
- 命令引數
- 目標指定
- 檔案讀入
- 隨機
- 排除
- 主機發現
- 掃描技術
- 埠指定和掃描順序
- 服務/版本發現
- 腳本掃描
- 作業系統版本
- 時間與性能
- 防火墻/入侵防御 繞過
- 輸出
- 雜項
- 引數指導
- 參考
簡介
Nmap是一個免費的開源用于網路發現和安全審計的實用程式,許多系統和網路管理員還發現它對于網路庫存、管理服務升級計劃以及監控主機或服務正常運行時間等任務很有用,Nmap 以新穎的方式使用原始 IP 資料包來確定網路上可用的主機、這些主機提供的服務(應用程式名稱和版本)、它們運行的??作業系統(和作業系統版本)、資料包過濾器/防火墻的型別正在使用中,以及其他數十種特性,它旨在快速掃描大型網路,但對單個主機也能正常作業,Nmap 運行在所有主要的計算機作業系統上,官方二進制包適用于 Linux、Windows 和 Mac OS X, 除了經典的命令列 Nmap 可執行檔案,Zenmap),一個靈活的資料傳輸、重定向和除錯工具(Ncat),一個用于比較掃描結果的實用程式(Ndiff),以及一個資料包生成和回應分析工具(Nping),
靈活:支持數十種高級技術,用于繪制充滿 IP 過濾器、防火墻、路由器和其他障礙的網路,這包括許多埠掃描機制(TCP 和 UDP)、作業系統檢測、版本檢測、ping 掃描等,
功能強大:Nmap 已被用于掃描由數十萬臺機器組成的龐大網路,
便攜:支持大多數作業系統,包括 Linux、 Microsoft Windows、 FreeBSD、 OpenBSD、 Solaris、 IRIX、 Mac OS X、 HP-UX、 NetBSD、 Sun OS、 Amiga等,
簡單:雖然 Nmap 為高級用戶提供了豐富的高級功能,但您可以像“nmap -v -A targethost ”一樣簡單地開始 ,提供傳統命令列和圖形 (GUI) 版本以滿足您的喜好,那些不想從源代碼編譯 Nmap 的人可以使用二進制檔案,
免費:Nmap 專案的主要目標是幫助使 Internet 更加安全,并為管理員/審計員/黑客提供用于探索其網路的高級工具,Nmap 可免費下載,還附帶完整的源代碼,您可以根據許可條款修改和重新分發,
有據可查:我們在全面和最新的手冊頁、白皮書、教程甚至整本書中投入了大量精力!在這里可以找到多種語言版本,
命令引數
Nmap 7.80 ( https://nmap.org )
Usage: nmap [Scan Type(s)] [Options] {target specification}
TARGET SPECIFICATION:
Can pass hostnames, IP addresses, networks, etc.
Ex: scanme.nmap.org, microsoft.com/24, 192.168.0.1; 10.0.0-255.1-254
-iL : Input from list of hosts/networks
-iR : Choose random targets
–exclude <host1[,host2][,host3],…>: Exclude hosts/networks
–excludefile <exclude_file>: Exclude list from file
HOST DISCOVERY:
-sL: List Scan - simply list targets to scan
-sn: Ping Scan - disable port scan
-Pn: Treat all hosts as online – skip host discovery
-PS/PA/PU/PY[portlist]: TCP SYN/ACK, UDP or SCTP discovery to given ports
-PE/PP/PM: ICMP echo, timestamp, and netmask request discovery probes
-PO[protocol list]: IP Protocol Ping
-n/-R: Never do DNS resolution/Always resolve [default: sometimes]
–dns-servers <serv1[,serv2],…>: Specify custom DNS servers
–system-dns: Use OS’s DNS resolver
–traceroute: Trace hop path to each host
SCAN TECHNIQUES:
-sS/sT/sA/sW/sM: TCP SYN/Connect()/ACK/Window/Maimon scans
-sU: UDP Scan
-sN/sF/sX: TCP Null, FIN, and Xmas scans
–scanflags : Customize TCP scan flags
-sI <zombie host[:probeport]>: Idle scan
-sY/sZ: SCTP INIT/COOKIE-ECHO scans
-sO: IP protocol scan
-b : FTP bounce scan
PORT SPECIFICATION AND SCAN ORDER:
-p : Only scan specified ports
Ex: -p22; -p1-65535; -p U:53,111,137,T:21-25,80,139,8080,S:9
–exclude-ports : Exclude the specified ports from scanning
-F: Fast mode - Scan fewer ports than the default scan
-r: Scan ports consecutively - don’t randomize
–top-ports : Scan most common ports
–port-ratio : Scan ports more common than
SERVICE/VERSION DETECTION:
-sV: Probe open ports to determine service/version info
–version-intensity : Set from 0 (light) to 9 (try all probes)
–version-light: Limit to most likely probes (intensity 2)
–version-all: Try every single probe (intensity 9)
–version-trace: Show detailed version scan activity (for debugging)
SCRIPT SCAN:
-sC: equivalent to --script=default
–script=: is a comma separated list of
directories, script-files or script-categories
–script-args=<n1=v1,[n2=v2,…]>: provide arguments to scripts
–script-args-file=filename: provide NSE script args in a file
–script-trace: Show all data sent and received
–script-updatedb: Update the script database.
–script-help=: Show help about scripts.
OS DETECTION:
-O: Enable OS detection
–osscan-limit: Limit OS detection to promising targets
–osscan-guess: Guess OS more aggressively
TIMING AND PERFORMANCE:
Options which take
接下來進行展示
攻擊機:kali(Nmap 7.80)
靶機:owaspbwa、metasploitable_ubuntu
搭建程序:《MetaSploit滲透測驗魔鬼訓練營》之環境搭建
目標指定
CIDR風格 192.168.1.0/24
域名或ip www.baidu.com,www.zhihu.com,192.168.31.128
分割線 10.22-25.43.32
檔案讀入
-iL : 從檔案中讀入帶掃描主機或網路串列

隨機
-iR : 隨機選擇num個作為目標
個人認為沒必要,需要隨機時在呼叫nmap的外層軟體隨機即可,主要是有些防御手段發現某ip挨個訪問網路內的主機時,可能封ip,
排除
–exclude <host1[,host2][,host3],…>: 排除主機/網路
–excludefile <exclude_file>:從檔案中排除

從檔案排除的留給讀者實踐吧,
主機發現
-sL: 簡單串列掃描
-sn: 不進行埠掃描,僅發現主機
-Pn: 將所有主機視為在線,跳過主機發現
-PS/PA/PU/PY[portlist]: 使用TCP SYN/ACK, UDP or SCTP對所給埠進行主機發現
-PE/PP/PM:ICMP回顯、時間戳和網路掩碼請求發現探測
-PO[protocol list]: IP 協議 Ping
-n/-R: 從不進行DNS決議/始終決議[默認值:有時]
–dns-servers <serv1[,serv2],…>:指定自定義DNS服務器
–system-dns: 使用作業系統的DNS決議程式
–traceroute: 跟蹤每個主機的躍點路徑
-sn之前叫做-sP,目前版本也可以使用,建議用最新的,
–traceroute發現路徑

顯示有一跳
掃描技術
-sS/sT/sA/sW/sM: TCP SYN/Connect()/ACK/Window/Maimon 掃描
-sU: UDP 掃描
-sN/sF/sX: TCP Null, FIN, and Xmas 掃描
–scanflags : 自定義TCP掃描標志
-sI <zombie host[:probeport]>: Idle 掃描
-sY/sZ: SCTP INIT/COOKIE-ECHO 掃描
-sO: IP 協議掃描
-b : FTP反彈掃描
使用-sS進行半連接掃描
使用wireshark抓包,可以看到發送 的TCP資料包,SYN是最快的,半連接,
埠指定和掃描順序
-p : 僅掃描指定的具體埠 例如: -p22; -p1-65535; -p U:53,111,137,T:21-25,80,139,8080,S:9
–exclude-ports : 排除這些埠
-F: 快速模式,比默認的埠掃描的更少
-r: 連續掃描埠,不要隨機化
–top-ports : 掃描個最常見的埠
–port-ratio : 掃描比更常見的埠
使用–top-ports來掃描常用top5埠
埠6大狀態
open(開放的)
應用程式正在該埠接收TCP 連接或者UDP報文,發現這一點常常是埠掃描 的主要目標,安全意識強的人們知道每個開放的埠 都是攻擊的入口,攻擊者或者入侵測驗者想要發現開放的埠, 而管理員則試圖關閉它們或者用防火墻保護它們以免妨礙了合法用戶, 非安全掃描可能對開放的埠也感興趣,因為它們顯示了網路上那些服務可供使用,
closed(關閉的)
關閉的埠對于Nmap也是可訪問的(它接受Nmap的探測報文并作出回應), 但沒有應用程式在其上監聽, 它們可以顯示該IP地址上(主機發現,或者ping掃描)的主機正在運行up 也對部分作業系統探測有所幫助, 因為關閉的關口是可訪問的,也許過會兒值得再掃描一下,可能一些又開放了, 系統管理員可能會考慮用防火墻封鎖這樣的埠, 那樣他們就會被顯示為被過濾的狀態,下面討論,
filtered(被過濾的)
由于包過濾阻止探測報文到達埠, Nmap無法確定該埠是否開放,過濾可能來自專業的防火墻設備,路由器規則 或者主機上的軟體防火墻,這樣的埠讓攻擊者感覺很挫折,因為它們幾乎不提供 任何資訊,有時候它們回應ICMP錯誤訊息如型別3代碼13 (無法到達目標: 通信被管理員禁止),但更普遍的是過濾器只是丟棄探測幀, 不做任何回應, 這迫使Nmap重試若干次以訪萬一探測包是由于網路阻塞丟棄的, 這使得掃描速度明顯變慢,
unfiltered(未被過濾的)
未被過濾狀態意味著埠可訪問,但Nmap不能確定它是開放還是關閉, 只有用于映射防火墻規則集的ACK掃描才會把埠分類到這種狀態, 用其它型別的掃描如視窗掃描,SYN掃描,或者FIN掃描來掃描未被過濾的埠可以幫助確定 埠是否開放,
open|filtered(開放或者被過濾的)
當無法確定埠是開放還是被過濾的,Nmap就把該埠劃分成 這種狀態,開放的埠不回應就是一個例子,沒有回應也可能意味著報文過濾器丟棄 了探測報文或者它引發的任何回應,因此Nmap無法確定該埠是開放的還是被過濾的, UDP,IP協議, FIN,Null,和Xmas掃描可能把埠歸入此類,
closed|filtered(關倍訓者被過濾的)
該狀態用于Nmap不能確定埠是關閉的還是被過濾的, 它只可能出現在IPID Idle掃描中,
服務/版本發現
-sV: 探測打開的埠,確定服務/版本資訊
–version-intensity :從到9(嘗試所有探測)
–version-light:限制為僅對最可能的進行探測(強度2)
–version-all: 嘗試所有探測(強度9)
–version-trace: 顯示詳細的版本掃描活動(用于除錯)
使用-sV來查看埠對應服務及版本
腳本掃描
-sC: 相當于–script=default
–script=: 是以逗號分隔的目錄、腳本檔案或腳本類別串列
–script-args=<n1=v1,[n2=v2,…]>: 為腳本提供引數
–script-args-file=filename: 在檔案中提供NSE腳本引數
–script-trace: 在檔案中提供NSE腳本引數顯示所有發送和接收的資料
–script-updatedb: 更新腳本資料庫
–script-help=: 展示腳本的幫助
查看腳本串列

查看腳本內容

查看腳本幫助并使用

作業系統版本
-O: 作業系統探測
–osscan-limit: 將作業系統檢測限制在有希望的目標上
–osscan-guess: 更積極地猜測作業系統
使用-O探測作業系統
時間與性能
-T<0-5>: 設定計時模板(越高速度越快)
–min-hostgroup/max-hostgroup : 并行主機掃描組大小
–min-parallelism/max-parallelism : 并行化探測
–min-rtt-timeout/max-rtt-timeout/initial-rtt-timeout
–max-retries :限制埠掃描探測重新傳輸的次數為,
–host-timeout
–scan-delay/–max-scan-delay
–min-rate : 發送資料包的速度不低于每秒個
–max-rate : 發送資料包的速度不超過每秒個
模板名稱有paranoid (0)、sneaky (1)、polite (2)、normal(3)、 aggressive (4)和insane (5),前兩種模式用于IDS躲避,Polite模式降低了掃描 速度以使用更少的帶寬和目標主機資源,默認模式為Normal,因此-T3 實際上是未做任何優化,Aggressive模式假設用戶具有合適及可靠的網路從而加速掃描,Insane模式假設用戶具有特別快的網路或者愿意為獲得速度而犧牲準確性,
這個一般設定模板為4,很少一個個去設定,

防火墻/入侵防御 繞過
-f; --mtu : 片段資料包(可選擇w/給定MTU)
-D <decoy1,decoy2[,ME],…>: 用誘餌掩蓋掃描
-S <IP_Address>: 欺騙源地址
-e : 使用指定的介面
-g/–source-port : 使用給定的埠號
–proxies <url1,[url2],…>: 通過HTTP/SOCKS4代理中繼連接
–data : 將自定義有效負載附加到發送的資料包
–data-string : 向發送的資料包附加自定義ASCII字串
–data-length : 向發送的資料包附加隨機資料
–ip-options :使用指定的ip選項發送資料包
–ttl : 設定IP生存時間欄位
–spoof-mac <mac address/prefix/vendor name>: 偽造你的MAC地址
–badsum: 使用偽TCP/UDP/SCTP校驗和發送資料包
可以使用-S --spoof-mac來偽造MAC地址,當然, 最重要的是去除Nmap的流量特征,見參考,
沒有欺騙前的資料包
資料包的具體內容

使用-S --spoof-mac等進行欺騙

修改后,打開具體的資料包,可以看到ip和mac地址都被修改了,

輸出
-oN/-oX/-oS/-oG : 分別以普通文本檔案、XML、可掃描和可Grep格式輸出到給定檔案路徑,
-oA :同時以三種主要格式輸出
-v: 增加詳細程度(使用-vv或更多以獲得更大效果)
-d: 提高除錯級別(使用-dd或更多以獲得更大的效果)
–reason: 顯示埠處于特定狀態的原因
–open: 僅顯示打開(或可能打開)的埠
–packet-trace:顯示發送和接收的所有資料包
–iflist: 列印主機介面和路由(用于除錯)
–append-output: 附加到指定的輸出檔案,而不是洗掉指定的輸出檔案
–resume : 恢復中止的掃描
–stylesheet <path/URL>: 將XML輸出轉換為HTML的XSL樣式表
–webxml: 請參考Nmap.Org中的樣式表以獲取更具可移植性的XML
–no-stylesheet: 防止XSL樣式表與XML輸出關聯
一般情況下,我們就是輸出到了控制臺,也可以輸出到檔案進行保存,方便之后的分析,
這里使用xml格式作為演示,下方參考的平衡準確率和速率那篇文章用的-oG,方便使用grep命令等進行檔案操作,當然使用xml保存也可以用一下xml決議包對檔案進行處理, 
雜項
-6: 啟用IPv6掃描
-A: 啟用作業系統檢測、版本檢測、腳本掃描和跟蹤路由
–datadir : 指定自定義Nmap資料檔案位置
–send-eth/–send-ip: 使用原始以太網幀或IP資料包發送
–privileged:假設用戶具有完全特權
–unprivileged: 假設用戶缺少原始套接字權限
-V: 列印版本號
-h:列印此幫助摘要頁面
展示-A進行埠、作業系統及一些腳本等的掃描,當目標比較少,自己又懶得看腳本幫助時可以用一下,
引數指導
- 去除Nmap流量特征,重新編譯
- 使用主機發現一節的-sn等進行主機發現
- 使用埠選項一節的-p添加埠
- 使用掃描技術一節的-sS、-sT、-sU等添加技術(根據掃描的目標和埠選擇)
- 使用版本發現一節的-sV進行版本的詳細掃描
- 使用作業系統探測一節的-O進行作業系統掃描
- 使用時間與性能一節的-T4進行快速掃描
- 使用腳本一節的nse檔案名,或自己腳本來獲取更多內容
- 使用防火墻繞過一節的-S -e --spoof-mac進行欺騙
- 使用輸出一節的-oN、-oX等進行輸出
一個比較好的針對owaspbwa(網站)的nmap掃描引數為
nmap -p 80 -sS -sV -O -T4 -S 192.168.31.54 -e eth0 --spoof-mac cisco --script=http-title 192.168.31.129 -oX target.xml
參考
在全網埠掃描中尋找速率和準確率的平衡點
Nmap參考指南
Nmap流量特征修改
更多內容查看:網路安全-自學筆記
喜歡本文的請動動小手點個贊,收藏一下,有問題請下方評論,轉載請注明出處,并附有原文鏈接,謝謝!如有侵權,請及時聯系,如果您感覺有所識訓,自愿打賞,可選擇支付寶18833895206(小于),您的支持是我不斷更新的動力,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/297763.html
標籤:其他
上一篇:vulnhub DC9 靶場練習
