在挖掘某些基于CS架构软件漏洞时,其服务端可能开启了HTTP服务,所以其看似是CS架构,但实际上还是BS架构,客户端只是一个另类的浏览器。
但我们可能会想要抓取client和server的通信流量,而此时会有两点问题。
-
client可能不会读取HTTP_PROXY和HTTPS_PROXY等系统变量,不会尝试走系统代理。
-
client和server之间可能会有证书验证,使用自签名的证书,而不是系统内的证书。
本文基于以上问题提出一个解决方案。
Windows上有proxifier可以hook软件,将软件的TCP流量强行导入到HTTP/SOCKS代理中,所以可以使用proxifier将client流量导入到我们的代理。
而此处的代理可以使用mitmproxy,之前使用burpsuite尝试抓取proxifier导入过来的流量时,发现在TLS握手时server会reset TCP连接,后面使用mitmpoxy才发现是客户端使用自签名的证书,不走系统的证书,导致在TLS握手时证书不匹配,reset了连接。
https://github.com/mitmproxy/mitmproxy/issues/4536
这里可以导出server证书和私钥,并使用mitmproxy加载就可
-
导出IIS证书
https://www.xolphin.com/support/IIS_FAQ/IIS_-_Backup_Certificate_and_Private_Key_to_pfx_File
-
将pfx转化为pem格式
openssl pkcs12 -in 444.pfx -out temp.pem -nodes
-
mitmproxy加载证书
mitmweb --cert domain=temp.pem --ssl-insecure
原文始发于微信公众号(闲聊趣说):Mitmproxy解密自签名证书加密流量
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论