Wireshark常用搜尋命令與滲透分析指南
Wireshark常用搜尋命令與滲透分析指南 :mag_right: :shield:
Wireshark是一款功能強大的網絡封包分析工具,在網絡安全領域被廣泛應用於滲透測試、攻擊分析和事件響應。本文將詳細介紹Wireshark中的常用搜尋命令,特別是在分析可能的網絡入侵和惡意流量時的應用場景。
目錄
基本操作與界面介紹 :desktop_computer:
Wireshark的界面主要分為以下幾個部分:
- 顯示過濾器(Display Filter) - 用於設置過濾條件進行數據包列表過濾,位於工具欄下方。
- 數據包列表(Packet List Pane) - 顯示捕獲的所有數據包,每行代表一個數據包。
- 數據包詳細信息(Packet Details Pane) - 顯示當前選定數據包的詳細協議信息。
- 數據包字節視圖(Packet Bytes Pane) - 以十六進制和ASCII格式顯示數據包的原始內容。
:bulb: 小提示: Wireshark 介面可以透過 View 選單自定義,根據分析需求調整各面板大小或顯示/隱藏特定面板。
搜尋功能 :key:
Wireshark具備強大的搜尋功能,可以通過以下方式快速定位重要信息:
- 快捷鍵 Ctrl+F - 彈出搜尋對話框,支持多種搜尋模式:
- Display Filter - 使用顯示過濾器語法搜尋
- Hex Value - 搜尋十六進制字節值
- String - 字符串搜尋
- Packet list - 搜尋數據包列表中的內容
- Packet details - 搜尋數據包詳細信息
- Packet bytes - 搜尋數據包原始字節
:zap: 注意: 搜尋大型捕獲文件時可能需要較長時間,建議先使用顯示過濾器縮小搜尋範圍,再進行具體搜尋。
在分析疑似網絡滲透的流量時,以下過濾器命令將非常有用:
IP地址過濾
# 過濾特定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
協議過濾
# 基本協議過濾
http # HTTP協議
https # HTTPS協議
dns # DNS協議
tcp # TCP協議
udp # UDP協議
icmp # ICMP協議
arp # ARP協議
ssl # SSL/TLS協議
# 協議組合
http or dns # HTTP或DNS流量
端口過濾
# 端口過濾
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
組合過濾
# IP與端口組合
ip.addr <mark> x.x.x.x && tcp.port </mark> 80
tcp.port <mark> 80 || udp.port </mark> 53
# 複雜邏輯
(ip.src <mark> x.x.x.x and tcp.dstport </mark> 80) or (ip.dst <mark> x.x.x.x and tcp.srcport </mark> 80)
:tada: 技巧: 在 Wireshark 顯示過濾器欄位中輸入時,語法正確的過濾條件背景會變成綠色,有語法錯誤則會變成紅色。
在分析可能的網絡滲透案例時,以下場景與過濾器命令組合尤為重要:
1. 掃描活動檢測
# 端口掃描(大量SYN包)
tcp.flags.syn <mark> 1 and tcp.flags.ack </mark> 0
# 主機發送大量SYN包(可能是掃描器)
tcp.flags.syn <mark> 1 and tcp.flags.ack </mark> 0 and ip.src == x.x.x.x
# ICMP掃描
icmp.type == 8 # ICMP Echo請求(Ping掃描)
掃描活動檢測示意圖
攻擊者->目標主機A: SYN (端口 80)
攻擊者->目標主機A: SYN (端口 443)
攻擊者->目標主機A: SYN (端口 22)
攻擊者->目標主機B: SYN (端口 80)
攻擊者->目標主機B: SYN (端口 443)
Note right of 目標主機B: 典型端口掃描模式
2. 暴力破解檢測
# SSH暴力破解
tcp.port <mark> 22 and tcp.flags.syn </mark> 1
# HTTP基本認證(登錄嘗試)
http.authbasic
# HTTP POST登錄嘗試
http.request.method == "POST" and http.request.uri contains "login"
:fire: 重要警示: 在實際環境中,暴力破解攻擊常常會在短時間內產生大量失敗的認證嘗試,應設置閾值監控異常認證行為。
# 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. 數據外洩檢測
# 敏感數據檢測(例如信用卡號)
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. 異常連接檢測
# 非標準或罕見端口通信
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
:chart_with_upwards_trend: 分析提示: 在 I/O Graph 中,可以添加多個過濾條件並以不同顏色顯示,以便比較不同類型流量的時間分布特徵。
攻擊者通常使用隱蔽通道維持對被入侵系統的控制,以下過濾器命令可幫助發現這些隱蔽通道:
1. DNS隧道檢測
DNS隧道是最常見的隱蔽通道之一,攻擊者利用DNS請求和響應傳輸數據。
# 長度異常的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隧道檢測流程圖
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隧道檢測
# 異常大小的ICMP數據包
icmp.type == 8 and frame.len > 100
# ICMP Echo請求中包含異常數據
icmp.type == 8 and data.data contains "cmd"
3. HTTP/HTTPS隱蔽通道
# 異常的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=.*"
:zap: C2檢測要點: 命令與控制(C2)通信通常具有定期的通信模式(beaconing),監控具有規律時間間隔的網絡請求尤為重要。
1. 橫向移動檢測
當攻擊者在網絡中橫向移動時,可能會留下以下痕跡:
# SMB連接(常用於內網橫向移動)
smb or smb2
# RDP連接
tcp.port == 3389
# PowerShell遠程執行
http.request.uri contains "powershell"
2. 數據抹除與反取證操作
# 大量刪除操作
smb2.cmd == 16 # SMB删除文件命令
3. Webshell活動
# 可疑文件上傳
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分析流量,發現了以下可疑活動:
首先使用以下過濾器發現掃描活動:
tcp.flags.syn <mark> 1 and tcp.flags.ack </mark> 0 and ip.src == 10.10.10.15然後發現對Web伺服器的漏洞利用嘗試:
http.request.method == "GET" and http.request.uri contains "wp-content/plugins"最後檢測到成功的漏洞利用和Webshell上傳:
http.request.method == "POST" and http.request.uri contains "upload.php"
案例1分析詳情
在這個案例中,攻擊者首先進行了網絡掃描尋找目標系統,利用WordPress插件漏洞進行了初始入侵,最終上傳了Webshell獲取持久訪問權限。這是典型的攻擊鏈模式,從掃描、漏洞利用到權限維持。
通過 Follow TCP Stream 功能,分析師可以看到完整的攻擊過程,包括漏洞利用代碼和上傳的Webshell內容。
在另一個案例中,分析師使用以下過濾器檢測可能的數據外洩:
首先查看與可疑外部IP的所有通信:
ip.addr == 203.0.113.25檢查是否存在大量數據傳輸:
ip.dst == 203.0.113.25 and tcp.len > 1000使用Follow TCP Stream功能分析通信內容,發現加密的敏感數據正被傳輸到外部服務器。
進階技巧與自動化分析 :gear:
1. 使用tshark進行大規模分析
Wireshark的命令行版本tshark能夠處理大型PCAP文件,並支持脚本化分析:
# 提取所有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<mark>22 and tcp.flags.syn</mark>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"
- 顏色:鮮紅色
:bulb: 自動化分析提示: 使用 Wireshark 的 Lua 腳本功能可以編寫自定義檢測規則。專業安全團隊可開發專用腳本進行自動化威脅檢測。
在進行安全事件調查時,此清單可作為參考步驟:
- 過濾異常協議流量
- 檢查非標準端口通信
- 分析可疑域名和IP連接
- 檢測異常大小的數據包
- 尋找規律性通信模式(beaconing)
- 使用Follow Stream分析完整會話內容
- 檢查敏感數據傳輸模式
- 生成流量統計報告
- 提取可疑樣本進行深入分析
結論 :checkered_flag:
Wireshark是網絡安全分析的必備工具,特別是在對疑似被滲透系統進行調查時。掌握本文介紹的常用搜尋命令和過濾技巧,將大大提高您分析網絡流量和檢測惡意活動的能力。在實際應用中,建議將這些命令與其他安全工具結合使用,形成完整的安全監控和分析體系。
:tada: 重要結語: 網絡流量分析是一項需要持續學習和實踐的技能。建議安全分析師定期更新知識,了解最新的攻擊技術和對應的檢測方法。
- Wireshark官方文檔: https://www.wireshark.org/docs/
- Wireshark顯示過濾器參考: https://www.wireshark.org/docs/dfref/
- 網絡安全流量分析最佳實踐: https://www.sans.org/reading-room/whitepapers/detection/
- MITRE ATT&CK 框架: https://attack.mitre.org/
tags: wireshark 網絡安全 滲透測試 封包分析 資安 網絡分析
本文最初發布於 HackMD @BASHCAT。
留言
張貼留言