如何检测 Meterpreter 和类似的恶意软件?

信息安全 linux 反恶意软件
2021-08-15 05:26:34

是否有可能找到不修改硬盘但仅存储在 RAM 中的 Meterpreter 或类似恶意软件?

大多数常见的反rootkit 软件都喜欢rkhunter并且chkrootkit找不到它。

4个回答

首先,“meterpreter”不是恶意软件。我猜你的意思是如何检测受感染机器和攻击者之间打开的 Meterpreter 会话。

大多数防病毒软件都可以检测内存中的meterpreter有效载荷——它们是公开的,这就是为什么Metasploit有特殊的多态引擎来尝试隐藏有效载荷。

一个很好的事实:像 Canvas 开发框架这样的商业工具与防病毒公司签订了特殊协议,让他们不检测其有效载荷。

此外,如果会话未加密(现在默认为 SSL),您可以在网络级别检测事物:大多数 IDS 可以检测meterpreter,例如 Snort 具有签名。您还可以检测初始meterpreter DLL 上传。

此外,还存在用于这项工作的工具: Antimeter - http://packetstormsecurity.org/Win/antimeter.zip - 它可以检测注入恶意 DLL 的进程并杀死它们。

在主机上,netstatProcess Explorer 将显示有趣的连接和加载的 DLL。

最后,没有任何东西接触磁盘是不正确的:脚本首先将恶意 DLL 上传到磁盘上,然后将其注入到进程中。

阿瓦斯特!具有完整启发式的可以找到 Meterpreter,以及许多其他 AV 解决方案。

但是,如果 Metasploit 框架中的 shellcode 启动器被 shellcodeexec 修改,那么标准的 AV 将不再能够检测到 Meterpreter。

您需要检查系统上的每个进程并查找可疑入口点(不太可能)或可疑 IAT(Meterpreter 默认使用 VirtualAllocEx、CreateProcessA、WriteProcessMemory、CreateRemoteThread、ReadProcessMemory、OpenProcess、CreateServiceA、StartServiceA 和 OpenProcessToken)。

使用 Meterpreter(某些)攻击的常见活动可能包括:

  1. 进程注入/迁移
  2. 密码转储
  3. 记录击键
  4. 加载更多恶意软件
  5. 打开新的端口/服务
  6. 添加新用户
  7. 上传/下载文件

某些 AV 会拾取掉在系统上的普通 Meterpreter exe,例如,如果它作为恶意文档的一部分发送。病毒总链接)但这可以通过使用编码框架快速克服。

正如其他基于网络的 IDS(例如 Snort)所指出的,具有 Meterpreter 的签名(假设作者没有显着修改有效负载)。

要检测这种行为,您可能需要更多地关注基于主机的 IDS由于 HIDS 专门寻找我列出的行为而不是文件 AV 签名,因此这种类型的系统有更好的检测机会。一个非常著名的 HIDS 是OSSEC我没有专门用meterpreter对其进行测试,但我想如果进行上述活动,它会发出很多警报。

一般来说,rootkit 检测器不会发现这类事情,因为它只存在于 RAM 中,而 rootkit 检测器会寻找 rootkit 需要的明显持久元素。

如果此恶意软件仅是 RAM,那么它可能具有与驻留在 RAM 中的其他恶意软件相同的造成损害的能力。正如@nealmcb 指出的那样,除非它可以写入持久存储,否则重新启动将完全解决问题,因此通常不会太担心 - 它肯定不会被视为 rootkit。

但是,就检测到重新启动、写入磁盘然后移回 RAM 并覆盖轨道而言,我想知道基于 Meterpreter 的恶意软件是否可以做到这一点。理论上看起来是可能的。