2. nmap僞裝技術和檢查,NSE的基礎,原理和腳本

書名諸神之眼NMAP 學習筆記

nmap 僞裝技術

  1. 數據包分段

    發送的數據包將原理的數據包分成幾個部分,防火牆在對數據包進行檢查時候會更加困難
    注意:一些老的主機會老的系統可能會死機藍屏

    nmap -f  [目標]
    

    在這裏插入圖片描述

  2. 指定使用的MTU
    最大傳輸單位(MTU),最大的數據包大小
    一般來說,以太網的MTU的默認是1500bytes ,如果大於這個數就被分片
    用參數--mtu指定大小

    nmap --mtu [指定的大小]  [目標]
    

    nmap --mtu 16 192.168.1.1
    在這裏插入圖片描述

  3. 誘餌主機隱藏掃描
    就是我僞造多個主機,然後裏面就我真實的我,目標就不好判斷那個是真實的攻擊端了
    在初始ping掃描(ICMP,SYN,ACK)和-O都可以用這個方法

    1. 指端僞造的ip

      nmap -D [僞造的ip],[僞造的ip],[僞造的ip]。。。  [目標]
      
    2. 用nmap隨機生成僞造源地址

      nmap -D RND [僞造源地址數量]   [目標]
      
  4. 源端口欺騙
    如果本地端口有限制,就可以利用這個端口進行掃描
    -g--source-port這個兩個參數其實是一樣的

    格式

    nmap -g [僞造的端口]  [目標]
    

    例如

    nmap -g 53 192.168.1.1
    
  5. 發送報文時加隨機數據
    nmap發送的數據包只有包頭,內容是空的,
    可以使用這個參數--data-length進行修改隨機內容
    格式

    nmap --data-length [要添加的隨機數據]  [目標]
    

    例如

    nmap --data-length 50  192.168.1.1
    

    在這裏插入圖片描述

  6. TTL設置
    ttl值Windows 是128(65——128)
    Linux 和 Unix = 64 (1-64) Unix = 255
    格式

    nmap --ttl [tti的值] [目標]
    

    例如

    nmap --ttl 50 192.168.1.1
    

    在這裏插入圖片描述

  7. MAC地址欺騙
    格式

    nmap  --spoof-mac [欺騙的MAC地址] [目標]
    

    如果欺騙的MAC地址是0 nmap會選擇一個全部隨機的MAC地址
    如果欺騙的MAC地址是小於12的十六進制的數字,nmap會隨機填充後面的6個字節
    nmap會通過查詢nmap-mac-prefixes查詢廠商的名稱(區分大小寫)
    例如

    nmap  --spoof-mac 0 192.168.43.1
    

    在這裏插入圖片描述

TCP完連接(Connect)掃描的檢查

Nmap向一個開放的端口發起了連接請求,並且完成了三次握手,之後結束了這次連接。這種掃描很容易被檢測到,如果沒有開放目標會返回一個RST,這樣斷開會產生大量的錯誤消息,而這些記錄會被記錄下來
例如

nmap  -sT [目標]

在這裏插入圖片描述
出現上面的情況可能就說明是有人在掃描你
如果有入侵檢測設備就會報警
查看最多發的請求
在這裏插入圖片描述

