① 一步一步教你 https 抓包
在 Mac 上常用的抓包软件是 Charles,网上关于 Charles 的教程很多,这里介绍另一个抓包神器 mitmproxy。mitmproxy 是一款可交互式的命令行抓包工具,它除了可以抓包查看 http/https 请求,还有一个很强大的功能是拦截并修改 request 或者 response,后面我会用实际例子演示如何修改知乎的回答:)
mitmproxy 官网 介绍了用以下命令来安装
我在实际安装过程中遇到了一些坑,首先是 OSX El Capitan 及以上的系统版本在安装时会出现 six 模块依赖错误,具体可以看 这儿 的讨论。还有一个问题是安装过程中会出现权限错误,需要以 root 权限执行。最后用以下命令成功安装,安装不了需要翻一下墙
首先需要配置一下网络环境,将手机和电脑连在同一个 wifi 环境下,然后进入手机的 设置 - 无线局域网,点击当前连接的 wifi 进入详情设置页面,在 http 代理那一栏输入当前连接的 ip 地址,端口填8080,这个 ip 地址可以在电脑上的 系统偏好 - 网络 里查看,配置完成如下图,
网络环境配置完成后我们可以开始实际的抓包了,只需在电脑上打开终端(命令行操作窗口),然后输入 mitmproxy -p 8080 ,如果你看到如下页面说明你已成功进入抓包模式,迈出了第一步,cheer~
接下去你可以用手机打开一些 App,不出意外你能看到一些 http 请求的列表。这时候我们还无法抓到 https 的包,还需要做一些额外配置。
下面的操作是针对 iPhone 手机,其他设备也类似。用 iPhone 打开 Safari 浏览器并输入 mitm.it,这时你会看到如下页面,
选择对应平台并安装证书,安装完成后就可以抓 https 的包了, 官网上 解释了这个工具是如何工作的
好了,到这里我们已经完成了所有的准备工作,接下去就和我一起实际体验一下 https 的抓包过程吧。
这里以知乎为例,用手机打开知乎,我们应该能看到知乎的请求出现在列表里了,类似下图:
键盘上下移动,Enter 键进入查看详情,按 Tab 键切换顶部导航栏,如下图所示,
上面演示的是常规的操作,下面介绍一下 mitmproxy 的另一强大功能,拦截修改 request 和 response。
输入 i ,然后输入 ~s 再按回车键,这时候就进入了 response 拦截模式。如果输入 ~q 则进入 request 的拦截模式,更多的命令可以输入 ? 查看。拦截模式下的页面显示如下图所示,
其中橘红色的表示请求正被拦截,这时 Enter 进入后 再按 e 就可以修改 request 或者 response。修改时是用 vim 进行编辑的,修改完成后按 a 将请求放行,如果要放行所有请求输入 A 即可。
下图是我修改了某个答案的 response 请求将回答者的名字做了修改,因为只修改了 response 并不会影响其他的用户显示:)
上面提到的那些指令在输入 ? 后都能查看到,如下图,另外 官网 上也有很详细的说明
我用上述方式尝试了大多数的 App,包括淘宝、微博,都能抓到 https 的包,有些有加密,有些没有加密。但是做了防中间人攻击的设置,一启用抓包模式就显示网络错误1012,还是做的很不错的,赞一个~
按照上面的过程操作就可以 https 抓包了,如果有遇到问题可以 联系我 ,记得抓完后将手机 wifi 设置里的 http 代理关闭。开始实际体验一下吧,enjoy~
② 电脑是怎么抓包的
抓包,就是通过软件,检测网卡所流通的数据。
数据并不是像水一样不停的传输的,而是分成一个包一个包的,每个数据包都有包头,包头内记录着发送方的ip 端口 接受方的ip 端口 以及数据包所使用的协议等等。
包头之后,才是我们要传输的数据,分析软件就会将数据包由10组成的二进制流翻译为我们可以看懂的东西。
像sniffer这种强大的软件,可以直接将图片都显示出来。网管必备,在他检测下,他所在网络内的网络活动都可以被检测到。
但是随着保密意识的增加,很多网络活动都加密了。几个冲誉月前的网络知道登陆是不用加密,如果我用检测软件检测你的电脑,我抓包,就有可能抓到你的账号密码,现在不能了,已经加密了,我抓到也只是乱码。
(2)如何对电脑软件实现抓包扩展阅读:
抓包工具
抓包工具是拦截查看网络数据包内容的软件。通过对抓获的数据包进行分析,可以得到有用的信息。
目前流行的抓包散或段工具有很多,比较出名的有wireshark、sniffer。httpwatch、iptool等。这些抓包工具功能各异,但基本原理相同。
我们的计算机通过向网络上传和从网络下载一些数据包来实现数据在网络中的传播。通常这些数据包会由发出或者接受的软件自行处理,普通用户并不过问,这些数据包一般也不会一直保存在用户的计算机上。
抓包工具可以帮助我们将这些数据包保存下来,如果这些数据包是以明文形式进行传送或者我们能够知道其加密方法,那么我们就可以分析出这些数据包的内容以及它们的团早用途。
目前抓包工具更多的用于网络安全,比如查找感染病毒的计算机。有时也用于获取网页的源代码,以及了解攻击者所用方法、追查攻击者的ip地址等。