記學習滲透測試之掃描埠

working發表於2021-11-09
  • ping掃描用於檢查存活系統
  • 埠掃描是針對個體IP地址進行的掃描,該掃描試圖識別某個特定系統上開啟和關閉的埠,利用埠進行後續的測試
  • 漏洞掃描尋找環境中的弱點或問題,並基於掃描的結果生成報告
    上述每種掃描方法均可有效的單獨使用,但只有結合運用時,才能真正令他們發揮各自的強大功能,每種掃描型別都是拼圖的一個碎片,可將它們拼接在一起,獲得整體目標的較清晰地檢視,後續的攻擊和行動就會更準確

    檢查存活系統

    使用ping命令檢查系統是否處於活動狀態。(系統命令列操作)

    ping <目標IP> 或 ping<目標主機名(域名)>
    注:DNS可能關閉從而不允許主機按名稱解析,但IP卻仍然可以。

    ping當然是一個很棒的工具,對多個主機來說的話ping就略顯笨拙,要快速方便地ping多個系統時可以藉助兩個工具Angrynmap

  • Angry IP Scanner
    記學習滲透測試之掃描和列舉
  • nmap視覺化介面
    記學習滲透測試之掃描和列舉
  • nmap通過命令列執行ping操作(nmap有圖形化zenmap介面,但部分功能需要藉助命令列)
    Nmap -sP IP地址(例:192.168.0.1)或主機範圍(例:192.168.0.1-255
    注:命令大小寫敏感,需要嚴格按原樣輸出,該命令也可用於Linux、Unix以及Mac OS系統上。

    執行埠掃描

    埠掃描之前我們來了解一下不同的TCP標誌位

記學習滲透測試之掃描和列舉

  • 有131070個埠可供應用程式和服務使用,但實際上TCP和UDP各有65535個埠。TCP與UDP協議不在此贅述,有需要請自行百度

    全開掃描(埠掃描)

  • 使用全開連線的好處是,在掃描過程中能夠立即獲得該埠開啟或者關閉狀態的正反饋,但全開掃描有一個缺點,那就是易於被探測到。(使用namp命令列)
    nmap -sT -v <目標IP地址>

    隱蔽掃描(半開掃描)

  • 全開掃描使用三次握手,而半開掃描僅進行前兩步,最後一步只傳送一個RST包,連線沒有完全建立就關閉了。
  • 半開掃描的優點是降低了觸發檢測機制的可能性;缺點是與全開掃描相比可靠性略有不及,半開掃描另一個缺點是某些情況下會略慢,不過這一影響通常很小。
    nmap -sS -v <目標IP地址>

    聖誕樹掃描

  • 傳送客戶端的資料包同時設定了SYN、PSH、URG、FIN等標誌位,掃描過程如圖所示。

記學習滲透測試之掃描和列舉

nmap -sX -v <目標IP地址>

FIN掃描

  • 這一行為的結果是,如果埠是關閉的,則目標系統不會返回響應,但如果埠是開啟的,則會返回一個RST包。掃描過程如圖所示。
    記學習滲透測試之掃描和列舉
    Nmap -sF <目標IP地址> 

    NULL掃描

  • NULL掃描另一種有趣的掃描,它與聖誕樹掃描正好相反。執行NULL掃描時,傳送一個未設定任何標誌的資料包,可根據返回結果判斷埠是開啟的還是關閉的。開啟的埠將不會返回響應,關閉的埠將同樣返回一個RST包。掃描過程如圖所示。
    記學習滲透測試之掃描和列舉
    nmap -sN <目標IP地址>

    ACK掃描

  • ACK掃描用於測試是否存在防火牆形勢的過濾器。防火牆會對流量進行過濾。如果這個發給掃描目標的ACK請求沒有返回響應,說明防火牆存在且正在進行過濾;而收到的掃描目標返回的RST包則說明沒有進行過濾。掃描過程如圖所示。
    記學習滲透測試之掃描和列舉
    nmap -sA <目標IP地址>

    分段掃描

  • 說到防火牆和其他防禦機制,怎樣才能避開或騙過這些裝置呢?使用資料包分段即為方法之一。分段將一個資料包分解成多個片段,防止監測裝置發現原始的未分段資料包的意圖。可將其想象成一副大圖畫切分成許多小塊的拼圖玩具,如果預先不知道原始圖畫的模樣,那就只是一堆碎片,必須重新做裝起來才能看到圖畫。分段操作的示意圖如圖所示。
    記學習滲透測試之掃描和列舉
    注:最大傳輸單元(MTU)是指將資料包分段之前所能達到的最大尺寸。乙太網的MTU是150,當網路裝置遇到大於MTU的資料包時,將可能有兩種輸出。
  • 如果該資料包設定了“不分段”標誌位,裝置將丟棄資料包並回復錯誤資訊。
  • 如果該資料包未設定“不分段”標誌位,裝置將把資料包分成相同但較小的分段,以適應鏈路對MTU的要求。

    現在介紹如何獲得主機間鏈路的MTU,此處以WEB站點為例。下面的示例中將測試到samus.com的MTU。要實現該目標,需要使用帶-f和-l開關的ping命令,前者表示不分段,後者用於指定資料包大小。

  • 按照一般方式ping的話,將看到如下結果
    記學習滲透測試之掃描和列舉
    以上是常規輸出,如果想確定MTU該怎麼做?在Windows命令提示符中,輸入以下命令並按回車:
    ping -f -l 1472 www.baidu.com
  • 通常,該操作會返回一條資訊,表明資料包需要被分段。此時,將值1472減去一定值再進行操作,找到兩個資料,一個不會返回需要拆分的值+1後另一個會返回需要拆分,那麼這個不會返回需要拆分的值就是最大MTU
    記學習滲透測試之掃描和列舉
  • 獲取了該數值以後,將其加上28即為無需分段的最大MTU尺寸。如果在埠掃描時建立的資料包尺寸大於該值,就需要對該資料包分段。加上的28是TCP/IP協議在資料包中附加的28個位元組,因此如果之前測得的值是1472,加上28後就將重現1500位元組
  • 在nmap中,如果要對資料包分段,可使用-f開關,方法如下
    nmap -sS -f <目標IP地址>

    UDP掃描

  • 之前的掃描均以TCP為例且僅適用TCP協議,UDP協議就需要改變思路和方法了,UDP在流量傳送出去以後就假定他已被接收到。,由於UDP沒有標誌位和響應,UDP必須採用不同的方法
  • 埠開啟->無響應
  • 埠關閉->返回ICMP埠不可訪問訊息
本作品採用《CC 協議》,轉載必須註明作者和本文連結
給我個介面,我能連通一個世界!

相關文章