iT邦幫忙

2024 iThome 鐵人賽

DAY 10
0
Security

腳本小子的滲透測試學習筆記系列 第 10

第10天:CEH第三章網路服務掃描(續)

  • 分享至 

  • xImage
  •  

OS 發現(橫幅抓取/作業系統指紋識別)

是攻擊者用來識別網絡中運行已知漏洞的應用程序和作業系統版本的方法。橫幅抓取分為兩種類型:主動和被動。

  • 主動橫幅抓取:特別製作的數據包被發送至遠程作業系統,並記錄響應結果。這些響應結果會與資料庫中的已知作業系統進行比對,從而確定目標作業系統。不同作業系統的響應由於 TCP/IP 堆疊實現的差異而不同。
  • 被動橫幅抓取:通過錯誤消息、網絡流量嗅探或頁面擴展名來進行作業系統判定。這些技術不需要向遠程系統發送特製的數據包,而是通過現有的錯誤信息或頁面擴展名來判斷應用程序的版本,例如 .aspx 表示 IIS 服務器和 Windows 平台

在識別目標系統作業系統的過程中,攻擊者可以通過分析 TCP 會話中第一個數據包的 IP 標頭中的 Time To Live (TTL)TCP 窗口大小 來確定目標機器所運行的作業系統。使用像 Wireshark 這樣的數據包嗅探工具捕捉來自目標機器的響應,並觀察 TTL 和 TCP 窗口大小字段,可以幫助攻擊者判斷系統所使用的作業系統類型。不同作業系統的 TTL 和 TCP 窗口大小值有所不同,表格中列出了各作業系統的標準值,例如 Linux、Windows、Cisco 路由器等。

這些數據可以幫助攻擊者更深入了解目標系統,從而制定適當的攻擊策略。

以下是不同作業系統的 Time To Live (TTL)TCP 窗口大小 的對應值:

Operating System Time To Live (TTL) TCP Window Size
Linux 64 5840
FreeBSD 64 65535
OpenBSD 255 16384
Windows 128 65,535 bytes to 1 GB
Cisco Routers 255 4128
Solaris 255 8760
AIX 255 16384

Tools:

使用 Wireshark 進行作業系統發現

來源:https://www.wireshark.org

為了識別目標作業系統,攻擊者可以使用像 Wireshark 這類的封包嗅探工具,攔截並捕捉目標機器對發起請求的機器所產生的回應。觀察攔截到的第一個 TCP 封包中的 TTL(存活時間)與 TCP 視窗大小欄位。透過將這些數值與參考表中的已知作業系統數值進行比較,可以確定產生回應的目標作業系統。這種方法提供了一種非侵入式的方式來對目標機器進行指紋識別。

https://ithelp.ithome.com.tw/upload/images/20240920/20153734XVp3K6OcVi.png

使用 Nmap 和 Unicornscan 進行作業系統發現

  1. Nmap
    它使用 TCP/IP 堆疊指紋來分析目標系統的反應,通過對回應封包中的 TTL、窗口大小、標誌等進行比較來推斷目標系統的作業系統版本。

    • Nmap 使用指令:這個指令會啟用 Nmap 的作業系統偵測功能,並嘗試通過分析網路封包的回應來識別目標系統。

      nmap -O <target IP>
      
  2. Unicornscan
    Unicornscan 是一款專門為進行大型網路掃描和資料收集而設計的工具。與 Nmap 類似,它也可以用來進行作業系統的發現。Unicornscan 的一大特色是它能夠非常快速地進行大範圍的掃描,並且針對不同協議(如 TCP、UDP 等)提供強大的偵測功能。

    • Unicornscan 使用指令:這個指令會使用 TCP 封包來掃描目標 IP,並根據目標的回應來推斷作業系統類型。

      unicornscan -mT -v <target IP>
      

使用 Nmap 腳本引擎進行作業系統發現

Nmap 的腳本引擎(Nmap Scripting Engine, NSE)允許用戶自動化各種網路任務,並透過編寫和共享腳本來完成特定操作。NSE 可以與 Nmap 的掃描並行運行,保持相同的效率和速度。攻擊者可以使用 NSE 中的各種腳本來對目標機器進行作業系統偵測。

在 Nmap 中使用 smb-os-discovery 腳本來發現作業系統資訊的範例:

