2026-03-01 23:31:31
新型代码注入攻击(Process Doppelg?nging)可绕过大多数AV检测
Process Doppelg?nging是一种新型的代码注入技术,由enSilo的安全研究人员在blackhat Europe 2017会议上首次介绍。这种攻击技术能够在所有的Windows版本上运行,并且能够绕过大多数安全产品的检测。
一、Process Doppelg?nging技术概述
Process Doppelg?nging与Process Hollowing技术有一定的相似性,但它巧妙地利用了Windows的NTFS Transactions机制。该技术通过两种不同的特征来掩饰对修改后的可执行文件的加载:首先,使用NTFS事务对可执行文件进行修改,但修改内容不会写入硬盘;其次,利用非文档的执行细节进程加载机制来加载修改后的可执行文件,并且不对修改后的文件进行回滚。这样,从修改后的可执行文件中创建了一个进程,而应用的安全机制却仍然无法察觉。
二、Process Doppelg?nging攻击工作原理
NTFS Transaction是Windows的一个特性,它将原子事务的概念引入NTFS文件系统,允许原子地创建、修改、重命名、删除文件和目录。NTFS Transaction是一个隔离的空间,它保证了Windows应用开发者在写文件输出路径时的成功或完全失败。
Process Doppelg?nging的攻击过程分为以下四个步骤:
三、可绕过大多数的AV检测
由于Process Doppelg?nging使用的恶意代码不会保存到硬盘中,这种攻击也被称为fileless attack(无文件攻击)。这种特性使得主流的安全产品很难检测到它。包括Kaspersky、Bitdefender、ESET、Symantec、McAfee、Windows Defender、AVG、Avast、Qihoo 360、Panda等公司的安全产品,以及像volatility这样的高级取证工具,都无法检测此类攻击。
在实验中,研究人员使用Process Doppelg?nging运行Mimikatz来绕过检测。Mimikatz是一个用于窃取密码的小工具,通过Process Doppelg?nging的攻击方式,它能够成功地在不被检测的情况下运行。
四、Fileless attack的特点
Process Doppelg?nging的目标是允许恶意软件在目标机器上的合法进程上下文中执行任意代码,包括已知的恶意代码。与process hollowing类似,但Process Doppelg?nging加入了新的元素。该攻击的难点在于在不使用可疑进程和内存操作的情况下执行,常见的有SuspendProcess和NtUnmapViewOfSection等。
为了达到这个目标,恶意软件使用了NTFS事务,并重写了事务上下文中的一个合法文件。然后为修改的文件创建一个section,并在section外创建一个进程。从目前的研究情况来看,当文件在事务中时,扫描文件是不可能的。当事务回滚时,恶意活动并不会留下痕迹。
因为恶意进程看起来是合法的,而且会和硬盘上的文件进行映射,所以安全产品无法检测出恶意进程。而安全产品一般检测的是为映射的代码。
五、技术挑战与防御
好消息是,要让Process Doppelg?nging工作,还存在一些技术挑战。攻击者需要知道进程创建的非文档细节,这增加了攻击的难度。
然而,坏消息是,由于攻击利用的是Windows进程加载机制的基本特征和核心设计,所以很难进行补丁操作。这意味着即使发现了这种攻击方式,也很难通过简单的补丁来修复。
此外,虽然Process Doppelg?nging可以在最新的Windows 10版本上工作,但在Windows 10 Redstone和Fall Creators Update版本上,由于存在其他bug,使用Process Doppelg?nging会引起蓝屏死机,从而破坏用户电脑。这虽然在一定程度上限制了该攻击技术的使用范围,但也提醒了用户和系统开发者需要更加关注系统的安全性和稳定性。


综上所述,Process Doppelg?nging是一种新型且危险的代码注入攻击技术,它能够绕过大多数安全产品的检测。因此,用户和系统开发者需要保持警惕,加强系统的安全防护措施,以应对这种新型攻击技术的威胁。