iT邦幫忙

2024 iThome 鐵人賽

DAY 9
0
Security

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

第9天: CEH第三章網路服務掃描

  • 分享至 

  • xImage
  •  
  • 網路掃描 是一組用於識別網路中主機、端口和服務的程序。
  • 網路掃描是情報收集的組成部分之一,攻擊者可以利用這些資訊來構建目標組織的概況。

網路掃描過程:

  • 攻擊者通過發送 TCP/IP 探測 來收集目標網路的相關資訊,如主機是否存在、端口是否開啟等。

網路掃描的目標:

  1. 發現活躍主機、IP 地址及開放端口。
  2. 發現操作系統和系統架構。
  3. 發現主機上運行的服務。
  4. 發現活躍主機中的漏洞。

掃描類型

  1. Port Scanning(端口掃描)
    • 功能:列出開放的端口和服務。端口掃描是通過發送一系列消息來檢查目標計算機上運行的服務,目的是檢測開放的 TCP 和 UDP 端口,判斷服務是否處於“監聽”狀態。這種狀態通常能夠提供操作系統和應用程式的資訊,有時甚至可能會揭示一些漏洞,允許未經授權的用戶進行錯誤配置或運行有漏洞的軟體。
  2. Network Scanning(網路掃描)
    • 功能:列出活躍的主機和 IP 地址。網路掃描的目的是識別網路上是否存在活躍的主機,這可用於攻擊它們或評估網路安全狀況。
  3. Vulnerability Scanning(漏洞掃描)
    • 功能:顯示已知漏洞的存在。漏洞掃描是一種識別系統是否易於被利用的方法,通過掃描引擎和漏洞目錄來運行。漏洞目錄包括已知漏洞的文件列表和常見的漏洞利用工具。漏洞掃描可以發現備份文件、目錄遍歷漏洞等。掃描引擎會分析這些請求,以確保伺服器的安全。

掃描的目的

  1. 發現活躍主機、IP 地址和開放端口
    • 使用開放端口,攻擊者可以找到進入系統的最佳途徑。
  2. 發現操作系統和系統架構(指紋識別)
    • 了解操作系統及其漏洞可以幫助攻擊者制定攻擊策略。
  3. 發現目標系統上運行/監聽的服務
    • 根據服務,攻擊者可以判斷出哪些漏洞可被利用來獲取系統訪問權限。
  4. 識別特定應用程式或服務版本
    • 攻擊者可以根據特定應用的漏洞,利用已知漏洞來攻擊系統。

TCP 通信標誌(Flags)

TCP 標頭包含各種標誌,用於控制 TCP 連接中數據的傳輸。六個 TCP 控制標誌負責主機之間的連接管理,並向系統提供指令。其中,四個標誌(SYNACKFINRST)管理連接的建立、維護和終止。另兩個標誌(PSHURG)向系統提供傳輸數據的特定指令。

TCP 通信標誌:

  1. Synchronize 或 “SYN”
    • 通知新序列號的傳輸。這個標誌通常代表兩個主機之間建立連接(即三次握手)。
  2. Acknowledgement 或 “ACK”
    • 確認數據的接收並識別下一個預期的序列號。當系統成功接收到一個數據包後,會將此標誌設為 “1”,表示接收者應注意該數據包。
  3. Push 或 “PSH”
    • 當設為 “1” 時,表示發送方已通知接收方應推送接收的數據,系統應立即告知接收應用程式有數據緩存。PSH 標誌通常在數據傳輸開始和結束時設置,並在文件的最後一個段上設置,以防止緩存死鎖。
  4. Urgent 或 “URG”
    • 指示系統應優先處理包裡的緊急數據,並停止其他數據處理。當設為 “1” 時,表示數據需要立即處理。
  5. Finish 或 “FIN”
    • 設為 “1” 表示不會再向遠程系統傳送任何數據,並終止由 SYN 標誌建立的連接。
  6. Reset 或 “RST”
    • 當當前連接出現錯誤時,此標誌設為 “1”,並中斷連接。攻擊者通常使用此標誌來掃描主機並識別開放端口。

