用tcpdump抓包分析HTTP流量

194 阅读2分钟

huake_00193_.jpgtcpdump是一款强大的命令行工具,可用于捕获和分析网络流量,尤其在HTTP流量分析中具有重要作用。通过tcpdump,可以精准定位网络问题、排查安全威胁或优化性能瓶颈。

基础抓包命令****

使用tcpdump捕获HTTP流量的核心在于指定端口80(HTTP默认端口)。例如,以下命令会捕获eth0接口上的所有HTTP流量并输出到终端:

bash

 sudo tcpdump -i eth0 port 80

· -i eth0:指定监听的网络接口为eth0。

· port 80:仅捕获目标或源端口为80的数据包。

高级过滤与保存****

1. 

过滤特定主机流量
若需分析某台主机的HTTP请求,可结合host关键字:

2. 

3. 

bash

4. 

5. 

 sudo tcpdump -i eth0 host 192.168.1.100 and port 80

6. 

该命令会捕获192.168.1.100与任意IP间通过80端口的通信。

7. 

8. 

保存流量到文件
长期分析需保存数据包至PCAP格式文件:

9. 

10. 

bash

11. 

12. 

 sudo tcpdump -i eth0 -w http_traffic.pcap port 80

13. 

生成的http_traffic.pcap文件可通过Wireshark等工具进一步分析。

14. 

15. 

提取HTTP GET/POST请求
HTTP请求头以GET或POST开头,可通过字节偏移量过滤:

16. 

17. 

bash

18. 

19. 

 sudo tcpdump -i eth0 -A -s 0 'tcp[((tcp[12:1] & 0xf0) >> 2):4] = 0x47455420' # GET请求
 sudo tcpdump -i eth0 -A -s 0 'tcp[((tcp[12:1] & 0xf0) >> 2):4] = 0x504f5354' # POST请求

20. 

其中-A以ASCII格式显示数据包内容,-s 0确保捕获完整数据包。

21. 

结合其他工具分析****

保存的PCAP文件可导入Wireshark进行深度分析,例如:

· 统计请求响应时间。

· 检测恶意请求(如SQL注入、XSS)。

· 分析带宽占用情况。

注意事项****

· 需root权限运行tcpdump。

· 捕获大量数据时建议使用-c限制数量,避免磁盘空间耗尽。

· 生产环境需谨慎使用混杂模式,可能触发安全告警。

通过灵活组合过滤表达式与选项,tcpdump可高效完成HTTP流量分析任务,为网络运维提供关键数据支持。