一、前期準備:選擇與安裝Sniffer工具
Linux環境下,Sniffer工具分為命令行(輕量、高效)和圖形化(直觀、易操作)兩類,需根據場景選擇:
tcpdump
(經典抓包工具,支持過濾與保存)、tshark
(Wireshark命令行版,適合腳本處理);Wireshark
(功能全面,支持協議解析與可視化)、iftop
(實時流量監控)、nethogs
(按進程統計流量)。# tcpdump(系統自帶或通過包管理器安裝)
sudo apt update && sudo apt install tcpdump
# Wireshark(需安裝圖形界面)
sudo apt install wireshark
# iftop(實時流量)
sudo apt install iftop
# nethogs(進程級流量)
sudo apt install nethogs
注意:使用前需獲取網絡管理員授權,避免侵犯隱私或違反法律法規。
二、捕獲數據包:定位目標流量
捕獲數據包是識別攻擊的基礎,需明確接口(如eth0
、wlan0
)和過濾條件(減少無關流量):
tcpdump
捕獲指定接口的所有流量(如eth0
):sudo tcpdump -i eth0
tcp
/udp
/icmp
)、端口(port 80
表示HTTP)、IP(host 192.168.1.100
)縮小范圍,例如捕獲eth0
上80端口的HTTP流量:sudo tcpdump -i eth0 port 80
.pcap
文件(如capture.pcap
),便于后續用Wireshark等工具深入分析:sudo tcpdump -i eth0 -w capture.pcap
提示:過濾條件可組合使用(如sudo tcpdump -i eth0 port 22 and host 10.0.0.5
,捕獲eth0
上與10.0.0.5
的SSH流量)。
三、分析數據包:識別攻擊特征
捕獲后需通過協議解析和特征匹配識別攻擊,常見攻擊類型及對應特征如下:
tcpdump 'tcp[tcpflags] & (tcp-syn) != 0'
)、單一IP/端口的大量請求(如iftop
顯示某IP持續占用大量出站/入站帶寬)。' OR '1'='1
、UNION SELECT
),可通過tcpdump
過濾HTTP POST/GET請求(port 80 and tcp[((tcp[12:1] & 0xf0) >> 2):4] = 0x504f5354
,匹配POST請求),再用Wireshark查看payload
中的SQL語句。<script>alert('xss')</script>
),通過Wireshark過濾HTTP響應(http.response and tcp.port == 80
),檢查Content-Type
為text/html
的響應體中的腳本標簽。tcpdump 'tcp[tcpflags] & (tcp-syn) != 0 and tcp[tcpflags] & (tcp-ack) = 0'
,匹配SYN包但無ACK響應),可通過tcpdump
統計SYN包數量(如sudo tcpdump -i eth0 'tcp[tcpflags] & (tcp-syn) != 0' | wc -l
)。四、輔助工具:增強監控能力
結合其他工具可提升Sniffer的效率和準確性:
sudo iftop -i eth0
),幫助發現DDoS或異常上傳。sudo nethogs eth0
),識別占用帶寬的應用程序(如挖礦軟件、病毒進程)。ip.src == 192.168.1.100 and tcp.port == 22
)快速定位可疑流量,支持可視化分析。五、注意事項:確保合法與高效
.pcap
文件可能包含敏感信息(如密碼、個人信息),需妥善存儲(如加密)或及時刪除,避免泄露。