用python捕获和解析http流量
httpcap的Python项目详细描述
许可证
httpcap(以前的名称pcap解析器)
捕获、分析和显示http流量。Python2.7.*或Python3.3+ 必修的。
此模块解析pcap/pcapng文件,或从 设备(使用libpcap),然后检索http数据,并显示为文本。 PCAP文件可以通过tcpdump、wireshark或其他类似方式获得 工具。
功能:
- 按TCP连接分组的HTTP请求/响应;中的请求 一个保持活动的http连接将一起显示。
- 托管分块和压缩的http请求/响应。
- 托管字符编码
- 以漂亮的方式格式化json内容。
安装
此模块可以通过PIP安装:
pip install httpcap
那么您应该安装parse pcap和parse live*工具 分析PCAP文件时,使用Parse PCAP*捕获和分析流量 在网络设备中,使用parse live
使用量
基本用法:
# Use tcpdump to capture packets: tcpdump -wtest.pcap tcp port 80# only output the requested URL and response status parse-pcap test.pcap # or use pipe sudo tcpdump -w- tcp port 80| parse-pcap # parse-live need to be root. capture network device en1 # on linux/osx ifconfig to see all network devices sudo parse-live en1 # capture traffics on all devices sudo parse-live
下面以parse-pcap为例。解析live与 解析pcap,只需将文件名更改为设备名。
输出电平
parse pcap/parse live默认情况下只显示url。使用-v显示更多: 然后:
# output http req/resp headers parse-pcap -v test.pcap # output http req/resp headers and body which belong to text type parse-pcap -vv test.pcap # output http req/resp headers and body parse-pcap -vvv test.pcap # display and attempt to do url decoding and formatting json output parse-pcap -vvb test.pcap
组
使用-g将http请求/响应分组:
parse-pcap -g test.pcap
结果如下:
********** [10.66.133.90:56240] -- -- --> [220.181.90.13:80] ********** GET http://s1.rr.itc.cn/w/u/0/20120611181946_24.jpg HTTP/1.1 200 OK GET http://s1.rr.itc.cn/p/images/imgloading.jpg HTTP/1.1 200 OK GET http://s1.rr.itc.cn/w/u/0/20130201103132_66.png HTTP/1.1 200 OK GET http://s1.rr.itc.cn/w/u/0/20120719174136_77.png HTTP/1.1 200 OK GET http://s1.rr.itc.cn/p/images/pic_prev_open.png HTTP/1.1 200 OK ********** [10.66.133.90:47526] -- -- --> [220.181.90.13:80] ********** GET http://s1.rr.itc.cn/w/u/0/20130227132442_43.png HTTP/1.1 200 OK GET http://s1.rr.itc.cn/p/images/pic_next.png HTTP/1.1 200 OK GET http://s1.rr.itc.cn/p/images/pic_prev.png HTTP/1.1 200 OK GET http://s1.rr.itc.cn/p/images/pic_next_open.png HTTP/1.1 200 OK
过滤器
您可以使用-i/-p选项指定源和 目标和parse-pcap将只显示满足以下条件的http数据 指定条件:
parse-pcap -p55419 -vv test.pcap parse-pcap -i192.168.109.91 -vv test.pcap
使用-d指定http域;仅显示http req/resp和 指定域:
parse-pcap -dwww.baidu.com -vv test.pcap
使用-u指定http uri模式;仅在 哪个url包含指定的url模式:
parse-pcap -u/api/update -vv test.pcap
编码
使用-e强制http主体使用的编码:
parse-pcap -i192.168.109.91 -p80 -vv -eutf-8 test.pcap