如何开发中间人爬虫?以及mitmproxy的安装和使用

首页 » Python » 如何开发中间人爬虫?以及mitmproxy的安装和使用

中间人的介绍

中间人(Man-in-the-Middle,MITM)攻击是指攻击者与通信的两端分别创建独立的联系,并交换其所收到的数据,使通信的两端认为其正在通过一个私密的连接与对方直接对话,但事实上整个会话都被攻击者完全控制。在中间人攻击中,攻击者可拦截通信双方的通话,并插入新的内容或者修改原有的内容。

中间人爬虫就是利用了中间人攻击的原理来实现数据抓取的一种爬虫技术。数据抓包就是中间人爬虫的一个简单的应用,所以使用Charles也是一种中间人攻击。

Mitmproxy的安装

mimtproxy是一个命令行下的抓包工具,它的作用和Charles差不多,但它可以在终端下运行。使用mitmproxy可以实现自动化的抓包并从数据包里面得到想要的信息。

对于Mac系统,使用Homebrew安装:

brew install mitmproxy

对于Ubuntu中,安装mitmproxy,首先需要安装Python3.5或者以上版本的Python,然后执行:

sudo apt-get install python3-dev python3-piplibffi=dev libssl-dev
sudo pip3 install mitmproxy

对于Windows系统,我们可以直接去github的地址:https://github.com/mitmproxy/mitmproxy/releases/ 上下载最新版本的即可。这里提供一个直连直接下载:https://codeload.github.com/mitmproxy/mitmproxy/zip/master。下载完成解压,进入解压的根目录中,里面包含setup.py文件,我们按住 Shift+右键,选择在此处打开命令行,输入:python setup.py install。安装成功后,在命令行输入 mitmdump -p 8090,出现如下图显示,证明安装成功:

Web server listening at http://127.0.0.1:8081/
Proxy server listening at http://*:8080

需要注意在v4.0.1版本是有windows-installer.exe的,我们可以选择这个版本下载安装,提供直连:https://snapshots.mitmproxy.org/4.0.4/mitmproxy-4.0.4-windows-installer.exe。然后以管理员方式运行安装包,安装该文件。安装成功后,进入安装目录的bin目录下,以管理员权限打开dos命令,输入命令:mitmdump -p 8090或者我们呢进入bin目录打开下图的两个exe程序(mitmweb就可以),出现如下图显示,证明安装成功:

如何开发中间人爬虫?以及mitmproxy的安装和使用

然后就会自动在浏览器弹出界面

如何开发中间人爬虫?以及mitmproxy的安装和使用

建议在Linux、Mac或者Windows 10自带的Ubuntu Bash下使用mitmproxy,只有这样才能发挥它的最大能力。在Windows上也可以,不过需要注意尽量不要下载最新版本的,选择exe文件下载,这样就可以直接安装。

Mitmproxy的使用

对于mitmproxy的使用,承接上面Windows的步骤:我们需要让电脑和手机连接在同一个WiFi上,配置代理,方法同Charles软甲手机代理配置一样: 设置-WLAN -i图标,配置代理,主机名可在Windows的终端输入ipconfig查看,端口8080

然后在手机浏览器访问:http://mitm.it/ 。我们就可以看到如下图的网页:(如果没有进入如下界面,请检查手机端代理IP和端口号是否输入正确!)

如何开发中间人爬虫?以及mitmproxy的安装和使用

我使用的是Android,就选择第对应的图标证书安装,在弹出的窗口确认下载证书(mitmproxy-ca-cert.pem证书)。然后就是安装证书,这个不可以直接打开的,通常我们呢都可以在手机的设置-WLAN-高级设置-安装证书管理(从存储设备安装)找到证书并安装,别告诉我你找到证书下载在哪里了!

之后我们随便在手机操作一个APP,呢就可以在刚才启动的两个窗口之一 mitmdump.exe 中看到一些信息:

如何开发中间人爬虫?以及mitmproxy的安装和使用

这些就是我们手机的数据包了,在浏览器弹出的窗口可以查看一些数据包的信息:

如何开发中间人爬虫?以及mitmproxy的安装和使用

承接上面在mac或者Ubuntu下的使用,我们在终端输入mitmproxy,会弹出下图的窗口:

如何开发中间人爬虫?以及mitmproxy的安装和使用

接着需要在浏览器或者手机上设置代理,你想抓哪里的包就在哪里设置,这里还是在手机上设置代理,确保电脑和手机连接在同一个WiFi上,然后配置代理,主机名和端口8080,主机名可在终端输入ifconfig查看。

如果成功,随便在手机上打开一个APP,那么就会在刚才的窗口出现滚动的数据。我们可以使用键盘来进行查看详细的数据信息,不在详细说明,你需要自己去探索!

跟Windows一样,想要访问HTTPS就需要配置证书,通过手机浏览器访问:http://mitm.it/ 。选择自己品牌的证书(mitmproxy-ca-cert.pem证书)进行安装,方式同上,完成之后你就可以截获HTTPS的数据包了!

到目前为止mitmproxy就可以像Charles一样使用了,同时我们还可以使用Python来定制mitmproxy的行为了!

Mitmproxy证书手机安装不上

不知道你有没有遇到过证书安装不上的情况,这里是证书安装失败,而不是不会安装证书。重新重名证书即可成功安装!!!

Mitmproxy的案例实战

首先说明本教程是在Windows下测试的,那么我们可以在查看数据的时候就在浏览器上进行。如果想往下深入学习的话,可参考一下几篇文章:

未经允许不得转载:作者:鳄鱼君, 转载或复制请以 超链接形式 并注明出处 鳄鱼君
原文地址:《如何开发中间人爬虫?以及mitmproxy的安装和使用》 发布于2020-03-26

分享到:
赞(2) 赏杯咖啡

评论 抢沙发

2 + 1 =


文章对你有帮助可赏作者一杯咖啡

支付宝扫一扫打赏

微信扫一扫打赏

Vieu4.6主题
专业打造轻量级个人企业风格博客主题!专注于前端开发,全站响应式布局自适应模板。
切换注册

登录

忘记密码 ?

您也可以使用第三方帐号快捷登录

Q Q 登 录
微 博 登 录
切换登录

注册