一、前期准备:选择与安装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文件可能包含敏感信息(如密码、个人信息),需妥善存储(如加密)或及时删除,避免泄露。