--- title: Wireshark常用搜尋命令與滲透分析指南 description: 詳細介紹Wireshark中的常用搜尋命令與過濾技巧,尤其是在分析網絡入侵和惡意流量時的應用 image: https://www.wireshark.org/assets/theme-2015/images/wireshark_logo.png tags: wireshark, 網絡安全, 滲透測試, 封包分析, 資安 robots: index, follow lang: zh-tw --- # Wireshark常用搜尋命令與滲透分析指南 :mag_right: :shield: Wireshark是一款功能強大的網絡封包分析工具,在網絡安全領域被廣泛應用於滲透測試、攻擊分析和事件響應。本文將詳細介紹Wireshark中的常用搜尋命令,特別是在分析可能的網絡入侵和惡意流量時的應用場景。 [TOC] ## 目錄 1. [基本操作與界面介紹](#基本操作與界面介紹) 2. [常用顯示過濾器命令](#常用顯示過濾器命令) 3. [網絡滲透分析場景](#網絡滲透分析場景) 4. [惡意流量識別技巧](#惡意流量識別技巧) 5. [隱蔽通道與C2通信檢測](#隱蔽通道與C2通信檢測) 6. [常見攻擊模式分析](#常見攻擊模式分析) 7. [實戰案例](#實戰案例) 8. [進階技巧與自動化分析](#進階技巧與自動化分析) ## 基本操作與界面介紹 :desktop_computer: Wireshark的界面主要分為以下幾個部分: 1. **顯示過濾器(Display Filter)** - 用於設置過濾條件進行數據包列表過濾,位於工具欄下方。 2. **數據包列表(Packet List Pane)** - 顯示捕獲的所有數據包,每行代表一個數據包。 3. **數據包詳細信息(Packet Details Pane)** - 顯示當前選定數據包的詳細協議信息。 4. **數據包字節視圖(Packet Bytes Pane)** - 以十六進制和ASCII格式顯示數據包的原始內容。 :::info :bulb: **小提示:** Wireshark 介面可以透過 View 選單自定義,根據分析需求調整各面板大小或顯示/隱藏特定面板。 ::: ![Wireshark界面](https://www.wireshark.org/docs/wsug_html_chunked/wsug_graphics/ws-main.png) ### 搜尋功能 :key: Wireshark具備強大的搜尋功能,可以通過以下方式快速定位重要信息: - **快捷鍵 Ctrl+F** - 彈出搜尋對話框,支持多種搜尋模式: - **Display Filter** - 使用顯示過濾器語法搜尋 - **Hex Value** - 搜尋十六進制字節值 - **String** - 字符串搜尋 - **Packet list** - 搜尋數據包列表中的內容 - **Packet details** - 搜尋數據包詳細信息 - **Packet bytes** - 搜尋數據包原始字節 :::warning :zap: **注意:** 搜尋大型捕獲文件時可能需要較長時間,建議先使用顯示過濾器縮小搜尋範圍,再進行具體搜尋。 ::: ## 常用顯示過濾器命令 :wrench: 在分析疑似網絡滲透的流量時,以下過濾器命令將非常有用: ### IP地址過濾 ```wireshark # 過濾特定IP ip.addr == x.x.x.x # 源或目標IP為指定地址 ip.src == x.x.x.x # 源IP為指定地址 ip.dst == x.x.x.x # 目標IP為指定地址 # 排除特定IP !(ip.addr == x.x.x.x) # 排除指定IP # 過濾IP範圍 ip.addr >= 192.168.1.1 and ip.addr <= 192.168.1.10 ``` ### 協議過濾 ```wireshark # 基本協議過濾 http # HTTP協議 https # HTTPS協議 dns # DNS協議 tcp # TCP協議 udp # UDP協議 icmp # ICMP協議 arp # ARP協議 ssl # SSL/TLS協議 # 協議組合 http or dns # HTTP或DNS流量 ``` ### 端口過濾 ```wireshark # 端口過濾 tcp.port == 80 # TCP端口80(HTTP) tcp.port == 443 # TCP端口443(HTTPS) tcp.port == 22 # TCP端口22(SSH) tcp.port == 21 # TCP端口21(FTP) udp.port == 53 # UDP端口53(DNS) tcp.port == 4444 # 常見的反向shell端口 # 非標準端口(可能是後門) !(tcp.port in {80 443 20 21 22 25 110 143 993 995 3389}) and tcp.flags.syn == 1 ``` ### 組合過濾 ```wireshark # IP與端口組合 ip.addr == x.x.x.x && tcp.port == 80 tcp.port == 80 || udp.port == 53 # 複雜邏輯 (ip.src == x.x.x.x and tcp.dstport == 80) or (ip.dst == x.x.x.x and tcp.srcport == 80) ``` :::success :tada: **技巧:** 在 Wireshark 顯示過濾器欄位中輸入時,語法正確的過濾條件背景會變成綠色,有語法錯誤則會變成紅色。 ::: ## 網絡滲透分析場景 在分析可能的網絡滲透案例時,以下場景與過濾器命令組合尤為重要: ### 1. 掃描活動檢測 ```wireshark # 端口掃描(大量SYN包) tcp.flags.syn == 1 and tcp.flags.ack == 0 # 主機發送大量SYN包(可能是掃描器) tcp.flags.syn == 1 and tcp.flags.ack == 0 and ip.src == x.x.x.x # ICMP掃描 icmp.type == 8 # ICMP Echo請求(Ping掃描) ``` #### 掃描活動檢測示意圖 ```sequence 攻擊者->目標主機A: SYN (端口 80) 攻擊者->目標主機A: SYN (端口 443) 攻擊者->目標主機A: SYN (端口 22) 攻擊者->目標主機B: SYN (端口 80) 攻擊者->目標主機B: SYN (端口 443) Note right of 目標主機B: 典型端口掃描模式 ``` ### 2. 暴力破解檢測 ```wireshark # SSH暴力破解 tcp.port == 22 and tcp.flags.syn == 1 # HTTP基本認證(登錄嘗試) http.authbasic # HTTP POST登錄嘗試 http.request.method == "POST" and http.request.uri contains "login" ``` :::danger :fire: **重要警示:** 在實際環境中,暴力破解攻擊常常會在短時間內產生大量失敗的認證嘗試,應設置閾值監控異常認證行為。 ::: ### 3. 漏洞利用檢測 ```wireshark # SQL注入嘗試 http.request.uri contains "'" or http.request.uri contains "%27" http.request.uri contains "union select" or http.request.uri contains "UNION SELECT" # 命令注入嘗試 http.request.uri contains ";" or http.request.uri contains "|" or http.request.uri contains "`" # XSS嘗試 http.request.uri contains "<script>" or http.request.uri contains "%3Cscript%3E" ``` ## 惡意流量識別技巧 :mag: 當系統已經被滲透時,以下過濾技巧可幫助識別惡意流量: ### 1. 數據外洩檢測 ```wireshark # 敏感數據檢測(例如信用卡號) frame contains "4[0-9]{15}" or frame contains "5[1-5][0-9]{14}" # 信用卡號格式 # 大量數據傳輸(可能是數據外洩) tcp.len > 1000 and ip.dst == x.x.x.x ``` ### 2. 異常連接檢測 ```wireshark # 非標準或罕見端口通信 tcp.port not in {80 443 22 25 110 143 53 123 20 21} and tcp.flags.syn == 1 # 持續時間異常長的連接 tcp.time_delta > 300 # 持續超過5分鐘的TCP連接 ``` ### 3. 流量統計與分析 Wireshark提供多種統計工具,有助於識別異常流量: - **Conversations** - 統計所有通信IP地址對,分析路徑:Statistics → Conversations - **Protocol Hierarchy** - 檢查協議分布,分析路徑:Statistics → Protocol Hierarchy - **I/O Graph** - 流量時間分布圖,可識別異常流量峰值,分析路徑:Statistics → I/O Graph :::info :chart_with_upwards_trend: **分析提示:** 在 I/O Graph 中,可以添加多個過濾條件並以不同顏色顯示,以便比較不同類型流量的時間分布特徵。 ::: ## 隱蔽通道與C2通信檢測 :eye: 攻擊者通常使用隱蔽通道維持對被入侵系統的控制,以下過濾器命令可幫助發現這些隱蔽通道: ### 1. DNS隧道檢測 DNS隧道是最常見的隱蔽通道之一,攻擊者利用DNS請求和響應傳輸數據。 ```wireshark # 長度異常的DNS查詢 dns.qry.name.len > 50 # 高熵(隨機性)的DNS查詢名 dns.qry.name contains "base64" or dns.qry.name contains "enc" # 子域名過多或異常的DNS查詢 dns.qry.name matches ".*\..*\..*\..*\..*\..*\..*" # TXT記錄請求(常用於數據外洩) dns.qry.type == 16 # TXT記錄類型 ``` #### DNS隧道檢測流程圖 ```flow st=>start: 捕獲DNS流量 op1=>operation: 過濾長度超過50的查詢 op2=>operation: 檢查高熵值或隨機性域名 cond=>condition: 是否有異常? op3=>operation: 深入分析可疑DNS流量 e=>end: 完成分析 st->op1->op2->cond cond(yes)->op3->e cond(no)->e ``` ### 2. ICMP隧道檢測 ```wireshark # 異常大小的ICMP數據包 icmp.type == 8 and frame.len > 100 # ICMP Echo請求中包含異常數據 icmp.type == 8 and data.data contains "cmd" ``` ### 3. HTTP/HTTPS隱蔽通道 ```wireshark # 異常的User-Agent http.user_agent contains "Python" or http.user_agent contains "curl" or http.user_agent contains "wget" # 非標準HTTP請求頻率 http.request and !(http.request.uri contains ".jpg" or http.request.uri contains ".png" or http.request.uri contains ".css" or http.request.uri contains ".js") # 檢測可疑Beaconing行為(規律性請求) http.request.method == "GET" and http.request.uri matches ".*\?id=.*" ``` :::warning :zap: **C2檢測要點:** 命令與控制(C2)通信通常具有定期的通信模式(beaconing),監控具有規律時間間隔的網絡請求尤為重要。 ::: ## 常見攻擊模式分析 :bookmark_tabs: ### 1. 橫向移動檢測 當攻擊者在網絡中橫向移動時,可能會留下以下痕跡: ```wireshark # SMB連接(常用於內網橫向移動) smb or smb2 # RDP連接 tcp.port == 3389 # PowerShell遠程執行 http.request.uri contains "powershell" ``` ### 2. 數據抹除與反取證操作 ```wireshark # 大量刪除操作 smb2.cmd == 16 # SMB删除文件命令 ``` ### 3. Webshell活動 ```wireshark # 可疑文件上傳 http.request.method == "POST" and (http.request.uri contains ".php" or http.request.uri contains ".jsp" or http.request.uri contains ".asp") # 可疑命令執行 http.request.uri contains "cmd" or http.request.uri contains "exec" or http.request.uri contains "system" ``` ## 實戰案例 :computer: ### 案例1: 檢測網絡掃描和初始入侵 在一個實際案例中,安全團隊使用Wireshark分析流量,發現了以下可疑活動: 1. 首先使用以下過濾器發現掃描活動: ```wireshark tcp.flags.syn == 1 and tcp.flags.ack == 0 and ip.src == 10.10.10.15 ``` 2. 然後發現對Web伺服器的漏洞利用嘗試: ```wireshark http.request.method == "GET" and http.request.uri contains "wp-content/plugins" ``` 3. 最後檢測到成功的漏洞利用和Webshell上傳: ```wireshark http.request.method == "POST" and http.request.uri contains "upload.php" ``` :::spoiler 案例1分析詳情 在這個案例中,攻擊者首先進行了網絡掃描尋找目標系統,利用WordPress插件漏洞進行了初始入侵,最終上傳了Webshell獲取持久訪問權限。這是典型的攻擊鏈模式,從掃描、漏洞利用到權限維持。 通過 Follow TCP Stream 功能,分析師可以看到完整的攻擊過程,包括漏洞利用代碼和上傳的Webshell內容。 ::: ### 案例2: 檢測數據外洩 在另一個案例中,分析師使用以下過濾器檢測可能的數據外洩: 1. 首先查看與可疑外部IP的所有通信: ```wireshark ip.addr == 203.0.113.25 ``` 2. 檢查是否存在大量數據傳輸: ```wireshark ip.dst == 203.0.113.25 and tcp.len > 1000 ``` 3. 使用Follow TCP Stream功能分析通信內容,發現加密的敏感數據正被傳輸到外部服務器。 ## 進階技巧與自動化分析 :gear: ### 1. 使用tshark進行大規模分析 Wireshark的命令行版本tshark能夠處理大型PCAP文件,並支持脚本化分析: ```bash # 提取所有HTTP請求 tshark -r capture.pcap -Y "http.request" -T fields -e http.host -e http.request.uri # 提取所有DNS查詢 tshark -r capture.pcap -Y "dns.qry.name" -T fields -e dns.qry.name # 檢測SSH暴力破解 tshark -r capture.pcap -Y "tcp.port==22 and tcp.flags.syn==1" -T fields -e ip.src | sort | uniq -c | sort -nr ``` ### 2. 使用Display Filter Expression按鈕 Wireshark提供了一個顯示過濾器表達式按鈕,可以幫助構建複雜的過濾條件: - 點擊過濾欄位旁邊的Expression按鈕 - 選擇相應的協議和欄位 - 設置匹配條件和值 ### 3. 使用顏色規則標記可疑流量 Wireshark允許設置顏色規則來突出顯示特定流量: - 選擇View → Coloring Rules - 添加新規則,例如: - 名稱:"可疑DNS隧道" - 過濾器:"dns.qry.name.len > 50" - 顏色:鮮紅色 :::info :bulb: **自動化分析提示:** 使用 Wireshark 的 Lua 腳本功能可以編寫自定義檢測規則。專業安全團隊可開發專用腳本進行自動化威脅檢測。 ::: ### 4. 常用分析清單 在進行安全事件調查時,此清單可作為參考步驟: - [ ] 過濾異常協議流量 - [ ] 檢查非標準端口通信 - [ ] 分析可疑域名和IP連接 - [ ] 檢測異常大小的數據包 - [ ] 尋找規律性通信模式(beaconing) - [ ] 使用Follow Stream分析完整會話內容 - [ ] 檢查敏感數據傳輸模式 - [ ] 生成流量統計報告 - [ ] 提取可疑樣本進行深入分析 ## 結論 :checkered_flag: Wireshark是網絡安全分析的必備工具,特別是在對疑似被滲透系統進行調查時。掌握本文介紹的常用搜尋命令和過濾技巧,將大大提高您分析網絡流量和檢測惡意活動的能力。在實際應用中,建議將這些命令與其他安全工具結合使用,形成完整的安全監控和分析體系。 :::success :tada: **重要結語:** 網絡流量分析是一項需要持續學習和實踐的技能。建議安全分析師定期更新知識,了解最新的攻擊技術和對應的檢測方法。 ::: ## 參考資源 :books: 1. Wireshark官方文檔: [https://www.wireshark.org/docs/](https://www.wireshark.org/docs/) 2. Wireshark顯示過濾器參考: [https://www.wireshark.org/docs/dfref/](https://www.wireshark.org/docs/dfref/) 3. 網絡安全流量分析最佳實踐: [https://www.sans.org/reading-room/whitepapers/detection/](https://www.sans.org/reading-room/whitepapers/detection/) 4. MITRE ATT&CK 框架: [https://attack.mitre.org/](https://attack.mitre.org/) --- ###### tags: `wireshark` `網絡安全` `滲透測試` `封包分析` `資安` `網絡分析`