nmap掃描結果保存

  1. txt文件保存參數-oN
    格式

    nmap -oN [*.txt]  [目標]
    
  2. XML格式保存參數-oX
    格式

    nmap [*,xml] [目標]
    
  3. grep格式保存參數`-oG
    格式

    nmap -oG [*.gerp]  [目標]
    

NSE的基礎部分

  1. NES的腳本的運行,
    現在使用NSE腳本進行測試一臺服務器添加選項-sC
    例如

    nmap -sV -sC -O scanme.Nmap.org
    
  2. NMSE中的腳本的分類
    在這裏插入圖片描述

  3. NSE腳本的選擇
    腳本的位置在/usr/share/nmap/scripts文件夾裏面
    用使用腳本--script [腳本的文件名或者是路徑文件名] 運行腳本他也支持表達式

    1.使用nmap來枚舉出目標web服務器的支持的HTTP方法

    nmap -p 80 --script http-methods  192.168.30.34 
    

    在這裏插入圖片描述
    可以看見目標支持的服務有GET HEAD POST OPTIONS

    2.或者也可以使用種類的名字來調用一個分類中的全部腳本

    1. 使用一個safe類型的全部腳本進行掃描

      nmap --script safe 192.168.30.34  
      

      在這裏插入圖片描述

    2. 使用多個腳本進行掃描safe類型和discovery類型的全部腳本進行掃描
      例如

      nmap --script safe,discovery 192.168.30.34
      

    3.-sC參數
    -sC參數它是–scriptDefault的縮寫。也就是使用default分類下的腳本對目標進行掃描。
    4.有可以指定一個位置進行掃描
    例如

    nmap  -p 80  --script /usr/share/nmap/scripts/http-methods.nse 192.168.30.34
    

    在這裏插入圖片描述
    和上面的nmap -p 80 --script http-methods 192.168.30.34掃描是一樣的
    4.也可以使用表達式
    使用表達式or,and和not

    1. not例
      例如想使用除了exploit分類以外的所有腳本對目標進行檢測,命令如下

      nmap -sV --script "not exploit"  192.168.30.34 
      
    2. or例
      如果想使用除了intrusive、dos、exploit分類以外的所有腳本對目標進行檢測,命令如下

      nmap  -sV  --script "not (intrusive or dos or exploit)"  192.168.30.34 
      
    3. and例
      如果只使用broadcast和discovery分類的腳本對目標進行檢測,命令如下

      nmap  -sV --script "broadcast and discovery"  192.168.30.34 
      
    4. 也可以使用*和表達式進行結合
      *是代表所有的意思
      例如希望對一個FTP服務器進行審計,但是不希望使用intrusive分類中的腳本,就可以使用如下命令

      nmap --script "ftp-* and not(intrusive)"  192.168.30.34 
      

瞭解腳本的原理

  1. 如果不僅僅想利用Nmap腳本的強大實力,還想進一步瞭解腳本的原理,可以使用--script-trace參數**
    例如

    nmap  -p 80  --script http-methods 192.168.30.34   --script-trace
    

    在這裏插入圖片描述

    1.2也可以使用-d[1到9]輸出更詳細詳細,數字大,輸出就越詳細
    例如

    nmap  -p 80  --script http-methods 192.168.30.34   --script-trace -d3
    

    在這裏插入圖片描述

  2. 使用–packet-trace選項可以查看所有發送和收到的數據包**
    例如

    nmap  -p 80  --script http-methods 192.168.30.34   --packet-trace
    

    在這裏插入圖片描述

NSE常見腳本的應用

nmap只能進行簡單系統檢查和服務檢查,而NSE實現了大量的高級功能,

  1. 信息收集類腳本
    基於http-methods腳本的審計目的,web服務器支持的http的方法
    1. GET:請求指定的頁面信息,並返回實體主體
    2. HEAD:類似於GET請求,只不過返回的響應中沒有具體的內容,用於獲取報頭。
    3. POST:向指定資源提交數據進行處理請求(例如提交表單或者上傳文件)。
    4. PUT:從客戶端向服務器傳送的數據取代指定文檔的內容。
    5. DELETE:請求服務器刪除指定的頁面。
    6. OPTIONS:允許客戶端查看服務器的性能。TRACE:回顯服務器收到的請求,主要用於測試或診斷。
    例如

    nmap  -p 80  --script http-methods 192.168.30.34 
    
  2. 高級主機發現類腳本

    1. 腳本broadcast-ping.NSE
      這個broadcast-ping這個腳本是發現本地的活躍的主機,其實nmap也能實現,nmap是向每個ip發單播探針數據包來實現的
      broadcast-ping.nse腳本不同的是他是向本地網絡中所有的IP地址發送廣播包。

    2. 腳本targets-sniffer
      targets-sniffer腳本發現本地網絡中的所有主機
      腳本targets-sniffer的審計方法十分特殊,它會對你所在的網絡進行嗅探,發現網絡中的所有主機。這個腳本需要特權模式,也可以使用-e來執行網絡監聽的網卡設備,這個不需要指定目標他會檢查本地的ip,例如你所在的網絡IP地址爲192.168.0.0/24
      例如

       nmap --script targets-sniffer  -e eth0
      

      在這裏插入圖片描述

  3. 密碼審計類腳本

    1. 腳本mysql-brute.NSE
      在Nmap中有兩個數據文件,一個文件中包含一些常見的用戶名,另一個文件中包含有一些常見的密碼
      例如

      nmap -p 3306  --script mysql-brute  192.168.30.39 
      

      也可以加--packet-trace發送和收到的數據包

    2. 腳本smtp-brute.NSE
      這個腳本可以支持對SMTP密碼的暴力窮解,它支持LOGIN、PLAIN、CRAM-MD5、DIGEST-MD5和NTLM四種登錄方式。
      默認情況下,smtp-brute.NSE使用/usr/share/nmap/nselib/data/usernames.lst文件中的各項作爲用戶名,/usr/share/nmap/nselib/data/passwords.lst文件中的各項作爲密碼。
      例如

      nmap -p  25  --script   smtp-brute 192.168.30.39 
      

      如果想指定字典文件可以用下面的命令
      --script-args是用來指定參數的

      Nmap -p 25 --script smtp-brute --script-args userdb=用戶字典, passdb=密碼字典  192.168.30.39 
      

      2.1用戶模式
      這種模式先取一個用戶名,然後使用所有的密碼與其配對,所有組合都結束後,再開始下一個用戶名

      例如
      --script-args是用來指定參數的

      nmap --script smtp-brute --script-args brute.mode=指定的用戶名  192.168.30.39 
      

      2.2密碼模式
      這種模式先取一個密碼,然後使用所有的用戶名與其配對,當所有組合都結束後,再開始下一個密碼

      例如

      nmap --script smtp-brute --script-args brute.mode=指定的密碼  192.168.30.39 
      

      2.3文件格式取用戶密碼
      這種模式與前兩種不同,creds中所有的用戶名和密碼都寫在同一個文件中,格式類似於admin/123456這種形式,Nmap會讀取其中的每一行,然後訪問服務器進行匹配
      例如

      Nmap --script smtp-brute --script-args brute.mode=creds,brute.credfile=文件名   192.168.30.39 
      
  4. 漏洞掃描類腳本

    1. 腳本http-slowloris.NSE
      http-slowloris.NSE腳本查看目標是否存在預防slowloris的 DoS攻擊
      Slowloris是在2009年Web安全專家RSnake提出的一種攻擊方法,其原理是以極低的速度向服務器發送HTTP請求。由於Web Server對於併發的連接數都有一定的上限,導致拒絕服務
      例如
      --max-parallelism這些選項控制用於主機組的探測報文數量

      nmap -p 80 --script http-slowloris  --max-parallelism 300 192.168.30.39 
      

      這個方法是直接去打目標系統
      1.1http-slowloris.NSE腳本擴展http-slowloris.send_interval參數
      http-slowloris.send_interval參數可以指定發送http header datas的間隔,默認值爲100
      --script-args是用來指定參數的
      --max-parallelism這些選項控制用於主機組的探測報文數量
      例如

      Nmap -p 80 --script http-slowloris --script-args http-slowloris.send_interval=200 --max-parallelism 300   192.168.30.39 
      

      1.2http-slowloris.NSE腳本擴展http-slowloris.timelimit參數
      攻擊時間,默認是30分鐘
      --script-args是用來指定參數的

      15m就是15分鐘

      nmap -p 80 --script http-slowloris --script-args http-slowloris.timelimit=15m  192.168.30.39 
      

      1.3http-slowloris.NSE腳本擴展http-slowloris.runforever參數
      這個參數是對目標系統進行一直DoS攻擊
      --script-args是用來指定參數的

      Nmap -p 80 --script http-slowloris --script-args http-slowloris.runforever 192.168.30.39 
      

      還有一個名爲http-slowloris-check.NSE的腳本也是用來發送slowloris的,都是他只會發送2個請求
      例如

      nmap -p 80 --script http-slowloris-check 192.168.30.39 
      
    2. POODLE漏洞掃描ssl-poodle腳本
      POODLE漏洞(亦即CVE-2014-3566)最早是由谷歌團隊發現的,可以攻擊者可以盜取,已經使用了的SSL3.0數據進行解密
      需要攻擊者完全控制網絡的流量,比如ARP欺騙,釣魚wifi等等
      名爲ssl-poodle的腳本來檢查POODLE漏洞
      --version-all相當於--version-intensity 9 掃描強度

      nmap -sV --version-all --script ssl-poodle -p 443 192.168.30.39 
      

QQ2737977997

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章