本司同学提出,lyrebird 既然可以各种手机终端如 ios android wp 系统被代理抓取网络请求,那么我们是否可以利用它来尝试抓取 windows 或 linux 下客户端程序的网络请求?
本机系统 ubuntu18.04 desktop 版环境
1只开启有线网络,且设置了内网固定 ip。关闭无线 wifi,关闭 shadowsocks 等去掉一切可能冲突干扰。
2启动 (Lyrebird) cmd@TR:~$ lyrebird v start
找到代理地址 ip:4272
将该 mitmproxy 代理地址配置到,ubuntu 系统里的,系统设置->网络->网络代理。如下图
3部署启动 lyrebird 后,该机器浏览器 Firefox 或 Chrome 访问
本机 firefox 访问 http://mitm.it/
点 other 后
在 fifrefox 的 首选项->隐私与安全->查看证书->证书颁发机构,下可以找到 mitmproxy 该证书名称。也可在此删除证书。
本机 Chrome 访问 http://mitm.it/ 后
应该可以参考如下帮助 给 ubuntu 下的 chrome 或 ubuntu 整个系统,来添加对应的 chrome 浏览器证书或整个机器的全局证书。
https://docs.mitmproxy.org/stable/concepts-certificates/
以下是如何给 ubuntu 系统添加全局证书
https://askubuntu.com/questions/73287/how-do-i-install-a-root-certificate/94861#94861
默认启动 Lyrebird 的 mitmproxy 后,在 ubuntu 下保存证书的路径。
cmd@TR:~/.mitmproxy$ ls -al
总用量 32
drwxrwxr-x 2 cmd cmd 4096 7月 17 10:01 .
drwxr-xr-x 84 cmd cmd 4096 7月 17 14:29 ..
-rw-rw-r-- 1 cmd cmd 1318 7月 17 10:01 mitmproxy-ca-cert.cer
-rw-rw-r-- 1 cmd cmd 1140 7月 17 10:01 mitmproxy-ca-cert.p12
-rw-rw-r-- 1 cmd cmd 1318 7月 17 10:01 mitmproxy-ca-cert.pem
-rw-rw-r-- 1 cmd cmd 2529 7月 17 10:01 mitmproxy-ca.p12
-rw-rw-r-- 1 cmd cmd 3022 7月 17 10:01 mitmproxy-ca.pem
-rw-rw-r-- 1 cmd cmd 770 7月 17 10:01 mitmproxy-dhparam.pem
firefox 浏览器打开百度测试,可抓到请求;
本机打开的网易云音乐客户端 linux 版的,也可抓取到请求;
chrome 浏览器打开百度或其它网页则无请求抓到(因为还未正常给 chrome 安装代理证书)
所以以上证明,本地 pc 机启动 lyrebird 的代理 mitmproxy,本地浏览器安装好证书。 是可以实现对本机客户端程序(有网路请求的比如网易云音乐这种)进行代理抓取的!!!
我们也可以利用 lyrebird 来测试 windows10 或 linux 或 mac 系统下的,各种客户端程序的接口 API 了。
疑问:
mitmproxy 证书应该是分为浏览器级别的和本机系统全局级别的。
若想让本机系统所有的程序的网络请求都被抓取,应该参考https://docs.mitmproxy.org/stable/concepts-certificates/
给本机系统 windows 或 ubuntu 或各种 linux,来安装 mitmproxy 代理。
mitmproxy 支持的协议
https://docs.mitmproxy.org/stable/concepts-protocols/