网络安全(一):信息收集之玩转nmap(理论篇)
🚀 優質資源分享 🚀
| 🧡 Python實戰微信訂餐小程序 🧡 | 進階級 | 本課程是python flask+微信小程序的完美結合,從項目搭建到騰訊云部署上線,打造一個全棧訂餐系統。 |
| 💛Python量化交易實戰💛 | 入門級 | 手把手帶你打造一個易擴展、更安全、效率更高的量化交易系統 |
更新時間
2022年09月06日16:20:10
- 完成nmap介紹,目標選擇,主機發現部分
2022年10月28日21:19:20
- 完成最基本的內容,端口掃描,版本和系統探測,安全其他等
- 打算的更新計劃:更多案例和圖片,導出xml文件轉為Excel分析(周末先休息一下吧)
nmap
nmap(Network Mapper)是免費、開源的網絡發現和安全審計工具,通常我們用于收集網絡中的比如主機和端口等信息,從而為下一步的攻擊提供突破口,制定攻擊的計劃。也可為網絡管理員使用,從而針對性修復可能暴露的安全漏洞。
具體的功能介紹可以登錄官網https://nmap.org,來獲取軟件包和官方教程。
- 當我們下載好nmap后在命令行中會多出這些命令:
- nmap,集成了:
- 主機發現(Host Discovery)
- 端口掃描(Port Scanning)
- 版本偵測(Version Detection)
- 操作系統偵測(Operating System Detection)
- zenmap,zenmap為nmap的圖像化版本。
- ncat,可進行靈活的數據傳輸,重定向。
- ndiff,對比掃描結果的工具。
- nping,包生成和響應工具。
圖1.Windows查看nmap提供的可執行文件
nmap命令
nmap發現的原理無非就是,發送數據包到目標主機,依據響應報文來識別已經開放的端口等信息等,屬于主動攻擊。
- nmap的命令基本上可以分為有**“三要素”,其中掃描的目標是必選的**。掃描類型默認使用-sT。
-
nmap?[?<掃描類型>?…] [?<選項>?] {?<掃描目標說明>?}
-
- 可以使用-h參數或者無參數,以輸出幫助信息。
- 一下介紹的主機發現、端口掃描的方式都可以排列組合來使用。
下面的篇幅較長,如果是忘記了命令,可以只看這部分即可,我在這里翻譯了nmap -h原文,并做了小總結。時間寶貴,頭發也寶貴呢。
Nmap 7.93 (https://nmap.org)用法:nmap [掃描類型] [選項] {要掃描的目標}**掃描的目標:**可以是 主機名、IP 地址、網絡等。#(可以使用逗號,指定不連續的ip段 減號-指定連續ip段 斜杠/指定掩碼 星號*代表全部)例如:scanme.nmap.org、microsoft.com/24、192.168.0.1; 10.0.0-255.1-254-iL : 從文件中讀取要掃描的主機列表-iR <主機數量>: 選擇隨機目標 #0為無限生成--exclude :要排除的 主機/網絡--excludefile : 從文件中選擇要排除的主機列表**主機發現:** -sL: 列表掃描 - 打印主機的列表(對域名進行掃描時,可以得到IP列表 )-sn: Ping 掃描,同時禁用端口掃描,用來檢查主機存活狀態。-Pn: 禁用 Ping 掃描,默認所有主機都是存活狀態-PS/PA/PU/PY[端口列表]:對指定的端口通過 TCP SYN/ACK、UDP 或 SCTP 掃描來發現主機-PE/PP/PM: 對指定的端口通過 ICMP、時間戳和網絡掩碼請求發現和探測主機-PO[協議列表]: IP 協議 Ping-n/-R: 不進行DNS解析/ 進行DNS解析 [默認]--dns-servers : 指定自定義 DNS 服務器--system-dns: 使用操作系統的 DNS 解析器--traceroute: 跟蹤每個主機的躍點路徑**掃描技術:** -sS/sT/sA/sW/sM: TCP SYN / Connect() / ACK / Window / Maimon 掃描-sU: UDP 掃描-sN/sF/sX: TCP Null、FIN 和 Xmas 掃描--scanflags : 自定義 TCP 掃描標志-sI <僵尸主機[:僵尸端口]>: 空閑掃描-sY/sZ: SCTP INIT/COOKIE-ECHO 掃描-sO: IP 協議掃描-b : FTP 反彈掃描**指定掃描端口、掃描順序:** -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 : 掃描比更常見的端口**服務****/版本檢測:** -sV: 探測開放端口以確定服務/版本信息--version-intensity :設置從 0(輕)到 9(嘗試所有探針)--version-light: 限制最可能的探測(強度 2)--version-all: 嘗試每一個探測(強度 9)--version-trace: 顯示詳細的版本掃描活動(用于調試)**腳本掃描:** -sC: 相當于--script=default--script=: 使用腳本進行掃描,多個腳本時用逗號分隔,支持通配符。--script-args=: 為腳本提供參數--script-args-file=filename: 從文件中提供 NSE 腳本參數--script-trace: 顯示所有發送和接收的數據--script-updatedb: 更新腳本數據庫。--script-help=: 顯示有關腳本的幫助。**操作系統檢測:** -O: 啟用操作系統檢測--osscan-limit: 將操作系統檢測限制為有希望的目標--osscan-guess: 更積極地猜測操作系統**時間和性能:**默認是秒,也可以 “ms”(毫秒),'s'(秒)、'm'(分鐘)或 'h'(小時)到值(例如 30m)。-T<0-5>: 設置時序模板(越高掃描速度越快,但是準確性降低)--min-hostgroup/max-hostgroup : 并行主機掃描組大小--min-parallelism/max-parallelism :探針并行化--min-rtt-timeout/max-rtt-timeout/initial-rtt-timeout <時間>: 指定探測往返時間。--max-retries : 限制端口掃描探測重傳的次數。--host-timeout <time>: 多長時間后放棄目標--scan-delay/--max-scan-delay <time>:調整探針之間的延遲--min-rate : 每秒發送數據包不低于 --max-rate : 每秒發送數據包的速度不超過 **防火墻/IDS 逃避和欺騙:** -f; --mtu : 分片數據包(可選地 w/給定的 MTU)-D <誘餌IP1,誘餌IP2[,本機IP],...>:使用誘餌隱藏掃描。即發送參雜著假ip的數據包檢測-S : 欺騙源地址。就是偽造源主機IP地址。-e <網絡接口>: 指定從哪個網卡發送和接收數據包。-g/--source-port : 使用給定的端口號。針對防火墻只允許的源端口--proxies : 通過 HTTP/SOCKS4 代理中繼連接--data string>: 將自定義有效負載附加到發送的數據包--data-string <string>: 將自定義 ASCII 字符串附加到發送的數據包中--data-length : 將隨機數據附加到發送的數據包中。改變發生數據包的默認的長度,防止被識別出來。--ip-options : 發送帶有指定ip選項的數據包--ttl : 設置 IP 生存時間字段--spoof-mac : 欺騙你的MAC地址--badsum: 發送帶有虛假 TCP/UDP/SCTP 校驗和的數據包**輸出:** -oN/-oX/-oS/-oG <file>: 掃描結果寫入到文件。正常,XML,s|<rIpt kIddi3,Grepable 格式,-oA <basename>: 一次輸出三種主要格式-v: 增加詳細程度(使用 -vv 或更多以獲得更好的效果)-d: 增加調試級別(使用 -dd 或更多以獲得更好的效果)--reason: 顯示端口處于特定狀態的原因--open: 僅顯示打開(或可能打開)的端口--packet-trace: 顯示所有發送和接收的數據包--iflist: 打印主機接口和路由(用于調試)--append-output: 附加到而不是破壞指定的輸出文件--resume <文件名>: 恢復中止的掃描--noninteractive: 通過鍵盤禁用運行時交互--stylesheet :將 XML 輸出轉換為 HTML 的 XSL 樣式表--webxml: 參考 Nmap.Org 的樣式表以獲得更便攜的 XML--no-stylesheet: 防止 XSL 樣式表與 XML 輸出相關聯**雜項:** -6: 啟用 IPv6 掃描-A: 也叫全面掃描。操作系統檢測、版本檢測、腳本掃描和跟蹤路由。--datadir <dirname>: 指定自定義 Nmap 數據文件位置--send-eth/--send-ip:使用原始以太網幀或 IP 數據包發送--privileged: 假設用戶擁有完全特權--unprivileged: 假設用戶缺乏原始套接字權限-V:打印版本號 -h:打印此幫助摘要頁。有關更多選項和示例,請參見手冊頁 (https://nmap.org/book/man.html)掃描目標
**/,-***符號
nmap命令中掃描的目標是不可省略的參數,可以使用**/,-***符號來確認目標范圍。當然這三種都可以混合使用。
# 直接單臺主機ip,當然直接使用域名也可以,就是不怎么靈活而已 nmap 192.168.1.1# 直接使用**/****掩碼**,掃描網段內全部ip nmap 192.168.1.**1****/24**# 使用**,指定對象**,一般針對于不連續的網段 nmap 192.168.2.**1****,10,172,192,254**# 使用**-****選擇**連續的范圍 nmap 192.168.3.**1****-255** # 使用*選擇本段全部,和0-255一樣nmap 192.168.4.***** # ,/-*四者可以任意結合起來使用 nmap 192.168.**1,2,****3**.***** nmap 192.168.**1-****192,240**.**1****/24**–exclude排除host
# 比如你指定了大范圍內的ip,但是某些ip你又想排除,后面可以無限寫 nmap 192.168.1.1/24 **--exclude** 192.168.1.1 192.168.1.100-iL從文件中導入和–excludefile排除
有時候從dhcp服務器中導出了在線的ip,可以使用文件來批量的選擇掃描的目標,比如某公司禁止公司內部電腦開啟web服務等,使用文件導入的方法,可以跳過離線主機進行的掃描。
- -iL??<目標ip的文件路徑>
- --excludefile <排除ip的文件路徑>
文件格式中ip之間可以使用換行(\n),同時也支持,/-語法。
-iR隨機掃描
- -iR <隨機生成ip數量>
- -iR 0? # 0代表無限次
以下是我使用nmap -iR 2后的抓包,可以看到ip是隨機的,默認的
圖2.默認掃描發送的報文
掃描類型可以省略,缺省時使用-sT參數,即TCP連接掃描,缺省情況下發送三個報文
- ICMP? Echo Request
- TCP SYN 80和443
端口模式
nmap將端口分成六個狀態:
- open(開放)
- 有回顯
- closed(關閉)
- 無回顯,可能是關閉了,也可能是防火墻設置為drop(丟棄而不做回應)。
- filtered(被過濾)
- 在掃描者和被掃描著之間,此端口可能在防火墻、設備上的服務器、交換機路由器acl等過濾了。返回拒絕訪問。
- unfiltered(未被過濾)
- 可以訪問端口,但是無法確認端口是否開放,一般情況只在TCP ACK掃描中出現。
- open|filtered(開放或者被過濾)
- 當無法確定端口是開放還是被過濾的,可能是開放的端口不響應也可能返回目標端口報文在中途被防火墻、acl過濾了或者網絡丟包了
- closed|filtered(關閉或者被過濾)
- 和上面open|filtered類似,不知道是關閉還是被過濾了。
主機發現
針對于不同的設備和網絡環境,不同的掃描方式會有著截然不同的效果。
- 大體上分為這幾種:
- ICMP發現主機
- sP,發送ICMP echo-Request報文
- TCP端口連接發現主機
- PS,發送SYN握手包
- PA,發送ACK確認包
- UDP端口連接發現主機
- PU
- DNS反向解析
- sL通過向DNS服務器反向解析(當然不要加上-n)
- ICMP發現主機
-sL(列表掃描)
其實這個參數不會對目標進行掃描操作,但因為nmap默認情況下是會對本機設置的所有DNS服務器反向解析其IP,即獲取hostname,所以使用起來可以起到獲取目標IP域名的效果。
圖3.sL掃描會向本機DNS依據IP反解析hostname
我的本機默認的DNS是192.168.24.8和223.5.5.5。話說對公網的DNS服務器反向解析內網的IP的hostname,是不是有點太搞笑了。
- -dns-servers 指定DNS服務器
- -n 不解析DNS,那就真的只是列出IP地址而已了
- -R 強制解析DNS
-sP(Ping掃描)
只使用Ping的方式判斷主機存活。就和使用ping命令判斷主機在線一樣,如果有icmp回顯那么nmap就認為其是存活的。
- 只發送icmp? echo-request
- 有icmp?echo-reply(icmp回顯)就在線
圖4.sP方式掃描
┌──(kali?kali)-[~] └─$ **nmap** **-sP 192.168.24.1-100** Starting Nmap 7.93 ( https://nmap.org ) at 2022-10-26 23:14 EDT Nmap scan report for 192.168.24.1 Host is up (0.0034s latency). Nmap scan report for 192.168.24.4 Host is up (0.0021s latency). Nmap scan report for 192.168.24.6 Host is up (0.0026s latency). Nmap scan report for 192.168.24.9 Host is up (0.0027s latency). Nmap scan report for 192.168.24.10 Host is up (0.0033s latency). Nmap scan report for 192.168.24.15 Host is up (0.0025s latency). ...省略-P0 (無ping)、-Pn
如果對方關閉了icmp回顯的功能,那么nmap會判斷本主機不在線,同時后續的端口掃描等也不會進行,會給掃描結果帶來干擾。
Windows下開關回顯:
圖5.Windows系統可在防火墻規則開關icmp回顯
Linux關閉回顯:
#臨時關閉 echo 0 >/proc/sys/net/ipv4/icmp\_echo\_ignore\_all#永久 echo net.ipv4.icmp\_echo\_ignore\_all=0 >> /etc/sysctl.conf sysctl -p圖6.ping測試下的icmp開關效果
所以為了排除干擾,可以加上-P0參數,這樣后續的端口掃描等操作也不會被干擾。請注意,P0雖然可以更徹底的掃描,但是代價是如果該地址本就真的不存在設備或者設備不在線,那么將花費大量的時間做無用功。
Windows主機上開啟smb文件共享,確認開啟445端口。并且是關閉的icmp回顯。
圖7.使用netstat查看端口監聽情況
對于關閉icmp回顯的設備,加不加-P0參數對掃描的結果有很大的影響。
圖8.使用nmap 添加和不添加-P0的測試
-PS[portlist] (TCP SYN Ping)
向目標主機的常用端口發送標志SYN=1的TCP握手報文,默認-PS不加參數時候會向常用的TCP端口發送SYN報文,并不需要建立TCP連接,只要有回應那么就說明主機在線的。在判斷主機存活時候隨便還探測了開放的TCP端口。
- 這個常用的TCP端口官方說默認的目標端口是80,但是實際上抓包發現其實都有很多,因為默認情況下自帶了對TCP1660個常用端口的掃描。
圖9.PS抓取報文的效果
#PS不帶參數 nmap **-PS** 192.168.5.1/24#如果需要添加指定端口,比如你發現目標喜歡使用65522作為ssh端口,或者65000到65535這些都有可能,可以添加到掃描列表中,默認情況下預設的TCP端口也依舊會掃描nmap **-PS65522,65000-65535** 192.168.5.1/24-PA[portlist] (TCP ACK Ping)
-PA和PS其實是類似的,向目標主機的常用端口發送TCP報文,只不過這次是ACK=1的TCP確認報文。主要是用于通過一些有防火墻防火墻,因為防火墻會依據SYN報文來識別TCP連接,比較容易暴露自己。
一般情況ACK和SYN一起發送效果比較好。
nmap -PS -PA 192.168.5.1/24-PU[portlist] (UDP Ping)
前面-PS和PA都是基于TCP掃描,PU使則是使用UDP掃描,如果網絡中TCP的SYN和ACK都被防火墻隔離了,那就使用UDP。
nmap -PU 192.168.5.1/24-PR (ARP Ping)
TCP和UDP這些都是基于IP掃描,如果只需要掃描局域網內(同網段,不跨越網關),可以使用ARP掃描,往往都不容易被察覺也比網絡層掃描更可靠,當廣播詢問IP的對應MAC地址時候,當有回應那么就認為主機在線。
nmap -PR 192.168.5.1/24-n (不用域名解析)
- nmap會對目標的IP地址進行反向域名解析。注意如果和-sL一起使用那就真的是只列出IP地址。
-R (為所有目標解析域名)
- 強制nmap對目標IP地址進行反向域名解析。 一般只有當發現機器正在運行時才進行這項操作。
端口掃描
-p 指定目標端口
如果使用-p自定義范圍。
- -p和主機發現類似的用法,可以使用**,-**來選擇范圍。
- 也可以使用U:和T:來選擇UDP端口、TCP端口范圍。
-F和–top-ports快速掃描
默認是使用常見的1000個端口作為目標,如果覺得不夠快也可以使用-F將使用最常見的100個端口作為目標。使用–top-ports也可以規定前幾的端口為目標,-F相當于–top-ports 100的情況。
# 使用-F掃描最常用的100端口 nmap -F 192.168.5.1# 使用--top-ports 自定義掃描最長用的端口,比如最常用的500個端口 nmap --top-ports 500 192.168.5.1-r順序端口掃描
一個小參數,設置了可以按順序掃描端口,默認情況是先掃常用端口再掃用戶自定義的端口,其實意義不是那么大。
-sS (TCP SYN掃描)
此模式需要管理員(administrator或root)權限。
sS是最常用的掃描方式,不會建立完整的TCP連接,只發送SYN連接請求,所以速度很快,而且通常不會被掃描目標記錄。
- 發送SYN,返回SYN/ACK->open開放
- 發送SYN,返回RST->closed關閉
- 發送SYN,等待超時,發送SYN,等待超時->filtered被過濾
- 發送SYN,返回ICMP不可達->filtered被過濾
-sT (TCP connect()掃描)
sT需要建立完整的TCP連接,即三次握手。所以判斷端口開放更可靠,但是很有可能會被記錄下連接的日志。
默認情況下不加參數都是使用此方法作為端口掃描。
nmap -sT 192.168.5.1-sU (UDP掃描)
此模式需要管理員(administrator或root)權限。
對UDP端口進行掃描,使用-sT、-sS都不掃描UDP端口,所以如果有需要掃描UDP那就務必加上此。當然也可以結合TCP掃描來使用。
其原理為想目標端口發送UDP探測包,等待相應,返回ICMP端口不可達(ICMP port unreachable)為端口關閉,等待超時則為端口被過濾
sudo nmap -sS -sU -p U:53,67,68,161,162,T:1-65535 192.168.5.1/24-sN; -sF; -sX ;-sM (TCP Null掃描,TCP FIN掃描,Xmas掃描,TCP Maimon掃描)
此模式需要管理員(administrator或root)權限。
nmap發現TCP端口開放與否對不同標志位上TCP報文有不同回應,回復RST報文則認為開放,超時則認為關閉或過濾。因為對于服務器來說這些TCP報文都是錯誤的,不保證所有端口的都可以正確的相應,但是這比SYN和整個TCP連接都要來得更隱蔽。(不過我都沒有用過啊)
- -sN,TCP Null掃描,發送標志位都為0的TCP包,用于測試防火墻。
- -sF,TCP FIN掃描,發送標志位FIN=1(關閉連接)的TCP包。端口掃描效果不是很好,但是很隱蔽。
- -sX,Xmas掃描,這個更過分了,直接把FIN,PSH和URG標志位都置1了。
- -sM,TCP Maimon掃描,發送標志位FIN,ACK的TCP報文。
- --scanflags (定制的TCP掃描),這些標志位你甚至可以自己定義,不過記得配合其他TCP掃描。
控制位可以任意順序,并且嘛之間不用空格,直接連著一起寫
-sA (TCP ACK掃描)
此模式需要管理員(administrator或root)權限。
ACK掃描,將TCP報文標志位ACK=1,可以用于檢測防火墻屏蔽了哪個端口,不過濾的主機端口反而啥也掃不出。
有空要補上圖。因為我手機上并沒有模擬出來效果啊。
-s0(IP協議掃描)
IP 協議掃描確定目標機支持哪些IP協議 (TCP,UDP,ICMP,IGMP等等)。從技術上說,這不是端口掃描 ,既然它遍歷的是IP協議號,但是也可以使用-p來指定端口,只不過這個端口對應的是協議的號碼。
圖10.這里的數字不是代表端口,而是協議
-sI (空閑掃描)
僵尸主機也就是肉雞,利用side-channel攻擊,nmap對此端口進行掃描操作,從而更加隱蔽的進行掃描,若安全設備溯源也是溯源到肉雞的IP。
- -sI [:]? ?端口可以不寫,默認80
- -sI 192.168.1.1:8888
-b (FTP彈跳掃描)
這個是利用FTP代理鏈接漏洞,允許用戶連接到一臺FTP服務器,然后要求文件送到一臺第三方服務器。可以有效的隱藏自己。
這里參數格式是-
- -b :@:
版本探測和系統探測
不同服務也有不同版本,比如SNMP有v1、v2c、v3三種版本,SMB也有v1.0、v2.0、v3.0三種版本。不同的版本也有不同的特性,為此這些信息也是很重要的內容。
-sV (版本探測)
-
-sV? 打開版本探測。在端口掃描的基礎上進行開放端口的服務分析。
- –allports (不為版本探測排除任何端口) 默認情況下會跳過tcp:9100,因為某些打印機簡單地打印送到該端口的任何數據,這回導致數十頁HTTP get請求,二進制 SSL會話請求等等被打印出來
–version-intensity (設置 版本掃描強度) 強度范圍:0和9,默認是7。強度越高越精確,但是耗時更久。
- --version-light (輕量級模式) 相當于--version-intensity 2- --version-all (嘗試每端口探測) 相當于--version-intensity 9- –version-trace(顯示正在進行的掃描的調試信息)可以看到具體的日志。
-sR(RPC掃描)
- -sR 利用RPC協議來進行版本探測,不過現在使用sV就涵蓋了其中,少用。其實我也不太懂RPC,之前配置NFS時候遇到過RPC:111和113端口。
-O (啟用操作系統探測)
- -O 啟用操作系統探測,
-
–osscan-limit (針對指定的目標進行操作系統檢測)
- 如果發現一個打開和關閉的TCP端口時,操作系統檢測會更有效。 采用這個選項,nmap只對滿足這個條件的主機進行操作系統檢測,這樣可以 節約時間,特別在使用-P0掃描多個主機時。
-
–osscan-guess; --fuzzy (推測操作系統檢測結果)
- 當Nmap無法確定所檢測的操作系統時,會盡可能地提供最相近的匹配,Nmap默認 進行這種匹配,使用上述任一個選項使得Nmap的推測更加有效。
-
-A(操作系統探測和版本探測)
- -A 操作系統和版本探測都進行,和啟動-sV和-O一樣,sV和O的參數在這里也可以使用。
時間與性能、顯示
因為nmap通常對整個進行掃描,倘若網段范圍主機非常多,適當的添加參數調整參數會大大的節約時間。
-T (設置時間模板)
只要記住這個就可以了,因為夠用了,其他時間選項其實更加細致的設置,T時間模板已經封裝好。
-
-T 范圍0-5,可以使用數字來代替paranoid (0)、sneaky (1)、polite (2)、normal(3)、 aggressive (4)和insane (5)
- -T3 即為默認
- -T0,T1,可以用于躲避IDS的探測,但是速度比較慢
- -T2 降低掃描速度
- -T4 加快掃描速度,也是一般情況也試用比較可靠有線網絡
- -T5 最快的掃描速度,但是可能讓目標主機處理不過來從而導致掃描結果不準確。
–min-hostgroup ; --max-hostgroup (調整并行掃描組的大小)
原來掃描結果需要最后才可以全部看到,但是可以設置組的大小,從而讓當前組掃完就可以的看結果,如果組的大小定義為50,掃描50個主機掃描完成后可以得到報告(詳細模式中的補充信息 除外)。
不過其實個人覺得-v或者-vv參數更有效果吧。
–scan-delay ; --max-scan-delay (調整探測報文的時間間隔)
設置掃描包的發送間隔,單位ms。
–min-parallelism ; --max-parallelism (調整探測報文的并行度)
–min-rtt-timeout , --max-rtt-timeout , --initial-rtt-timeout (調整探測報文超時)
–host-timeout (放棄低速目標主機)
跳過通信差的主機,設置多少ms延遲才跳過。比如樓下蹭網的鄰居,每一次掃描需要等待許久,非常消耗時間,干脆跳過。
防火墻/IDS躲避和哄騙
-D (使用誘餌隱蔽掃描)
使用誘餌隱藏掃描。即發送參雜著假ip的數據包檢測。作為誘餌ip須在線。
使用逗號分隔每個誘餌主機,比如:
sudo nmap -sS -D 192.168.1.1,192.168.2.1,192.168.3.1,192.168.5.1 192.168.5.2-254-S (源地址哄騙)
- -S 偽造IP報文中原地址,若有多張網卡那么要指定發送和接收的網卡。
- -e 指定網卡 比如 -e eth0,在Windows上可以使用–iflist查看網卡。
–source-port ; -g (源端口哄騙)
自定義源端口
–data-length (發送報文時 附加隨機數據)
默認時候發送的IP報文都是沒有數據的空白報文,追加隨機的數據可以減小被懷疑的可能,但是性能消耗會增加。
-
–ttl (設置IP time-to-live)
設置ttl,比如–ttl 255
–randomize-hosts (對目標主機的順序隨機排列)
–spoof-mac (MAC地址哄騙)
這個比較有趣,可以輸入完整的mac地址,也可以輸入前面3Byte的mac,也可以輸入廠家的名字(使用自帶庫中的預設)。
比如 ----spoof-mac 01:01:01:01:22:1a,a20123,Cisco
輸出
nmap可以將結果輸出為文件,同時也可以配合–resume實現繼續之前未完成的任務。
-oA (輸出至所有格式)
輸出以下的全部,當然如果不需要也可以任意選擇需要的:
-
-oN (標準輸出)? 標準輸出可以用于–resume斷點繼續。
- –append-output (在輸出文件中添加)
-
-oX (XML輸出) 推薦使用此格式,因為XML使用場景很廣,可方便被編程語言調用。比如使用python的腳本導結果為excel表格等。
-
-oG (Grep輸出) 可以很方便的在grep、awk、cut、sed、diff等命令中展現。
-v (提高輸出信息的詳細度)
- -vv 比起-v更詳細,但是終端打印消息太多可能主要的信息就不太好看得見了。
- -d [level] (提高或設置調試級別)?這個一般情況是調試用的
–packet-trace (跟蹤發送和接收的報文)
要求Nmap打印發送和接收的每個報文的摘要,也可以方便初學者理解nmap工作原理。
–iflist (列舉接口和路由)
用于分析路由,如果報文發送錯誤網卡可以使用-e來定義網卡接口,但是nmap中的命名是Linux那一套,在Windows要注意。
圖11.顯示網卡和路由
總結
以上是生活随笔為你收集整理的网络安全(一):信息收集之玩转nmap(理论篇)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Bootstrap 组件:Glyphic
- 下一篇: Tencent/tencent-ml-i