0x01. 写了一个嗅探流量的工具,利用的就是pcap包对网站进行流量嗅探,但是直接安装pypcap包是出现
pcap.h not found的错误。原来准备写这篇博客的,昨天移植的时候有出现这样的问题,也忘记怎么解决
了,于是又是各种测试,看到问这个问题的挺多,给出答案的却很少。
0x02.windows下的要先按照winpcap,设置环境变量,安装python的pcap包才能成功,由于大家用的多为
linux系统,windows下就不在详细解析了。
0x03. linux下安装pcap包
如果出现make: yacc:命令未找到错误
安装bison包进行解决问题
apt-get install bison
首先要安装flex-2.6.0安装包,版本其他应该可以
下载地址 http://flex.sourceforge.net/
执行命令如下
tar -xvf flex-2.6.0.tar.bz2
进入flex-2.6.0目录下,执行命令
./configure
make
sudo make install
在安装libpcap-1.7.4安装包,其他版本应该也可以,具体没有测试
下载地址 http://www.tcpdump.org/
tar -zxvf libpcap-1.7.4.tar.gz
进入libpcap-1.7.4目录下,执行命令
./configure
make
sudo make install
如果安装成功,进入python命令下,import pcap不会出现错误,如下所示
下一步就是我们要安装的pypcap包
下载地址
https://pypi.python.org/pypi/pypcap
解压pypcap-1.1.4.tar.gz,进入pypcap-1.1.4文件夹
安装命令
python setup.py install
安装成功后就可以进行拦截流量了,拦截流量的代码如下:
如果要想解析pcap包还需要安装dpkt包
获取http流量代码如下:
import pcap
import dpkt
pc = pcap.pcap('eth0')
pc.setfilter('tcp port 80')
for ptime,pdata in pc:
p = dpkt.ethernet.Ethernet(pdata)
if p.data.__class__.__name__ == 'IP':
ip='%d.%d.%d.%d' % tuple(map(ord,list(p.data.dst)))
if p.data.data.__class__.__name__ == 'TCP':
if p.data.data.dport == 80 and len(p.data.data.data)>0:
http = dpkt.http.Request(p.data.data.data)
print http.headers
结果如下