我们网络上的一台机器被Meterpreter破坏了。
在建立连接时,我们有来自整个妥协期间的流量捕获和受感染机器的内存转储。
我们能解码我们捕获的HTTPS/SSL通信量吗?
到目前为止,我们已经使用波动率的垃圾插件提取一些公共证书,但没有明显的私人证书。当然,由于连接仍然建立,私钥肯定在内存的某个地方?
TLS版本是TLSv1 1.0。算法标识符为sha256WithRSAEncryption。
发布于 2017-11-29 04:46:44
是的,你可以提取钥匙。私钥和对称密钥存在于密码库的存储器(例如OpenSSL)中。您必须提取对称密钥才能解密TLS通信量。OpenSSL将其保存在结构SSL->session->master_key中。如果您不知道具体使用的是什么库,一种简单的蛮力方法是从内存中提取所有适当大小的缓冲区,并尝试用每个缓冲区解密TLS流,直到成功为止。
您也可以使用GDB,如从OpenSSL应用程序中提取主密钥中所描述的那样,它可以为您提供可以插入Wireshark的预主控秘密。虽然这个答案集中在实时内存转储上,但是如果你有一个核心程序,它应该也会工作得很好。使用波动性转储进程内存,该进程内存链接到TLS库,然后您可以在该库上使用GDB。如果没有使用调试符号编译OpenSSL,则可能需要使用蛮力方法。
发布于 2017-08-30 23:02:10
这在某种程度上取决于您在记忆中仍然获得的数据类型,以及握手过程中经过协商的TLS-特性。Wireshark可以帮助您解密流量,如果您可以提供,例如,TLS-通道的主要秘密。
https://security.stackexchange.com/questions/140092
复制相似问题