我一直在阅读很多关于嗅探whatsapp 流量的内容,并且我已经知道已经超过了 ssl。但是,一旦我不知道 whatsapp 用于加密的私钥是什么,我需要知道是否有任何方法可以解密此 ssl 流量。
那么我如何才能发现正在使用哪个证书,或者是否存在另一种解密这些消息的方法?
我不想阅读任何人的聊天记录,我的意图是通过网络查看协议消息。为了理解,进行逆向工程并为个人工作目的详细说明一个简单的 JAVA api。
我正在使用wireshark 来读取ssl 流量。
我一直在阅读很多关于嗅探whatsapp 流量的内容,并且我已经知道已经超过了 ssl。但是,一旦我不知道 whatsapp 用于加密的私钥是什么,我需要知道是否有任何方法可以解密此 ssl 流量。
那么我如何才能发现正在使用哪个证书,或者是否存在另一种解密这些消息的方法?
我不想阅读任何人的聊天记录,我的意图是通过网络查看协议消息。为了理解,进行逆向工程并为个人工作目的详细说明一个简单的 JAVA api。
我正在使用wireshark 来读取ssl 流量。
您可以尝试使用可以生成虚假 SSL 证书的代理软件进行中间人攻击,但这并不总是有效。其中一些应用程序使用证书固定来防止这种类型的攻击。
HTTP 代理: http:
//fiddler2.com/get-fiddler
该软件会生成一个明显的假证书,如果应用程序允许,您可以接受该证书。
证书固定:
https ://security.stackexchange.com/questions/29988/what-is-certificate-pinning
除非您控制服务器(RSA 身份验证套件、服务器应用程序或程序内存的私钥)或客户端(应用程序或内存)(好吧,或者两者都协商弱密码,但那是不同的主题),否则您无法解密消息
最简单但最具侵入性且易于发现服务器和客户端的方法:ssl/tls man-in-the-middle with fake certs。由于这正在更改客户端应用程序看到的服务器证书,因此客户端应用程序可能只是拒绝连接(证书固定,硬固定)。如果没有,对您有好处,您可以控制服务器,您可以访问协商的密钥。
为什么? 客户端和服务器都协商一个共享的主密钥,它们从中派生一组客户端和服务器会话密钥(使用在相应的 rfc 中指定的 tls prf,例如 rfc2246 - tls1.0)。
也就是说,如果您不想或不能弄乱服务器并且您可以访问客户端进程,您可以找到一种方法从内存中提取主密钥并重新计算客户端/服务器会话密钥,如RFC。提取可以通过调试应用程序、搜索内存工件或修补它并随后解密协议消息来完成。请注意,主密钥会时不时地重新生成,因此您还必须跟踪导致主密钥协商的客户端问候(客户端随机)或确切时间,以允许wireshark 将密钥与重新协商匹配。密钥仅对此客户端会话有效,您可以解密密码不受限制以 RSA 身份验证作为主密钥是双方在 tls 密钥协商完成后同意的最终秘密。
一旦你有了主密钥并将其映射到客户端你好,你可以将它以nss keylog 格式输入到wireshark 。
下面是一个如何在内存中找到 master_key 的示例: pymemscrape是一个 PoC,它演示了如何从进程内存映像中找到 master_key。
使用会话密钥记录,您可以访问会话的密钥。之后,wireshark 可以用它解析数据包。
在机器上启用会话日志记录。
对于 Windows:“高级系统设置”->“环境变量”
添加名称为“SSLKEYLOGFILE”的新变量和指定的文件 /path/to/sslkeylog.log。
Linux、MAC 操作系统:
$ 导出 SSLKEYLOGFILE=~/path/to/sslkeylog.log
将会话日志文件添加到 Wireshark
编辑 -> 首选项 -> 协议 -> 选择 SSL
浏览“sslkeylog.log”文件到(Pre)-Master-Secret 日志文件名,然后保存。
详细步骤在这里: https ://jimshaver.net/2015/02/11/decrypting-tls-browser-traffic-with-wireshark-the-easy-way/
这是不可能的。虽然每个人都有服务器证书和公钥,但要解密信息需要私钥。私钥仅存在于服务器(whatsapp)上。
您可以解密此信息的唯一方法是入侵 whatsapp 服务器并窃取他们的私钥(请不要这样做)
如果你有钥匙,也许这个插件可以帮助你!看一看