主頁 >  其他 > 網路安全(一):資訊收集之玩轉nmap(理論篇)

網路安全(一):資訊收集之玩轉nmap(理論篇)

2022-10-31 07:32:24 其他

更新時間

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
/24192.168.0.1; 10.0.0-255.1-254 -iL <inputfilename>: 從檔案中讀取要掃描的主機串列 -iR <主機數量>: 選擇隨機目標 #0為無限生成 --exclude <host1[,host2][,host3],...>:要排除的 主機/網路 --excludefile <exclude_file>: 從檔案中選擇要排除的主機串列 主機發現: -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 <serv1[,serv2],...>: 指定自定義 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 <flags>: 自定義 TCP 掃描標志 -sI <僵尸主機[:僵尸埠]>: 空閑掃描 -sY/sZ: SCTP INIT/COOKIE-ECHO 掃描 -sO: IP 協議掃描 -b <FTP 中繼主機>: FTP 反彈掃描 指定掃描埠、掃描順序: -p <埠范圍>:只掃描指定的埠 例如:-p22; -p1-65535; -p U:53,111,137,T:21-25,80,139,8080,S:9 --exclude-ports <埠范圍>: 從掃描中排除指定埠 -F: 快速模式, 掃描比默認掃描更少的埠 -r: 連續掃描埠,不要隨機化,即按順序掃描埠 --top-ports <number>: 掃描<number>個最常用的埠 --port-ratio <ratio>: 掃描比<ratio>更常見的埠 服務/版本檢測: -sV: 探測開放埠以確定服務/版本資訊 --version-intensity <level>:設定從 0(輕)到 9(嘗試所有探針) --version-light: 限制最可能的探測(強度 2--version-all: 嘗試每一個探測(強度 9--version-trace: 顯示詳細的版本掃描活動(用于除錯) 腳本掃描: -sC: 相當于--script=default --script=<Lua scripts>: 使用腳本進行掃描,多個腳本時用逗號分隔,支持通配符, --script-args=<n1=v1,[n2=v2,...]>: 為腳本提供引數 --script-args-file=filename: 從檔案中提供 NSE 腳本引數 --script-trace: 顯示所有發送和接收的資料 --script-updatedb: 更新腳本資料庫, --script-help=<Lua 腳本>: 顯示有關腳本的幫助, 作業系統檢測: -O: 啟用作業系統檢測 --osscan-limit: 將作業系統檢測限制為有希望的目標 --osscan-guess: 更積極地猜測作業系統 時間和性能: 默認是秒,也可以 “ms”(毫秒),'s'(秒)、'm'(分鐘)或 'h'(小時)到值(例如 30m), -T<0-5>: 設定時序模板(越高掃描速度越快,但是準確性降低) --min-hostgroup/max-hostgroup <size>: 并行主機掃描組大小 --min-parallelism/max-parallelism <numrobes>:探針并行化 --min-rtt-timeout/max-rtt-timeout/initial-rtt-timeout <時間>: 指定探測往返時間, --max-retries <tries>: 限制埠掃描探測重傳的次數, --host-timeout <time>: 多長時間后放棄目標 --scan-delay/--max-scan-delay <time>:調整探針之間的延遲 --min-rate <number>: 每秒發送資料包不低于 <number> --max-rate <number>: 每秒發送資料包的速度不超過 <number> 防火墻/IDS 逃避和欺騙: -f; --mtu <val>: 分片資料包(可選地 w/給定的 MTU) -D <誘餌IP1,誘餌IP2[,本機IP],...>:使用誘餌隱藏掃描,即發送參雜著假ip的資料包檢測 -S <IP 地址>: 欺騙源地址,就是偽造源主機IP地址, -e <網路介面>: 指定從哪個網卡發送和接收資料包, -g/--source-port <portnum>: 使用給定的埠號,針對防火墻只允許的源埠 --proxies <url1,[url2],...>: 通過 HTTP/SOCKS4 代理中繼連接 --data <hex string>: 將自定義有效負載附加到發送的資料包 --data-string <string>: 將自定義 ASCII 字串附加到發送的資料包中 --data-length <num>: 將隨機資料附加到發送的資料包中, 改變發生資料包的默認的長度,防止被識別出來, --ip-options <options>: 發送帶有指定ip選項的資料包 --ttl <val>: 設定 IP 生存時間欄位 --spoof-mac <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 <path/URL>:將 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)