nmap --script smb-os-discovery.nse 10.10.1.22

這個指令使用了 Nmap 的內建腳本 smb-os-discovery.nse 來對目標 IP 地址(例如 10.10.1.22)進行掃描,並通過 SMB 協定收集作業系統的相關資訊

IPv6 指紋辨識(IPv6 Fingerprinting)是另一種用來識別目標機器上運行的作業系統的技術。其功能與 IPv4 指紋辨識相似,例如發送探測訊號、等待並收集回應,然後將結果與指紋資料庫進行比對。IPv6 與 IPv4 指紋辨識的區別在於,IPv6 使用了多個額外的特定於 IPv6 的探測訊號,以及一個獨立的 IPv6 作業系統檢測引擎。

在 nmap 中,可以使用 -6 選項與 -O 選項結合進行 IPv6 指紋辨識作業系統的發現。

指令語法:

nmap -6 -O <target>

Scanning Beyond IDS and Firewall

入侵檢測系統(IDS)和防火牆是防止攻擊者存取網路的安全機制,但即使是 IDS 和防火牆也有一些安全限制。攻擊者會嘗試利用這些限制來發動攻擊。本節介紹了各種 IDS/防火牆的規避技術,例如封包碎片化、源路由、IP 地址偽裝等。

雖然防火牆和入侵檢測系統(IDS)可以防止惡意流量(封包)進入網路,但攻擊者可以使用以下技術發送預定的封包來繞過 IDS/防火牆並傳送到目標:

  1. 封包碎片化(Packet Fragmentation):將大的封包分割成小的碎片,使得防火牆或 IDS 無法完整檢查每個封包,從而繞過檢測。
nmap -sS -T4 -A -f -v [target]
  1. 源路由(Source Routing):攻擊者通過指定封包的路徑來繞過安全設備,這樣可以控制封包的傳送路徑,避開監控系統。
  2. 源端口操作(Source Port Manipulation):攻擊者修改封包的源端口,使其看起來像合法的流量,從而繞過防火牆規則或 IDS 檢測。
nmap -g 80 [target]
  1. IP 地址誘餌(IP Address Decoy):攻擊者使用多個虛假 IP 地址同時發起請求,混淆目標系統,從而掩蓋實際的攻擊來源。
nmap -D RND:10 [target]

nmap -D decoy1,decoy2,decoy3,...,ME,... [target]
  1. IP 地址偽裝(IP Address Spoofing):攻擊者偽造 IP 地址,使攻擊流量看起來像來自可信來源,從而繞過防火牆或 IDS 的檢測。
