使用 Stunnel 抓包 HTTPS 连接

逆向工程 嗅探 线鲨 https协议
2021-06-22 07:26:02

我想对使用 HTTPS 进行通信的应用程序进行逆向工程。

我需要一个工具来执行中间人攻击并将其自己的 SSL 证书发送到应用程序,以便我可以通过将 RSA 私钥传递给 WireShark 来解密它建立的 HTTPS 连接。

顺便说一句,我听说过一个名为 的工具stunnel,但是我找到的有关如何配置它的文档让我感到困惑。:|

4个回答

我自己制作了一个后门 openssl.so 文件,它将它加密的所有内容写入文件,以便我可以tail在不同的终端中使用它。并忽略证书锁定等问题。

如果您可以让应用程序使用代理,请检查Fiddler

我用安全通道最近做一个Android应用程序是相同的-使用的dextojar集来进行应用程序分开,更换https://game.server.com URL与http://game.server.com URL中。 dex 文件,重新创建 .dex 校验和,重新创建并签署 apk,安装 apk。

在我的路由器上使用这个 iptables 条目:

iptables -t nat -A PREROUTING -i eth0 -p tcp -s 192.168.178.100 -d game.server.com --dport 80 -j DNAT --to 192.168.2.2:80

其中 192.168.178.100 是我的 android 设备,而 192.168.2.2 是我运行 stunnel 的地方。(或者,您可以修改客户端的 DNS 条目/主机文件,使 game.server.com == 192.168.2.2)

然后,使用这个 stunnel.conf:

[game]
client = yes
accept = 80
connect=game.server.com:443

如果您无法修补客户端,则可能会使用 stunnel,如果您设置了两个隧道 - 一个 stunnel https 服务器来连接您的客户端,该服务器转发到一个 stunnel http 服务器,该服务器转发到真正的 https 服务器,但我已经从来没有这样做过。

第三种可能性是mitmproxy,它可能更接近您的需要。我放弃了让它在我的 Centos 5 系统上工作,但如果你有一个更新的 linux,它可能是获得你想要的东西的最简单的方法。

另一种方法可能是使用panda从跟踪中提取密钥,如panda ssl 教程中所述也就是说,除非您正在处理证书固定,否则通常的 mitm 方法可能更容易上手

另一种方法是使用浏览器工具或浏览器扩展程序,例如适用于 Chrome 的 Google Developer Tools 或适用于 Firefox 的 Web 控制台。这些工具将向您显示所有网络流量的完整请求、响应和正文以及建立连接的时间线。在 Chrome 中,您甚至可以编辑页面内容并查看它如何影响页面。这些是用于对 DOM 和请求结构进行逆向工程的非常强大的工具。