天天看點

筆記——nmap滲透常用功能彙總參考

文章目錄

    • nmap掃描的端口狀态解釋:
    • ICMP
    • 服務指紋
    • nmap侵略性探測
    • 區域網路中的主機發現
    • 結果輸出
    • 端口探測
    • NSE腳本
    • NSE調試功能使用
      • NSE參數的使用
    • NSE更新
    • 指定特定網卡進行探測
    • ndiff對比掃描結果
    • 其他
  • 參考

最近在深入學習nmap,把過程中的重點稍微記一下,排版比較亂( __) 嘻嘻……。有強迫症的同學見諒了哈。有時間周末再修改這個博文( __) 嘻嘻……

nmap掃描的端口狀态解釋:

  • open,表示開放狀态;
  • closed,表示關閉狀态;
  • filterd,表示端口處于過濾無法收到傳回的probe狀态;
  • unfilterd,表示端口收到傳回的probe,但是無法确定是否被過濾;
  • opend/unfilterd,表示端口處于開放或者未過濾狀态;
  • closed/unfilterd,表示端口處于關閉或者未過濾狀态;

ICMP

詳見wiki:https://en.wikipedia.org/wiki/Internet_Control_Message_Protocol

ICMP(Internet控制消息協定)是一種錯誤報告協定,當網絡問題阻止IP資料包的傳遞時,路由器之類的網絡裝置會使用這些錯誤消息向源IP位址生成錯誤消息。ICMP建立消息并将其發送到源IP位址,該消息訓示無法通路路由器,服務或主機的Internet 網關以進行資料包傳遞。任何IP網絡裝置都可以發送,接收或處理ICMP消息。

ICMP 不是在系統之間發送資料的傳輸協定。

盡管最終使用者應用程式中不經常使用ICMP,但網絡管理者可以使用它來診斷診斷實用程式(包括ping和traceroute)中的 Internet連接配接。

網絡裝置(包括路由器)使用它來發送錯誤消息和操作資訊,以訓示與另一個IP位址進行通信時的成功或失敗,例如,當請求的服務不可用或主機或路由器無法提供服務時,訓示錯誤。達到。

ICMP消息通常用于診斷或控制目的,或響應IP操作中的錯誤而生成。

服務指紋

為了確定有一個成功的滲透測試或網絡裝置監控,必須需要知道目标系統中服務的指紋資訊。服務指紋資訊包括服務端口、服務名和版本資訊等。

通過分析目标往nmap發送的資料包中某些協定标記、選項和資料,我們可以推斷發送這些資料包的作業系統等。

nmap通過向目标主機發送多個udp和tcp資料包并分析其響應來進行作業系統指紋識别工作。

使用指令:

# 擷取服務指紋
nmap -sV 192.168.0.117
           

nmap侵略性探測

擷取目标機器的作業系統、服務等資訊

方法1:

# -A,侵略性地嘗試進行深入的服務枚舉和旗标擷取,能夠提供目标系統更多的細節
# -v,持續輸出掃描的過程
# -T4,加快探測速度
nmap -A -v -T4 192.168.0.117
           

方法2:

# -sC,表示使用namp腳本進行探測
# -sV,表示探測目标機器上的服務資訊
# -O,表示探測目标機器的作業系統資訊
map -sC -sV -O 192.168.0.117
           

區域網路中的主機發現

一個區域網路中肯定是連接配接着多台裝置,那麼如何擷取哪些裝置正在開機狀态呢?

CIDR,無類别域間路由

172.16.1.0/24,表示在172.168.1.0-172.16.1.255之間的所有機器。

# -sP,使用TCP SYN掃描、ICMP echo Request來探測主機存活性
nmap -sP 192.168.0.0/24
           
# -sn,對網絡中所有主機進行ping掃描來探測主機存活性
nmap -sn 192.168.0.0/24
           

結果輸出

對網絡中所有主機進行ping掃描,并将結果存入test.xml中

nmap -sn 192.168.0.0/24 -oX test.xml
           

端口探測

對單個、多個、範圍、所有端口進行探測

nmap -p80 192.168.0.117 # 單個端口
nmap -p80,135 192.168.0.117 # 多個端口
nmap -p1-1000 192.168.0.117 # 端口範圍
nmap -p- 192.168.0.117 # 所有端口

nmap -p T:25,U:53 192.168.0.117 # 對25端口使用TCP協定探測,對53端口使用UDP探測
nmap -p smtp 192.168.0.117 # 通過指定協定名來掃描端口
nmap -p ssh 192.168.0.117 # 通過指定協定名來掃描端口
nmap -p s* 192.168.0.117 # 通過指定協定名的通配符
           

NSE腳本

所有腳本檔案預設安裝在目錄:/usr/share/nmap/scripts

-sC:等價于 --script=default

掃描http服務,直接使用腳本名全稱

nmap --script http-title 192.168.0.119 # 探測http服務的title資訊
nmap --script http-headers 192.168.0.119 # 探測http服務的headers資訊
           

