「docker实战篇」python的docker爬虫技术-在linux下mitmproxy介绍和安装(四)
2019-04-26 09:11:34
李明
  • 访问次数: 377
  • 注册日期: 2018-07-09
  • 最后登录: 2019-10-30
原创文章,欢迎转载。转载请注明:转载自 IT人故事会,谢谢! 原文链接地址: 「docker实战篇」python的docker爬虫技术-在linux下mitmproxy介绍和安装(四)
上次说了fiddler的抓包和参数介绍,通过fiddler抓包工具可以完成app和web端的数据,这次介绍另一款抓包公司mitmproxy,可以和python语言结合通过爬虫抓取数据。 源码: https://github.com/limingios/netFuture/blob/master/mitmproxy/

16a57322b4b022bb?w=568&h=120&f=png&s=372

mitmproxy

  • 官方
https://www.mitmproxy.org/

16a573229c796914?w=720&h=321&f=png&s=120
  • 介绍
mitmproxy is a free and open source interactive HTTPS proxy.

16a57322a0f4b384?w=720&h=500&f=png&s=576
mitmproxy 就是用于MITM的proxy 中间人攻击(Man-in-the-MiddleAttack,简称“MITM攻击”)是一种“间接”的入侵攻击,这种攻击模式是通过各种技术手段将受入侵者控制的一台计算机虚拟放置在网络连接中的两台通信计算机之间,这台计算机就称为“中间人”。

16a573229c96b4df?w=720&h=369&f=png&s=712
  1. 正常的代理一样转发请求,保证服务端和客户端的通信
  2. 拦截请求,修改请求,拦截返回,修改返回
  3. 可以载入自定义的mitmproxy
  4. fiddler只能拦截请求,修改请求,篡改数据,但是不能载入自定义的mitmproxy
  5. 随着安全的要求,现在越来越多的网站使用https请求,特别是ios客户端要求必须服务端使用https,所以必须让客户端和服务端都信任中间人
  6. 请用:mitmproxy 做测试使用,请勿使用灰产哦!

安装

  • 环境安装
感觉windows 太麻烦了,还是建议使用linux
  1. 基于pyhon
  2. windows操作系统需要安装Microsoft Visual C++ V14.0以上
  3. linux操作系统直接安装pyhon就可以了。

windows 安装

这里不做介绍了,真心没有linux好!

linux 安装

通过vagrant的方式安装虚拟机
系统类型IP地址用户CPUMemoryHostnameCentos7192.168.77.100root24Gmitmproxy
  • 三台机器mac开通远程登录root用户下
#设置 PasswordAuthentication yes
vi /etc/ssh/sshd_config
sudo systemctl restart sshd

16a573229c84d678?w=720&h=1319&f=png&s=44
  • 修改dns
# 修改配置文件
vi /etc/resolv.conf
# 修改成:
nameserver 8.8.8.8
search localdomain
  • 修改网络
service network restart
  • 安装wget和pip3
yum -y install wget
wget --no-check-certificate  https://pypi.python.org/packages/source/p/pip/pip-8.0.2.tar.gz#md5=3a73c4188f8dbad6a1e6f6d44d117eeb
tar -zxvf pip-8.0.2.tar.gz
cd pip-8.0.2
python3.6 setup.py build
python3.6 setup.py install

16a573229c924ed6?w=720&h=351&f=png&s=963

安装mitmproxy

  • 安装mitmproxy
#安装python3.6的devel
yum install python36-devel
yum install gcc libffi-devel openssl-devel -y     
# 升级pip3
pip3 install --upgrade pip
# 安装 mitmproxy
pip3 install mitmproxy

16a57323755e1dba?w=720&h=85&f=png&s=5376

16a5732372892866?w=720&h=281&f=png&s=249
  • 查看mitmproxy的版本
mitmproxy --version
mitmdump --version
mitmweb --version

16a5732392861bf1?w=720&h=273&f=png&s=100

mitmproxy的使用

  • mitmproxy
安装好了mitmproxy 直接查看,直接输入mitmproxy,默认端口是8080,
mitmproxy

16a573238b4d9e8d?w=720&h=287&f=png&s=746
打开google浏览器的插件switchyOmega

16a573239266477e?w=720&h=316&f=png&s=664
访问baidu提示,需要安装证书哦看来

16a57323b9a3c494?w=720&h=306&f=png&s=480
如何安装mitmproxy的证书,浏览器输入mitm.it,根据自己的操作系统选择要安装的地址:mac,windows,android,other

16a57323b9c84f48?w=720&h=224&f=png&s=356
演示windows下安装证书

16a57323b9b25773?w=720&h=366&f=png&s=876
双击证书

16a573240924a6ef?w=720&h=745&f=png&s=800

16a57323ff8e7455?w=720&h=745&f=png&s=618
不用输入密码

16a57323ff75de3d?w=720&h=745&f=png&s=715
讲所有的证书都放入下列存储

16a573240915c324?w=720&h=745&f=png&s=582

16a573247931e704?w=720&h=745&f=png&s=639

16a5732472b87abf?w=720&h=745&f=png&s=610

16a57324797dd53f?w=720&h=745&f=png&s=522

16a573244c85c0f5?w=720&h=551&f=png&s=109

16a573245c843a14?w=720&h=551&f=png&s=109

16a57324628b0bf7?w=320&h=344&f=png&s=747
浏览器关闭重新打开
  • 已经可以打开了

16a57324677054a5?w=720&h=261&f=png&s=377

查看mitm的界面

  • 列表界面
16a5732495e28a4b?w=720&h=272&f=png&s=173
  • 键盘选择
点击键盘回车,进入

16a573249603206a?w=720&h=286&f=png&s=174
进入后,里面分为request,repsonse,detail

16a57324c28f59bb?w=720&h=132&f=png&s=607
退出esc,然后输入q 返回列表
进入列表后,输入f键

16a57324cdf31878?w=720&h=286&f=png&s=176

查看mitmproxy的三大组件

  • mitmproxy
上边介绍了 不在详细说了。
  • mitmdump
#记录的请求都放入指定的文件夹下
mitmdump -w 文件路径

16a57325012f0d0d?w=720&h=187&f=png&s=281

16a57324cdf69f29?w=720&h=90&f=png&s=2013
  • mitmweb
这个windows查看比较方便。访问http://127.0.0.1:8081
mitmweb

16a57324fff0bb44?w=720&h=122&f=png&s=347

16a57325010255ca?w=720&h=307&f=png&s=958

16a57325095d73fa?w=720&h=473&f=png&s=187
PS:更多mitmproxy后续强大的功能,在后续的实践中,咱们一起详解吧。实现出真知。

16a51f4f2c3e0dbd?w=720&h=361&f=png&s=249