Mitmproxy 在 Linux 操作系统中的使用_linux

Mitmproxy 在 Linux 操作系统中的使用_java_02


你好,我是悦创。

我本章来讲解一下如何在 Linux 里面操作 Mitmproxy 。

1. 在 Linux 系统中启动 Mitmproxy

我首先来讲一下,我们如何在 Linux 操作系统中启动 Mitmproxy ,我们直接在命令行里面输入:​​Mitmproxy​​ ,即可启动。

Mitmproxy 默认监听的是 8080 端口,那其实也就是说:我们的浏览器、手机端设置代理,也要设置到 8080 端口。操作如下图(图一):

Mitmproxy 在 Linux 操作系统中的使用_python_03

Mitmproxy 在 Linux 操作系统中的使用_ubuntu_04

图一

那我们先来看看我们现在 Linux 的 IP 地址,命令行输入如下命令(图二):

ifconfig

Mitmproxy 在 Linux 操作系统中的使用_ubuntu_05

Mitmproxy 在 Linux 操作系统中的使用_ubuntu_06

图二

所以,由上面的操作可知,我的 Linux IP 地址为:​​192.168.220.130​​,接下来我们打开一下我们的谷歌浏览器,和之前设置 Fiddler 一样,我们来设置一下:SwitchyOmega,这里我还是放动图,同学们看动图即可(图三):

Mitmproxy 在 Linux 操作系统中的使用_python_07

Mitmproxy 在 Linux 操作系统中的使用_java_08

图三

同学们是否还记得我们之前设置完成 Fiddler 之后,第一件事情做了什么?

我们给它安装了一个证书,如果不安装证书就无法访问 HTTPS 的网站,这里我就以访问我的网站为测试:​​https://www.aiyc.top/​​ 我们可以来验证一下(Linux 启动 Mitmproxy)操作如下(图四):

Mitmproxy 在 Linux 操作系统中的使用_linux_09

Mitmproxy 在 Linux 操作系统中的使用_网络_10

图四

由上面的操作可知,我们无法访问网络,浏览器给你显示的是:您的连接不是私密连接“ ,那这样说明:我们现在的网络(流量)是通过 mitmproxy 的,但是并没有进行解密的。

那接下来该怎么办呢?

所以这也是我们要配置证书的原因,接下来我们来安装一下 mitmproxy 的证书,我们在浏览器地址里面输入你的 ​​mitm.it​​ 操作如下(图五):


你的 Linux 也要运行 mitmproxy,这里我也会把 mitmproxy 开启操作重复截图,同学自己学的时候基本上是没用关闭 mitmproxy,我这里重复的原因也就是避免有些同学因为忘记开启 mitmproxy 而操作不了,然后来找我。


Mitmproxy 在 Linux 操作系统中的使用_java_11

Mitmproxy 在 Linux 操作系统中的使用_linux_12

图五

进入页面之后,这个页面就是我们安装证书的这个页面,我们可以根据实际的平台安装相应的证书,如下图(图六):

Mitmproxy 在 Linux 操作系统中的使用_网络_13

Mitmproxy 在 Linux 操作系统中的使用_linux_14

图六


如果无法进入页面,把 Linux 防火墙关闭即可:


  1. CentOS 7.0 默认使用的是 firewall 作为防火墙
  2. 查看防火墙状态:​​firewall-cmd --state​
  3. 停止 firewall:​​systemctl stop firewalld.service​
  4. 禁止 firewall 开机启动:​​systemctl disable firewalld.service​
  5. CentOS 7 以下版本 iptables 命令
  6. 如要开放80,22,8080 端口,输入以下命令即可
    ​/sbin/iptables -I INPUT -p tcp --dport 80 -j ACCEPT /sbin/iptables -I INPUT -p tcp --dport 22 -j ACCEPT /sbin/iptables -I INPUT -p tcp --dport 8080 -j ACCEPT​


更多可以点击以下链接了解:​​https://www.aiyc.top/archives/475.html​

因为,我这里会下载 Windows 平台的证书,其他平台的自行下载相对应的证书即可。所以,我这里之间点击 Windows 浏览器就会自动开始下载然后点击安装即可,操作如下动图(图七):

Mitmproxy 在 Linux 操作系统中的使用_linux_15

Mitmproxy 在 Linux 操作系统中的使用_linux_16

图七

这样我们就成功导入成功了,这样我们浏览器就可以访问 HTTPS 的网站了,我们的 mitmproxy 也可以解析 HTTPS 类型的网站了。

我们之间访问链接:​​https://www.aiyc.top/​​,但是显示如下结果(图八):

Mitmproxy 在 Linux 操作系统中的使用_网络_17

Mitmproxy 在 Linux 操作系统中的使用_linux_18

图八


因为我们刚刚导入完证书,所以浏览器这个时候还没有生效,我需要重新启动一下我们的浏览器,然后重新打开。


重新打开之后,我们访问链接:​​https://www.aiyc.top/​​,显示界面如下(图九):

Mitmproxy 在 Linux 操作系统中的使用_ubuntu_19

Mitmproxy 在 Linux 操作系统中的使用_ubuntu_20

图九

成功访问我的网站,那我们可以看看 mitmproxy 的界面,我们可以看见在启动 mitmproxy 之后,左上角有个 ​​Flows​​ 也就是我们的数据流。(图十)

Mitmproxy 在 Linux 操作系统中的使用_网络_21

Mitmproxy 在 Linux 操作系统中的使用_linux_22

图十

我可以使用上下键来移动上图中的小箭头,比方说现在九移动到 get 请求到 "www.aiyc.top"上,我们可以敲一下回车,这样我们就可以看一下该流的一些详细信息,界面如下图(图十一):

Mitmproxy 在 Linux 操作系统中的使用_python_23

Mitmproxy 在 Linux 操作系统中的使用_python_24

图十一

这里为了演示更加全面,接下来我们再请求:​​https://www.baidu.com/​​ (图十二):

Mitmproxy 在 Linux 操作系统中的使用_linux_25

Mitmproxy 在 Linux 操作系统中的使用_python_26

图十二

那我们该如何,切换到 response 选项里面呢?

直接​鼠标选择、Tab 键、键盘左右键​即可,response 其实也就是百度服务器回给我们的消息,也含有 HTML Body 信息,如下动图(图十三):

Mitmproxy 在 Linux 操作系统中的使用_java_27

Mitmproxy 在 Linux 操作系统中的使用_java_28

图十三

我们接下来可以再按一下 Tab 键,就可以进入 detail ,也就是这个流的汇总信息。(图十四)

Mitmproxy 在 Linux 操作系统中的使用_linux_29

Mitmproxy 在 Linux 操作系统中的使用_linux_30

图十四

那我们如何退出呢?

很简单,在 mitmproxy 界面下,我们先按 ​ESC​ 然后再按一下 ​Q​,就可以退出来了。这样我们就返回到了当前的抓包界面,我们可以看见每个流前面带有该链接的请求方式,以及该请求的状态码。

Mitmproxy 在 Linux 操作系统中的使用_linux_31

Mitmproxy 在 Linux 操作系统中的使用_python_32


以上,就是 mitmproxy 的简单介绍,更多详细的介绍将在后面为你介绍。

上面介绍了如何在 Linux 中启动 mitmproxy,那这个时候有同学可能会问了:刚刚安装的 mitmproxy 一共三个组件,其中的一个就是 mitmproxy 在 Windows 操作系统中是无法运行的,在 Linux 操作系统中是可以运行。还有两个 mitmdump、mitmweb 这两个我将在 Windows 系统下给大家演示。