检测反射式DLL注入

2024-05-15 21:29:15 发布

您现在位置:Python中文网/ 问答频道 /正文

在过去的几年中,恶意软件(以及一些笔测试工具,如Metasploit的meterpreter负载)已经开始使用reflective DLL injection (PDF)将DLL加载到进程的内存中。这样做的好处是文件永远不会写入磁盘,而且很难被检测到。我看到的许多例子都是基于Joachim Bauch's work

但是,在DEF CON 20 Andrew King demonstrated that he was able to detect DLL's injected using reflective DLL injection。他的演讲被称为“Detecting Reflective Injection”。 不幸的是,他没有发布源代码(他当然没有义务这么做)。

UPDATE: Apparently I missed it, but Andrew did open-source this work a couple years ago: https://github.com/aking1012/dc20

此外,名为“Antimeter”的工具可以在使用反射dll注入加载时检测meterpreter引擎。再说一次,闭源。

我知道Andrew King的工具和Antimeter都是用Python编写的,并且使用pydbg/pydasm来枚举运行可执行文件的内存。

是否有人愿意共享一些通用源代码(Python、C、Delphi或其他语言)来演示如何检测反射性DLL注入?有内存鉴证工具可以分析内存转储并找到它,但我希望在运行的系统上执行应用程序(如antimeter所做的),并找到具有反射注入的DLL的进程

如果您对了解反射性DLL注入的工作方式感兴趣,那么这里有一些open-source code written in Delphi演示了如何做到这一点。

更新: 我已经测试过了,我可以在没有管理员权限的情况下反射地注入DLL(并且作为普通用户),但作为用户,我当然只能注入运行在相同完整性级别(以及在我的会话中)的进程……但这仍然包括诸如Office套件、Internet Explorer等应用程序


Tags: 工具内存source源代码进程openworkdll