Process Doppelgänging
-- 新的代码注入技术,通杀windows系统的所有版本,并且能绕过绝大多数的安全软件。
介绍
今天(2017-12-07),在伦敦举行的2017年黑帽欧洲安全会议上,来自网络安全公司enSilo的两位安全研究人员描述了一种新的代码注入技术“ProcessDoppelgänging”。
研究人员介绍这种新的攻击方式适用所有的Windows版本,它可以绕过当下绝大多数的安全产品。
Process Doppelgienging与Process Hollowing的技术有些相似,但是有一个不同的地方,它利用了Windows的NTFS Transactions机制。
Doppelgänging利用两个关键特征,可以屏蔽加载修改后的可执行文件。 通过使用NTFS transactions,我们可以直接修改PE文件而不用保存到磁盘上。 然后,我们可以不回滚对PE文件的修改,直接使用未公开的方法来加载该PE文件。此时已成功创建了一个修改过的PE文件进程,整个过程对安全产品来说是完全透明的。
Process Doppelgänging 绕过主流AVs
研究人员表示,由于使用Process Doppelgänging的恶意代码永远不会被保存到磁盘(无文件攻击),这使得所有主要安全产品都无法检测到该代码。
研究人员成功测试了对卡巴斯基,Bitdefender,ESET,赛门铁克,McAfee,Windows Defender,AVG,Avast,奇虎360和Panda等产品的攻击。 而且,即便是像Volatility等先进的取证工具也无法检测到。
在实验中,研究人员使用Process Doppelgaynging来运行Mimikatz,这是一种用于窃取密码的已知程序,实现隐藏恶意程序的方式来避免检测。
PS:在老外眼里,国内的安全软件仿佛只认360。
Process Doppelgänging 一种无文件攻击
“该技术允许恶意软件在目标机器的合法进程上下文中执行任意代码(包括已知的恶意代码),”两名发现这个攻击的enSilo研究人员,Tal Liberman&Eugene Kogan在电子邮件里解释了他们的新研究。
“与Process Hollowing非常相似,但有一个不同点。在于不使用可疑的进程和内存操作,如SuspendProcess,NtUnmapViewOfSection函数。
“为了达到这个目标,我们利用了NTFS Transactions。我们在一个事务的上下文中覆盖了一个合法的文件,然后从被修改的文件(在事务的上下文中)创建一个section,并创建一个进程(没想通具体是怎么实现的?)。整个过程对安全产品来说几乎就是透明的,根本无法检测,并且由于我们回滚了事务,所以我们的活动没有留下任何痕迹。
对于安全产品来说,一切看起来都是正常的,因为恶意进程看起来是合法的,并且会正确映射到磁盘上的映像文件,就像任何合法的进程一样。不会有“未映射的代码”,这通常是安全产品寻找的。
好消息和坏消息
好消息是,在制作Process Doppelgänging方面“存在很多技术挑战”,攻击者需要知道“流程创建方面许多未公开的细节”。
坏消息是,攻击“由于利用Windows的进程加载机制的基本特征和核心设计,所以这种漏洞是不能修补”。
Process Doppelgienging加入到了去年发现的新攻击方法列表中,这些攻击方法很难在现代AV(如Atom Bombing,GhostHook和Propagate)中检测和缓解。
关于ProcessDoppelgänging的研究材料将在接下来的几天内在黑帽网站上发布。
读后感
整个思路和以前的傀儡进程是一致的,不同的是这个方法没有使用一些列敏感函数:SuspendProcess,NtUnmapViewOfSection之流去实现进程启动,而是利用的NTFS事务的某种特性和一些未公开的细节,实现对合法程序的无文件修改并启动,达到绕过安全产品,实现任意功能的目的。后续细节等公开之后再关注一下。
原文
引用地址:"Process Doppelgänging" Attack Works on All Windows Versions