-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 Server> 指定DNS服務器
  • -n 不決議DNS,那就真的只是列出IP地址而已了
  • -R 強制決議DNS
┌──(kali?kali)-[~]
└─$ nmap -sL 192.168.24.1/30 -dbs-servers 192.168.28.8
Starting Nmap 7.93 ( https://nmap.org ) at 2022-10-26 22:39 EDT
Nmap scan report for 192.168.24.0
Nmap scan report for redmiAX6(192.168.1.1)
Nmap scan report for xiaomi10s(192.168.24.2)
Nmap scan report for 192.168.24.3Nmap done: 4 IP addresses (2 hosts up) scanned in 0.01 seconds

-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 <port ranges>指定目標埠

如果使用-p自定義范圍,

  • -p和主機發現類似的用法,可以使用,-來選擇范圍,
nmap -sS -p 1-1024,3389,3306 192.168.5.1/24
  • 也可以使用U:和T:來選擇UDP埠、TCP埠范圍,
nmap -sS -sU -p U:53,67,68,T:1-1024,3389,3306 192.168.5.1/24

-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被過濾 
nmap -sS -p 1-65535 192.168.5.1

-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掃描,
    • sudo nmap -sA -F 127.0.0.1 --scanflags URGACKPSHRSTSYNFIN
      # 控制位可以任意順序,并且嘛之間不用空格,直接連著一起寫

-sA (TCP ACK掃描)

此模式需要管理員(administrator或root)權限,

 ACK掃描,將TCP報文標志位ACK=1,可以用于檢測防火墻屏蔽了哪個埠,不過濾的主機埠反而啥也掃不出,

有空要補上圖,因為我手機上并沒有模擬出來效果啊,

-s0(IP協議掃描)

IP 協議掃描確定目標機支持哪些IP協議 (TCP,UDP,ICMP,IGMP等等),從技術上說,這不是埠掃描 ,既然它遍歷的是IP協議號,但是也可以使用-p來指定埠,只不過這個埠對應的是協議的號碼,

圖10.這里的數字不是代表埠,而是協議

-sI <zombie host[:probeport]> (空閑掃描)

僵尸主機也就是肉雞,利用side-channel攻擊,nmap對此埠進行掃描操作,從而更加隱蔽的進行掃描,若安全設備溯源也是溯源到肉雞的IP,

  • -sI <host>[:<port>]   埠可以不寫,默認80
    • -sI 192.168.1.1:8888
sudo nmap -sI 192.168.2.8:8080 192.168.2.1/24 -Pn

-b <ftp relay host> (FTP彈跳掃描)

這個是利用FTP代理鏈接漏洞,允許用戶連接到一臺FTP服務器,然后要求檔案送到一臺第三方服務器,可以有效的隱藏自己,

 這里引數格式是-

  • -b <username>:<password>@<server>:<port>
sudo nmap -sS ftp:123@192.168.1.1:21

 版本探測和系統探測

不同服務也有不同版本,比如SNMP有v1、v2c、v3三種版本,SMB也有v1.0、v2.0、v3.0三種版本,不同的版本也有不同的特性,為此這些資訊也是很重要的內容,

-sV (版本探測)

  • -sV  打開版本探測,在埠掃描的基礎上進行開放埠的服務分析,
    • --allports (不為版本探測排除任何埠) 默認情況下會跳過tcp:9100,因為某些列印機簡單地列印送到該埠的任何資料,這回導致數十頁HTTP get請求,二進制 SSL會話請求等等被列印出來
    • --version-intensity <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 <Paranoid|Sneaky|Polite|Normal|Aggressive|Insane> (設定時間模板)

只要記住這個就可以了,因為夠用了,其他時間選項其實更加細致的設定,T時間模板已經封裝好,

  • -T<number> 范圍0-5,可以使用數字來代替paranoid (0)、sneaky (1)、polite (2)、normal(3)、 aggressive (4)和insane (5)
    • -T3 即為默認
    • -T0,T1,可以用于躲避IDS的探測,但是速度比較慢
    • -T2 降低掃描速度
    • -T4 加快掃描速度,也是一般情況也試用比較可靠有線網路
    • -T5 最快的掃描速度,但是可能讓目標主機處理不過來從而導致掃描結果不準確,

--min-hostgroup <size>; --max-hostgroup <size> (調整并行掃描組的大小)

原來掃描結果需要最后才可以全部看到,但是可以設定組的大小,從而讓當前組掃完就可以的看結果,如果組的大小定義為50,掃描50個主機掃描完成后可以得到報告(詳細模式中的補充資訊 除外),

不過其實個人覺得-v或者-vv引數更有效果吧,

--scan-delay <milliseconds>; --max-scan-delay <milliseconds> (調整探測報文的時間間隔)

設定掃描包的發送間隔,單位ms,

--min-parallelism <numprobes>; --max-parallelism <numprobes> (調整探測報文的并行度)

--min-rtt-timeout <milliseconds>, --max-rtt-timeout <milliseconds>, --initial-rtt-timeout <milliseconds> (調整探測報文超時)

--host-timeout <milliseconds> (放棄低速目標主機)

跳過通信差的主機,設定多少ms延遲才跳過,比如樓下蹭網的鄰居,每一次掃描需要等待許久,非常消耗時間,干脆跳過,

防火墻/IDS躲避和哄騙

-D <decoy1 [,decoy2][,ME],...>(使用誘餌隱蔽掃描)

使用誘餌隱藏掃描,即發送參雜著假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 <IP_Address> (源地址哄騙)

  • -S 偽造IP報文中原地址,若有多張網卡那么要指定發送和接收的網卡,
    • -e <network interface>指定網卡 比如 -e eth0,在Windows上可以使用--iflist查看網卡,

--source-port <portnumber>; -g <portnumber> (源埠哄騙)

自定義源埠

--data-length <number> (發送報文時 附加隨機資料)

默認時候發送的IP報文都是沒有資料的空白報文,追加隨機的資料可以減小被懷疑的可能,但是性能消耗會增加,

  • --ttl <value> (設定IP time-to-live)

設定ttl,比如--ttl 255

--randomize-hosts (對目標主機的順序隨機排列)

--spoof-mac <mac address,prefix,or vendor name> (MAC地址哄騙)

這個比較有趣,可以輸入完整的mac地址,也可以輸入前面3Byte的mac,也可以輸入廠家的名字(使用自帶庫中的預設),

比如 ----spoof-mac 01:01:01:01:22:1a,a20123,Cisco

輸出

nmap可以將結果輸出為檔案,同時也可以配合--resume實作繼續之前未完成的任務,

-oA <basename> (輸出至所有格式)

輸出以下的全部,當然如果不需要也可以任意選擇需要的:

  • -oN <filespec> (標準輸出)  標準輸出可以用于--resume斷點繼續,
    • --append-output (在輸出檔案中添加) 
  • -oX <filespec> (XML輸出) 推薦使用此格式,因為XML使用場景很廣,可方便被編程語言呼叫,比如使用python的腳本導結果為excel表格等,
  • -oG <filespec> (Grep輸出) 可以很方便的在grep、awk、cut、sed、diff等命令中展現,

-v (提高輸出資訊的詳細度)

  • -vv 比起-v更詳細,但是終端列印訊息太多可能主要的資訊就不太好看得見了,
  • -d [level] (提高或設定除錯級別) 這個一般情況是除錯用的

--packet-trace (跟蹤發送和接收的報文)

要求Nmap列印發送和接收的每個報文的摘要,也可以方便初學者理解nmap作業原理,

--iflist (列舉介面和路由)

用于分析路由,如果報文發送錯誤網卡可以使用-e來定義網卡介面,但是nmap中的命名是Linux那一套,在Windows要注意,

 

 圖11.顯示網卡和路由

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/523167.html

標籤:其他

上一篇:Http和Https

下一篇:2022NISACTF--WEB

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 網閘典型架構簡述

    網閘架構一般分為兩種:三主機的三系統架構網閘和雙主機的2+1架構網閘。 三主機架構分別為內端機、外端機和仲裁機。三機無論從軟體和硬體上均各自獨立。首先從硬體上來看,三機都用各自獨立的主板、記憶體及存盤設備。從軟體上來看,三機有各自獨立的作業系統。這樣能達到完全的三機獨立。對于“2+1”系統,“2”分為 ......

    uj5u.com 2020-09-10 02:00:44 more
  • 如何從xshell上傳檔案到centos linux虛擬機里

    如何從xshell上傳檔案到centos linux虛擬機里及:虛擬機CentOs下執行 yum -y install lrzsz命令,出現錯誤:鏡像無法找到軟體包 前言 一、安裝lrzsz步驟 二、上傳檔案 三、遇到的問題及解決方案 總結 前言 提示:其實很簡單,往虛擬機上安裝一個上傳檔案的工具 ......

    uj5u.com 2020-09-10 02:00:47 more
  • 一、SQLMAP入門

    一、SQLMAP入門 1、判斷是否存在注入 sqlmap.py -u 網址/id=1 id=1不可缺少。當注入點后面的引數大于兩個時。需要加雙引號, sqlmap.py -u "網址/id=1&uid=1" 2、判斷文本中的請求是否存在注入 從文本中加載http請求,SQLMAP可以從一個文本檔案中 ......

    uj5u.com 2020-09-10 02:00:50 more
  • Metasploit 簡單使用教程

    metasploit 簡單使用教程 浩先生, 2020-08-28 16:18:25 分類專欄: kail 網路安全 linux 文章標簽: linux資訊安全 編輯 著作權 metasploit 使用教程 前言 一、Metasploit是什么? 二、準備作業 三、具體步驟 前言 Msfconsole ......

    uj5u.com 2020-09-10 02:00:53 more
  • 游戲逆向之驅動層與用戶層通訊

    驅動層代碼: #pragma once #include <ntifs.h> #define add_code CTL_CODE(FILE_DEVICE_UNKNOWN,0x800,METHOD_BUFFERED,FILE_ANY_ACCESS) /* 更多游戲逆向視頻www.yxfzedu.com ......

    uj5u.com 2020-09-10 02:00:56 more
  • 北斗電力時鐘(北斗授時服務器)讓網路資料更精準

    北斗電力時鐘(北斗授時服務器)讓網路資料更精準 北斗電力時鐘(北斗授時服務器)讓網路資料更精準 京準電子科技官微——ahjzsz 近幾年,資訊技術的得了快速發展,互聯網在逐漸普及,其在人們生活和生產中都得到了廣泛應用,并且取得了不錯的應用效果。計算機網路資訊在電力系統中的應用,一方面使電力系統的運行 ......

    uj5u.com 2020-09-10 02:01:03 more
  • 【CTF】CTFHub 技能樹 彩蛋 writeup

    ?碎碎念 CTFHub:https://www.ctfhub.com/ 筆者入門CTF時時剛開始刷的是bugku的舊平臺,后來才有了CTFHub。 感覺不論是網頁UI設計,還是題目質量,賽事跟蹤,工具軟體都做得很不錯。 而且因為獨到的金幣制度的確讓人有一種想去刷題賺金幣的感覺。 個人還是非常喜歡這個 ......

    uj5u.com 2020-09-10 02:04:05 more
  • 02windows基礎操作

    我學到了一下幾點 Windows系統目錄結構與滲透的作用 常見Windows的服務詳解 Windows埠詳解 常用的Windows注冊表詳解 hacker DOS命令詳解(net user / type /md /rd/ dir /cd /net use copy、批處理 等) 利用dos命令制作 ......

    uj5u.com 2020-09-10 02:04:18 more
  • 03.Linux基礎操作

    我學到了以下幾點 01Linux系統介紹02系統安裝,密碼啊破解03Linux常用命令04LAMP 01LINUX windows: win03 8 12 16 19 配置不繁瑣 Linux:redhat,centos(紅帽社區版),Ubuntu server,suse unix:金融機構,證券,銀 ......

    uj5u.com 2020-09-10 02:04:30 more
  • 05HTML

    01HTML介紹 02頭部標簽講解03基礎標簽講解04表單標簽講解 HTML前段語言 js1.了解代碼2.根據代碼 懂得挖掘漏洞 (POST注入/XSS漏洞上傳)3.黑帽seo 白帽seo 客戶網站被黑帽植入劫持代碼如何處理4.熟悉html表單 <html><head><title>TDK標題,描述 ......

    uj5u.com 2020-09-10 02:04:36 more
最新发布
  • 2023年最新微信小程式抓包教程

    01 開門見山 隔一個月發一篇文章,不過分。 首先回顧一下《微信系結手機號資料庫被脫庫事件》,我也是第一時間得知了這個訊息,然后跟蹤了整件事情的經過。下面是這起事件的相關截圖以及近日流出的一萬條資料樣本: 個人認為這件事也沒什么,還不如關注一下之前45億快遞資料查詢渠道疑似在近日復活的訊息。 訊息是 ......

    uj5u.com 2023-04-20 08:48:24 more
  • web3 產品介紹:metamask 錢包 使用最多的瀏覽器插件錢包

    Metamask錢包是一種基于區塊鏈技術的數字貨幣錢包,它允許用戶在安全、便捷的環境下管理自己的加密資產。Metamask錢包是以太坊生態系統中最流行的錢包之一,它具有易于使用、安全性高和功能強大等優點。 本文將詳細介紹Metamask錢包的功能和使用方法。 一、 Metamask錢包的功能 數字資 ......

    uj5u.com 2023-04-20 08:47:46 more
  • vulnhub_Earth

    前言 靶機地址->>>vulnhub_Earth 攻擊機ip:192.168.20.121 靶機ip:192.168.20.122 參考文章 https://www.cnblogs.com/Jing-X/archive/2022/04/03/16097695.html https://www.cnb ......

    uj5u.com 2023-04-20 07:46:20 more
  • 從4k到42k,軟體測驗工程師的漲薪史,給我看哭了

    清明節一過,盲猜大家已經無心上班,在數著日子準備過五一,但一想到銀行卡里的余額……瞬間心情就不美麗了。最近,2023年高校畢業生就業調查顯示,本科畢業月平均起薪為5825元。調查一出,便有很多同學表示自己又被平均了。看著這一資料,不免讓人想到前不久中國青年報的一項調查:近六成大學生認為畢業10年內會 ......

    uj5u.com 2023-04-20 07:44:00 more
  • 最新版本 Stable Diffusion 開源 AI 繪畫工具之中文自動提詞篇

    🎈 標簽生成器 由于輸入正向提示詞 prompt 和反向提示詞 negative prompt 都是使用英文,所以對學習母語的我們非常不友好 使用網址:https://tinygeeker.github.io/p/ai-prompt-generator 這個網址是為了讓大家在使用 AI 繪畫的時候 ......

    uj5u.com 2023-04-20 07:43:36 more
  • 漫談前端自動化測驗演進之路及測驗工具分析

    隨著前端技術的不斷發展和應用程式的日益復雜,前端自動化測驗也在不斷演進。隨著 Web 應用程式變得越來越復雜,自動化測驗的需求也越來越高。如今,自動化測驗已經成為 Web 應用程式開發程序中不可或缺的一部分,它們可以幫助開發人員更快地發現和修復錯誤,提高應用程式的性能和可靠性。 ......

    uj5u.com 2023-04-20 07:43:16 more
  • CANN開發實踐:4個DVPP記憶體問題的典型案例解讀

    摘要:由于DVPP媒體資料處理功能對存放輸入、輸出資料的記憶體有更高的要求(例如,記憶體首地址128位元組對齊),因此需呼叫專用的記憶體申請介面,那么本期就分享幾個關于DVPP記憶體問題的典型案例,并給出原因分析及解決方法。 本文分享自華為云社區《FAQ_DVPP記憶體問題案例》,作者:昇騰CANN。 DVPP ......

    uj5u.com 2023-04-20 07:43:03 more
  • msf學習

    msf學習 以kali自帶的msf為例 一、msf核心模塊與功能 msf模塊都放在/usr/share/metasploit-framework/modules目錄下 1、auxiliary 輔助模塊,輔助滲透(埠掃描、登錄密碼爆破、漏洞驗證等) 2、encoders 編碼器模塊,主要包含各種編碼 ......

    uj5u.com 2023-04-20 07:42:59 more
  • Halcon軟體安裝與界面簡介

    1. 下載Halcon17版本到到本地 2. 雙擊安裝包后 3. 步驟如下 1.2 Halcon軟體安裝 界面分為四大塊 1. Halcon的五個助手 1) 影像采集助手:與相機連接,設定相機引數,采集影像 2) 標定助手:九點標定或是其它的標定,生成標定檔案及內參外參,可以將像素單位轉換為長度單位 ......

    uj5u.com 2023-04-20 07:42:17 more
  • 在MacOS下使用Unity3D開發游戲

    第一次發博客,先發一下我的游戲開發環境吧。 去年2月份買了一臺MacBookPro2021 M1pro(以下簡稱mbp),這一年來一直在用mbp開發游戲。我大致分享一下我的開發工具以及使用體驗。 1、Unity 官網鏈接: https://unity.cn/releases 我一般使用的Apple ......

    uj5u.com 2023-04-20 07:40:19 more