Hping3 www.certifiedhacker.com -a 7.7.7.7You 
  1. MAC 地址偽裝(MAC Address Spoofing):通過偽造網路介面卡的 MAC 地址,使攻擊流量繞過基於 MAC 地址的過濾或安全措施。

    nmap -sT -Pn --spoof-mac 0 [Target IP]
    
    nmap -sT -Pn --spoof-mac [Vendor] [Target IP] 
    
    nmap -sT -Pn --spoof-mac [new MAC] [Target IP]
    
  2. 創建自定義封包(Creating Custom Packets):攻擊者通過構建自定義的封包來操控封包的內容和格式,進一步逃避安全系統的檢測。

    使用封包建構工具來建立自定義封包進行掃描是一種攻擊者繞過防火牆的常用方法。攻擊者會使用各種封包建構工具,例如 Colasoft Packet Builder(https://www.colasoft.com)和 NetScanTools Pro(https://www.netscantools.com),來對超出防火牆的目標進行掃描。這些工具能夠使用不同的協議在不同的傳輸速率下生成並發送自定義封包流。

    Colasoft Packet Builder:
    來源:https://www.colasoft.com

    Colasoft Packet Builder 是一個允許攻擊者創建自定義網路封包的工具,並且幫助安全專業人員評估網路狀態。攻擊者可以從提供的範本中選擇 TCP 封包,並在解碼器、十六進制或 ASCII 編輯器中更改參數以創建封包。除了生成封包外,Colasoft Packet Builder 還支持將封包保存為封包文件,並將封包發送至網路。

    這些工具有助於進行深入的網路檢測和漏洞利用測試,特別是當攻擊者試圖繞過傳統的防禦機制時。

  3. 隨機化主機順序(Randomizing Host Order):攻擊者隨機排列掃描的目標主機順序,使得防火牆或 IDS 難以發現攻擊模式。

    nmap --randomize-hosts [Target IP]
    
  4. 發送錯誤的校驗和(Sending Bad Checksums):攻擊者發送包含錯誤校驗和的封包,使安全設備無法正確處理這些封包,從而繞過檢測。

    nmap --badsum [Target IP]
    
  5. 代理伺服器(Proxy Servers):攻擊者通過代理伺服器發送攻擊流量,以隱藏真實的 IP 地址和身份。

    工具: Proxy Switcher 、Cyber Ghost VPN、Shadowsocks

  6. 匿名化工具(Anonymizers):使用匿名化工具,讓攻擊流量經過多層中介伺服器或匿名網路,如 TOR,以掩蓋攻擊者的身份和來源。

    使用匿名器的原因:

    1. 保護隱私和匿名性
    2. 防範網絡攻擊
    3. 訪問受限內容
    4. 繞過IDS和防火牆規則
      工具:
      Whonix 是一個專為安全和隱私設計的桌面作業系統,旨在幫助用戶隱藏網絡活動並確保匿名性。

Ping Sweep 對策:

  1. 配置防火牆來即時檢測並防止 ping 掃描企圖。
  2. 使用入侵檢測系統 (IDS)入侵預防系統 (IPS)(如 Snort)來檢測和防止 ping 掃描企圖。
  3. 仔細評估 ICMP 流量,確保其在企業網路中的合理性。
  4. 終止與任何發送超過 10 次 ICMP ECHO 請求的主機的連線
  5. 使用DMZ 並允許只使用 ICMP ECHO_REPLY, HOST UNREACHABLE 和 TIME EXCEEDED 指令。
  6. 使用存取控制列表 (ACL) 來限制 ISP 的特定 IP 位址的 ICMP 流量。

Port Scanning 對策:

  1. 配置防火牆和 IDS 規則來檢測和阻止探測。
  2. 使用端口掃描工具對網路上的主機進行檢測,以確保防火牆正確識別端口掃描行為。
  3. 確保使用的路由和過濾機制不會被特定端口或來源路由方法繞過。
  4. 更新路由器、IDS 和防火牆韌體至最新版本。
  5. 使用自訂規則來鎖定網路並阻止防火牆中的未授權端口
  6. 過濾所有 ICMP 訊息,包括 ICMP 類型 3 不可達訊息和路由器中的 ICMP 類型。
  7. 執行TCP 和 UDP 掃描來檢查網路設定和可用端口。
  8. 確保已正確配置 反掃描反欺騙規則

Banner Grabbing 對策:

  1. 顯示假橫幅 (False Banners) 來誤導或欺騙攻擊者。
  2. 關閉不必要的服務,以減少資訊洩漏。
  3. 使用服務遮罩工具來禁用或更改橫幅資訊。
  4. 使用 Apache 的 mod_headers 模組來變更橫幅資訊。
  5. 隱藏網頁上的檔案擴展名以掩蓋網頁技術。
  6. 使用工具來替換應用程式映射,以掩蓋伺服器身份。

IP Spoofing 對策:

  1. 加密所有的網路流量
    使用加密的網路協議,如 IPsec、TLS、SSH 和 HTTPS,來保護所有網路流量。
  2. 使用多層防火牆
    提供多層次的保護,防止惡意流量進入網路。
  3. 不要依賴基於 IP 的身份驗證
    不應依賴僅基於 IP 位址的身份驗證機制,因為它容易被 IP Spoofing 攻擊繞過。
  4. 使用隨機的初始序號
    使用隨機的初始序列號來防止基於序列號欺騙的 IP Spoofing 攻擊。
  5. 入口過濾(Ingress Filtering):
    使用路由器和防火牆在網路邊界過濾傳入的封包,並確保這些封包來源於內部 IP 地址。
  6. 出口過濾(Egress Filtering):
    過濾所有來自本地的封包,確保這些封包使用有效的本地 IP 地址作為源地址,防止攻擊者從內部發起 IP Spoofing 攻擊。

網路檢測和回應工具

ExtraHop、Splunk


上一篇
第9天: CEH第三章網路服務掃描
下一篇
第11天:CEH第四章列舉技術
系列文
腳本小子的滲透測試學習筆記30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言