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

你好,我是悦创。

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

1. 在 Linux 系统中启动 Mitmproxy

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

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

 

Mitmproxy 在 Linux 操作系统中的使用_linux_03
Mitmproxy 在 Linux 操作系统中的使用_linux_04
图一

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

ifconfig

 

Mitmproxy 在 Linux 操作系统中的使用_网络_05
Mitmproxy 在 Linux 操作系统中的使用_python_06
图二

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

 

Mitmproxy 在 Linux 操作系统中的使用_网络_07
Mitmproxy 在 Linux 操作系统中的使用_linux_08
图三

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

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

 

Mitmproxy 在 Linux 操作系统中的使用_java_09
Mitmproxy 在 Linux 操作系统中的使用_python_10
图四

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

那接下来该怎么办呢?

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

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

 

Mitmproxy 在 Linux 操作系统中的使用_java_11
Mitmproxy 在 Linux 操作系统中的使用_网络_12
图五

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

 

Mitmproxy 在 Linux 操作系统中的使用_网络_13
Mitmproxy 在 Linux 操作系统中的使用_ubuntu_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 操作系统中的使用_python_15
Mitmproxy 在 Linux 操作系统中的使用_java_16
图七

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

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

 

Mitmproxy 在 Linux 操作系统中的使用_java_17
Mitmproxy 在 Linux 操作系统中的使用_ubuntu_18
图八

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

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

 

Mitmproxy 在 Linux 操作系统中的使用_java_19
Mitmproxy 在 Linux 操作系统中的使用_python_20
图九

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

 

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

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

 

Mitmproxy 在 Linux 操作系统中的使用_java_23
Mitmproxy 在 Linux 操作系统中的使用_linux_24
图十一

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

 

Mitmproxy 在 Linux 操作系统中的使用_python_25
Mitmproxy 在 Linux 操作系统中的使用_linux_26
图十二

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

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

 

Mitmproxy 在 Linux 操作系统中的使用_ubuntu_27
Mitmproxy 在 Linux 操作系统中的使用_网络_28
图十三

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

 

Mitmproxy 在 Linux 操作系统中的使用_python_29
Mitmproxy 在 Linux 操作系统中的使用_网络_30
图十四

那我们如何退出呢?

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

 

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

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

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