使用腳本名通配符探測

nmap -sV --script "(http*) and not (http-slowlors and http-brute)" 192.168.0.119
           

使用腳本分類,所有的分類如下表所示:

腳本類别 描述
auth 用于使用者認證的NSE腳本
broadcast 使用廣播收集網絡資訊
brute 暴力破解
default 預設,執行腳本(-sC)
discovery 與主機和服務發現相關的腳本
dos 與拒絕服務攻擊相關的腳本
exploit 用于利用安全漏洞的腳本
external 适用于第三方服務的腳本
fuzzer 用于模糊測試的腳本
intrusive 入侵腳本
malware 與惡意軟體檢測相關的腳本類别
safe 在所有情況下預設為是安全的腳本
vuln 與檢測和利用安全漏洞相關的腳本
version 進階系統腳本

所有的分類以及所有的腳本的功能詳情,可以點選檢視nmap官網。

使用nmap中vuln分類腳本對目标進行探測

nmap -sV --script vuln 192.168.0.119
           

使用nmap中version和discovery分類進行探測

nmap -sV --script="version,discovery" 192.168.0.119
           

使用nmap中除了exploit分類之外的其他分類進行探測

nmap -sV --script="not exploit" 192.168.0.119
           

NSE調試功能使用

使用Nmap中exploit,同僚開啟調試模式,指令如下:

NSE參數的使用

使用nmap的http-title腳本,并且指定使用對應的User-Agent。指令如下:

nmap -sV --script http-title --script-args http.useragent="Mozilla 999" 192.168.0.119
           

NSE更新

更新腳本庫的指令

nmap --script-updatedb
           

指定特定網卡進行探測

nmap是一款可拓展性強的工具,并且有些NSE腳本支援嗅探。但是這種功能需要網卡支援混雜模式才可以。或者當計算機上有兩張網卡,并且兩張網卡對應的不同網絡。

nmap中提供了切換使用特定網卡進行探測的參數:

-e 網卡名

如果在主機上多張網卡連接配接的網絡之間是無法聯通的,直接使用nmap進行探測,有可能會花費很多時間,nmap會逐個篩選網卡進行探測。在篩選網卡過程中,很多時間都浪費在選用了錯誤的網卡,等待逾時的過程中。

使用下面指令列出主機的網卡接口和路由資訊:

nmap --iflist
           

獲得這些資訊,可以進一步選擇特定的網卡進行探測。避免探測過程中的"錯選網卡逾時等待"。

ndiff對比掃描結果

對某個網絡進行探測的時候,可能與之前有探測過的結果,現在探測過後,需要對之前的結果與現在的結果對比,找到兩次不同點。

監視網絡變化,達到網絡監控的目的。

其他

nmap -O x.x.x.x # 目标系統版本探測

nmap -p80,443 --script=http-waf-detect x.x.x.x # 掃描主機端口80和443是否開啟,并探測WAF

nmap -O -Pn x.x.x.x # (-Pn 禁用Nmap網絡發現功能,假定所有系統都是活動的)

nmap -sT -Pn  x.x.x.x # TCP掃描通常用于收集有關目标的更多資訊,但是會和目标主機建立一個完成的TCP連接配接。

nmap -sS -Pn URI # SYN 掃描:TCP兩次握手(隐藏掃描,速度快,nmap預設參數)

nmap -sA -Pn URI # ACK掃描,用于确定TCP端口是否被防火牆過濾

nmap -sU  URI # DHCP,DNS,SNMP,TFTP等都使用了UDP協定。UDP掃描會評估目标系統上的UDP端口,可以确認UDP端口是開放還是被防火牆過濾。不存在-PN參數(從UDP協定去了解,你發了就ok管他收沒收到)

# timing參數可以指定nmap掃描的速度。其中各個選項如下:
# T0:paranoid 慢速網絡掃描,串行掃描,兩次掃描間隔5分鐘。掃描速度極慢。
# T1:Sneky 慢速網絡掃描,串行掃描,兩次掃描間隔15秒,掃描速度較慢。
# T2:Polite 中速網絡掃描,串行掃描,兩次掃描間隔400毫秒,掃描速度慢。
# T3:Normal 中速網絡掃描,并行掃描,兩次掃描間隔0秒,掃描速度正常。
# T4:Aggressive 快速網絡掃描,并行掃描,兩次掃描間隔0秒,掃描速度較快。
# T5:Normal 快速網絡掃描,并行掃描,兩次掃描間隔0秒,掃描速度極快。
nmap -sS -T5 192.168.1.1

# 輸出儲存選項
# -oN 儲存為文本檔案
# -oX 儲存為XML檔案
# -oG 儲存為GREPable輸出
# -oS 腳本輸出
nmap -oN metscan.txt 192.168.154.134 # 将掃描結果儲存到metscan.txt檔案。
           

參考

1.https://www.freebuf.com/sectool/109952.html