SYN 掃描

SYN 掃描主要涉及三個標誌:SYNACKRST。攻擊者可以使用這些標誌來從伺服器中獲取不合法的資訊,特別是在進行枚舉攻擊時。


1. TCP 會話建立(Three-Way Handshake)

  • 三次握手 是建立 TCP 連接的過程:
    • 第一步:客戶端 Bill 向伺服器 Sheela 送出 SYN 標誌,詢問端口 21 是否開放(SEQ#10)。
    • 第二步:伺服器 Sheela 回應 SYN + ACK,確認願意建立連接,並回應新的序列號(ACK#11, SEQ#142)。
    • 第三步:客戶端 Bill 確認收到,並回應 ACK,完成握手(ACK#143, SEQ#11)。

2. TCP 會話終止(Session Termination)

  • TCP 會話終止 的過程涉及雙方確認數據傳輸完成:
    • 第一步:客戶端 Bill 發送 FIN 標誌,表示數據傳輸結束(SEQ#50)。
    • 第二步:伺服器 Sheela 回應 ACK,確認接收到請求(ACK#51, SEQ#170)。
    • 第三步:伺服器 Sheela 發送 FIN 標誌,表示已接收所有數據並準備關閉連接(SEQ#171)。
    • 第四步:客戶端 Bill 最後回應 ACK,確認連接終止(ACK#172, SEQ#51)。

簡短總結:

  • 三次握手 的流程用於建立 TCP 連接,確保雙方都準備好進行數據傳輸。
  • 四次握手 的流程用於終止連接,雙方確認所有數據已成功傳送並關閉連接。這兩個過程確保了 TCP 連接的可靠性和數據的完整性。

掃描工具

掃描工具用於掃描和識別目標網路上的活躍主機、開放端口、運行的服務、位置資訊、NetBIOS 資訊,以及所有開放的 TCP/IP 和 UDP 端口。這些工具收集的資訊有助於創建目標組織的概況,並掃描連接設備的開放端口。

Nmap

  • 來源: https://nmap.org
  • Nmap(Network Mapper) 是一款安全掃描工具,用於網路探索和滲透測試。Nmap 可以發現網路上的主機、端口和服務,並建立一張網路的"地圖"。它通過發送特別製作的數據包到目標主機,並分析響應來完成其任務。
  • Nmap 能夠掃描龐大的網路,處理成千上萬台機器,並且支持多種掃描機制,如 端口掃描(TCP 和 UDP)操作系統檢測版本檢測Ping 掃描 等。
  • 網路管理員和攻擊者都可以根據具體需求使用 Nmap:
    • 網路管理員:可以使用 Nmap 進行網路清單管理、服務升級計畫管理,或監控主機或服務的正常運行時間。
    • 攻擊者:則可以使用 Nmap 來提取有關網路的資訊,如活躍主機、開放端口、運行的服務(包括應用名稱和版本)、數據包過濾器/防火牆類型、MAC 資料以及操作系統和其版本資訊。

Nmap 範例命令:

# nmap <選項> <目標 IP 地址>

等等會著重介紹nmap

Hping3

來源: http://www.hping.org

Hping3 是一款面向命令行的網路掃描和數據包構建工具,專門針對 TCP/IP 協議設計。它支持 ICMP 請求,並支援 TCP、UDP、ICMP 和原始 IP 協議。這款工具主要用於網路安全審計、測試防火牆、手動 MTU 發現、高級 traceroute、遠程操作系統指紋識別、TCP/IP Stac審計等功能。

主要功能:

  • 自定義 TCP/IP 數據包:可發送定制數據包,並類似於 ping 程序顯示目標的回應。
  • 防火牆測試:可用於測試防火牆的規則集,並發現防火牆後的開放端口。
  • 操作系統指紋識別:攻擊者可以使用 Hping3 探測遠程系統的操作系統和版本資訊。
  • MTU 發現:手動發現 MTU 路徑,方便攻擊者進行後續攻擊。
  • TCP/IP Stack審計:審查 TCP/IP Stack,以找出系統的漏洞。

常用命令示例:

  1. ICMP ping

    
    hping3 -1 10.0.0.25
    
    

    使用此命令,Hping 將向 10.0.0.25 發送 ICMP 回應請求,類似於使用 ping 程序。

  2. ACK 掃描端口 80

    
    hping3 -A 10.0.0.25 -p 80
    
    

    此掃描技術可用於探測防火牆的存在及其規則集。如果找到活動主機並開放端口,會返回 RST 回應。

  3. UDP 掃描端口 80

    
    hping3 -2 10.0.0.25 -p 80
    
    

    使用 -2 選項,Hping 會進行 UDP 掃描。如果發現端口關閉,會返回 ICMP "端口不可達" 消息;如果端口開放,則不會有任何消息。

  4. TCP 序列號收集

    
    hping3 192.168.1.103 -Q -p 139
    
    

    這個命令收集 192.168.1.103 生成的 TCP 序列號,用於分析目標系統的 TCP 堆棧。

  5. SYN 掃描端口 50-60

    
    hping3 -8 50-60 -S 10.0.0.25 -V
    
    

    這個命令將對 10.0.0.25 進行 50-60 端口範圍內的 SYN 掃描。

  6. FIN、PUSH 和 URG 掃描端口 80

    
    hping3 -F -P -U 10.0.0.25 -p 80
    
    

    執行 FIN、PUSH 和 URG 掃描。若端口 80 開放,則無回應;若端口關閉,Hping 將返回 RST 回應。

  7. 掃描子網中的活躍主機

    
    hping3 -1 10.0.1.x --rand-dest -I eth0
    
    

    此命令隨機向 10.0.1.x 子網的所有主機發送 ICMP 回應請求,並檢查開放端口的主機。

  8. 截取所有包含 HTTP 簽名的流量

    
    hping3 -9 HTTP -I eth0
    
    

    Hping 進入監聽模式,攔截所有經過接口 eth0 並包含 HTTP 簽名的流量。

  9. SYN 洪水攻擊

    
    hping3 -S 192.168.1.1 -a 192.168.1.254 -p 22 --flood
    
    

    攻擊者使用 SYN 洪水技術,通過偽造的 IP 地址來執行 DoS 攻擊。

其他掃描工具

Metasploit 是滲透測試專業人員的主要工具之一,提供了強大的漏洞利用和自動化測試功能。NetScanTools Pro 則是調查和分析網路設備的工具,適合於網路管理員和攻擊者查找網路中的漏洞。這兩款工具在安全測試和網路監控中都具有重要作用。

手機掃描工具

  • IP Scanner
    • 來源: https://10base-t.com
    • 功能: IP Scanner 是一款 iOS 應用程式,用於掃描本地區域網路,識別所有活躍的設備。它允許攻擊者執行網路掃描活動,並進行 ping 和端口掃描。
  • Fing
    • 來源: https://www.fing.io
    • 功能: Fing 是一款適用於 Android 和 iOS 的應用程式,能夠掃描並提供完整的網路資訊,如 IP 地址、MAC 地址、設備供應商及 ISP 位置。它允許攻擊者發現連接到 Wi-Fi 網路的所有設備,並顯示它們的 IP 和 MAC 地址以及供應商名稱。此外,攻擊者還可以通過 Fing 進行網路 ping 和 traceroute 活動,並針對特定端口(如 SSH、FTP、NetBIOS 等)進行操作。
  • Network Scanner
    • 來源: https://play.google.com
    • 功能: Network Scanner 是一款 Android 應用程式,能夠識別網路中所有可能範圍內的活躍主機。它顯示設備的 IP 地址、MAC 地址、主機名稱以及供應商詳細資訊。此工具還允許攻擊者針對特定端口號進行端口掃描

主機發現掃描

主機發現 是網路掃描過程中收集網路上「活躍」並響應系統的資訊。這是進行完整掃描、識別開放端口和服務的第一步。透過檢查網路中的活躍系統,攻擊者可以避免對每個系統的每個端口進行逐一掃描,從而提高掃描效率。

主機發現可以提供網路中系統的準確狀態,有助於攻擊者進一步進行滲透測試。

主機發現技術

有多種 主機發現技術 可以用來發現網路中的活躍主機。以下列出了一些常見的主機發現技術:

  1. ARP Ping 掃描

    • 使用 ARP 請求/回應來檢查目標主機是否活躍。ARP Ping 掃描用於本地網路。
    • Nmap 命令:
    nmap -sn -PR <target>
    
  2. UDP Ping 掃描

    • 發送 UDP 數據包到目標端口,觀察是否有響應來判斷主機狀態。
    • Nmap 命令:
    nmap -sn -PU <target>
    
  3. ICMP Ping 掃描

    • 使用 ICMP 協議進行 Ping 請求。
    • ICMP ECHO Ping:標準的 ICMP 回應請求,用來檢測活躍主機。
    • Nmap 命令:
    nmap -sn -PE <target>
    
    • ICMP ECHO Ping Sweep:對網路進行 ICMP 掃描,檢測多個 IP 地址的活躍狀態。
    • Nmap 命令:
    nmap -sn -PE 10.10.1.5-24
    
    • ICMP Timestamp Ping:檢查時間戳,進一步分析主機回應。
    • Nmap 命令:
    nmap -sn -PP <target>
    
    • ICMP 地址掩碼 Ping:用來確定網路子網的掩碼。
    • Nmap 命令:
    nmap -sn -PM <target>
    
  4. TCP Ping 掃描

    • TCP SYN Ping:發送 TCP SYN 數據包來檢查主機端口是否開啟,這是進行三次握手的第一步。
    • Nmap 命令:
    nmap -PS <target>
    
    • TCP ACK Ping:發送 TCP ACK 數據包來測試目標是否存在防火牆,並檢查是否有回應。

    • Nmap 命令:

      nmap -PA <target>
      
  5. IP 協議掃描

    • 檢查各種 IP 協議的回應,以確認主機是否活躍。
    • Nmap 命令:
    nmap -PO <target>
    

組合使用:

  • Nmap 可以組合多種 Ping 掃描來提高效率。例如:

    nmap -PE -PS22,80 -PA80 <target>
    

埠與服務發現

在網路掃描過程中的下一步是檢查活躍系統中的開放端口和服務。這可以通過多種端口掃描技術來實現。網路管理員經常使用端口掃描技術來檢查其網路的安全政策,而攻擊者則用來識別主機上的開放端口和運行中的服務,從而試圖入侵網路。有時,使用者不小心將不必要的端口開放在他們的系統中,攻擊者可以利用這些開放端口發動攻擊。

常見端口和對應的服務

以下是一些常見的端口及其對應的服務:

  • Port 21: FTP (File Transfer Protocol)
  • Port 22: SSH (Secure Shell)
  • Port 23: Telnet
  • Port 25: SMTP (Simple Mail Transfer Protocol)
  • Port 53: DNS (Domain Name System)
  • Port 80: HTTP (HyperText Transfer Protocol)
  • Port 110: POP3 (Post Office Protocol v3)
  • Port 443: HTTPS (HyperText Transfer Protocol Secure)
  • Port 445: SMB (Server Message Block)
  • Port 3389: RDP (Remote Desktop Protocol)

以下是port scanning技術

掃描技術 Nmap 命令 請求 回應 優點 缺點
TCP 完全開放掃描 nmap -sT -v <目標 IP 地址> SYN 數據包 SYN+ACK 數據包回應 - 端口開啟 RST 數據包回應 - 端口關閉 不需要超級用戶權限 容易被檢測和過濾,目標系統日誌會暴露連接
Stealth 掃描 nmap -sS -v <目標 IP 地址> 單一 SYN 數據包 SYN+ACK 數據包回應 - 端口開啟 RST 數據包回應 - 端口關閉 避開防火牆規則和日誌機制
逆向 TCP 標誌掃描 nmap -sF, -sN, -sX -v <目標 IP 地址> 探測數據包 (FIN/URG/PSH/NULL) 無回應 - 端口開啟 RST 數據包回應 - 端口關閉 避開許多 IDS 和日誌系統,高度隱蔽 需要網路套接字的原始訪問權限和超級用戶權限,不適用於 Windows 主機
Xmas 掃描 nmap -sX -v <目標 IP 地址> 探測數據包 (FIN + URG + PSH) 無回應 - 端口開啟 RST 數據包回應 - 端口關閉 避開 IDS 和 TCP 三次握手 僅適用於符合 RFC 793 的系統,僅適用於 Unix 平台,不適用於新版本的 Windows
FIN 掃描 nmap -sF -v <目標 IP 地址> 探測數據包 (FIN) 無回應 - 端口開啟,RST 數據包回應 - 端口關閉 可以避開許多 IDS 和日誌系統,高度隱蔽 僅在 Unix 系統上有效,對 Microsoft Windows 無效
NULL 掃描 nmap -sN -v <目標 IP 地址> 探測數據包 (NULL) 無回應 - 端口開啟,RST 數據包回應 - 端口關閉 可以通過檢查 TCP 標誌避免過濾系統檢測 僅在 Unix 系統上有效,對 Microsoft Windows 無效
TCP Maimon 掃描 nmap -sM -v <目標 IP 地址> 探測數據包 (FIN/ACK) ICMP 不可達錯誤回應 - 端口過濾,RST 回應 - 端口關閉 對防火牆無法檢測的系統有效 僅在符合 RFC 793 的系統上有效
ACK 標誌探測掃描 nmap -sA -v <目標 IP 地址> ACK 探測數據包 無回應 - 端口過濾 (狀態防火牆存在),RST 回應 - 端口無防火牆 避免 IDS,檢查目標網絡的過濾系統 執行速度慢,僅對某些 BSD 派生的系統有效
TTL 基於 ACK 探測 nmap -sA --ttl 100 -v <目標 IP 地址> 多個 TCP 端口上的 ACK 探測數據包 RST 回應 - 端口開啟 (TTL 值 < 64),端口關閉 (TTL 值 > 64) 幫助檢查過濾系統 非常慢,適用於特定系統
Window 基於 ACK 掃描 nmap -sA --sW -v <目標 IP 地址> ACK 探測數據包 RST 回應 - 端口開啟 (WINDOW 值非零),ICMP 錯誤 - 端口過濾 有效檢測過濾系統 需要存取原始套接字
IDLE/IPID 標頭掃描 nmap -Pn -p -sI <僵屍主機名> SYN 探測數據包 SYN+ACK 回應 - 端口開啟,RST 回應 - 端口關閉 完全隱蔽掃描遠程主機 需要識別僵屍主機的序列號
UDP 掃描 nmap -sU -v <目標 IP 地址> UDP 探測數據包 無回應 - 端口開啟,ICMP 不可達錯誤回應 - 端口關閉 無 TCP 握手開銷,適用於 Windows 系統 執行速度慢,無法區分關閉端口與過濾端口
SCTP INIT 掃描 nmap -sY -v <目標 IP 地址> INIT 探測數據包 INIT+ACK 回應 - 端口開啟,ABORT 回應 - 端口關閉 能快速檢測成千上萬個端口 無法區分開啟和過濾的端口
SCTP COOKIE ECHO 掃描 nmap -sZ -v <目標 IP 地址> COOKIE ECHO 探測數據包 無回應 - 端口開啟,ABORT 回應 - 端口關閉 能檢測隱蔽防火牆規則集 僅在啟用 SCTP COOKIE 的系統上有效

今天就先到這裡,明天會把OS Discovery然後怎麼避開防火牆跟IDS記完,這nmap掃描如果要細講可以變成一本書了,
推薦一本陳明照老師出的書,HyRead有電子版可以買

https://ithelp.ithome.com.tw/upload/images/20240919/20153734fiHSKUPUgf.png

裡面真的把nmap當成一門學科在說,看完受益良多


上一篇
第8天: 足跡和偵察Lab
下一篇
第10天:CEH第三章網路服務掃描(續)
系列文
腳本小子的滲透測試學習筆記16
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言