首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何侦听(Windows)系统的所有加密(SSL/TLS)通信量?

如何侦听(Windows)系统的所有加密(SSL/TLS)通信量?
EN

Security用户
提问于 2020-01-21 18:37:58
回答 1查看 442关注 0票数 1

在我的一台Windows机器上(所以我是管理员,基本上可以用它做任何我想做的事情),我想分析流量,这显然是针对恶意软件C&C服务器。流量是经过TLS加密的,并且来自我所知道的注入/受感染的服务(因此我知道导致它的确切的可执行文件)。

我通常在这里寻找最好的(也是最轻的)方法。无论是在Windows机器上安装什么,还是使用某种中间件/TLS代理。理想情况下,最终结果应该是解密的wireshark兼容包转储。

我不仅在寻找一个“轻量级”的解决方案,因为我想让它尽可能容易,而且也因为我正在处理的恶意软件似乎相当回避。我已经试过了布谷鸟和杜鹃虚拟机,它甚至没有试图连接C&C服务器。在每个在线“深度分析”服务上都是一样的。但是,一旦它在裸金属上运行,Windows或定制VM就会弹出,这些VM试图隐藏其VM状态,并且有大量的硬件通过C&C连接。

如果我想侦听浏览器流量(网络安全网关如何分析SSL加密流量?),我就知道该如何做,但我担心这不会起作用,因为恶意软件将有一个证书硬编码,而忽略了我在系统上安装的根证书,这将由TLS代理使用。如果我的想法是错误的,这样的TLS代理肯定会起作用,请也让我知道。

EN

回答 1

Security用户

回答已采纳

发布于 2020-01-21 19:14:02

无法保证从给定主机侦听所有TLS通信量的能力。正如您提到的,恶意软件甚至可能不使用系统安全存储。它还可能有一个它所期望的硬编码证书(或至少是公钥),在这种情况下,它会注意到有人试图进行中间人攻击,除非您可以窃取服务器的私钥(或破解公钥)。

不过,你确实有几个选择。由于您真正感兴趣的是破解来自某个特定程序的流量,这就变得更有道理了。

  • 尝试反向工程二进制文件,并查看其中是否有硬编码证书或密钥。如果是这样的话,您可以尝试用您的MitM使用的密钥替换此密钥。然而,这将改变二进制的指纹,所以如果它试图验证自己的完整性,您也需要消除或修补检查。
  • 找出恶意软件正在使用的密码库,并将其替换为“回溯”版本,该版本记录所有通信量到纯文本。如果它只是使用Windows库,您将需要获得或创建这样一个备份库,但是应该可以强制该进程使用它(尽管同样,如果它正在检查这些二进制文件上的指纹或签名,那么在修补该二进制文件之前,这是行不通的)。如果它使用的是第三方库(如OpenSSL ),那么您可以很容易地替换它,不过还是要注意真实性检查。如果它使用静态链接的代码,这种方法要复杂得多,但仍然可以通过在运行时动态修补进程映像来用反向函数替换TLS代码的入口点(尽管这需要大量的反向工程)。
  • 试图反向工程恶意软件,只需修补TLS的使用,并告诉它用纯文本发送流量。服务器显然不会接受这一点,但是您可以使用一个不可见的代理来加密出站通信量(并解密响应),并以两种方式记录纯文本。同样,要小心完整性检查,而且服务器可能需要从二进制文件中提取客户端证书。
  • 试图对程序进行逆向工程,以便从静态分析中判断出它将做什么。这不会告诉您服务器会说什么,但理论上应该让您编写您自己的客户端,如果您对该部分感兴趣,服务器将信任它。然而,任何半胜任的恶意软件作者将包括保护和混淆,以使反向工程的二进制非常困难(这适用于所有以前的方法要求反向工程,当然)。
票数 5
EN
页面原文内容由Security提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://security.stackexchange.com/questions/224573

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档