新型代码注入技术“PROPagate”影响主流版本Wind…

2018-09-01 05:40:54来源:红黑联盟 阅读 ()

新老客户大回馈,云服务器低至5折

Hexacorn一名安全研究员(网名Adam)发现一种被称为“PROPagate”的新型Windows代码注入技术,它利用合法Windows GUI管理API和函数的通用属性。

近期Windows版本上的多个应用程序受影响

Adam最初集中研究Windows操作系统函数SetWindowSubclass API,负责管理父进程内GUI应用程序窗口。发现其能滥用SetWindowSubclass函数内部使用的合法GUI窗口属性(UxSubclassInfo和CC32SubclassInfo),在其它合法应用程序内部加载并执行恶意代码。

Adam表示,并不是所有进程都可以实现注入,只有使用Windows GUI控制和流行GUI框架的应用程序能实现注入。Adam补充称,这并不是真正意义上的限制,该漏洞覆盖了大多数流行的应用程序,包括Windows Explorer——流行的代码注入目标。

安全研究员Adam 10月底发布博文初次介绍PROPagate技术时表示,PoC PROPagate攻击将代码注入了Windows Explorer、Total Commander、 Process Hacker、Ollydbg等应用程序。

Adam表示不会在网上发布这个对Windows XP和Windows 10 都奏效的PoC。

Adam上周五发布后续研究时表示,稍作修改后,PROPagate代码注入攻击对32位和64位进程均奏效。

PROPagate攻击可以通过其它API实现

安全研究员Adam表示,除了SetWindowSubclass API属性UxSubclassInfo和CC32SubclassInfo,其它通用或合法属性可以以相同的方式被潜在利用,并且有进一步的研究空间。许多应用程序会创建窗口属性,其利用的属性似乎包含引用回调函数或经修改指向恶意代码方法的Memory Pointer。

Adam罗列了PROPagate攻击的未来研究途径:

微软类库MFC(Microsoft Foundation Class Library)使用‘AfxOldWndProc423’属性对窗口创建子类。

ControlOfs[HEX]_与Delphi应用程序有关的属性引用内存可视化组件库(VCL)对象。

新窗口框架,例如Microsoft.Windows.WindowFactory.*

大量自定义控制使用“子类”,并且这些控制能以类似的方式被修改。

一些属性会暴露COM/OLE接口,例如OleDropTargetInterface。

SetWindowWord 和SetClassWord。

PROPagate恐无法打补丁进行修复

安全研究员Adam明确表示,PROPagate是一种逃避技术,与其它类型的安全漏洞(如远程代码执行或提权漏洞)相比,PROPagate不算是一个值得关注的严重问题,因此他并未联系微软。

Adam补充称,要利用这种攻击,攻击者必须在系统上运行代码。

PROPagate与AtomBombing类似,尽管可被武器化 。但即使安全研究员Adam向微软报告了这个问题,微软可能不会将其视为安全漏洞。去年发现类似的代码注入技术AtomBombing的enSilo研究团队联系微软后,由于AtomBombing是一个设计缺陷,而非漏洞,Microsoft无法在不改变整个OS运作模式的情况下打补丁修复,收到了类似回复。但在enSilo披露AtomBombing技术几个月后,Dridex银行木马使用该技术将恶意代码注入被感染电脑上的合法应用程序。PROPagate也有可能被用于发起类似的恶意软件攻击。

Adam指出,AtomBombing就是一个绝佳的例子,PROPagate在本质上与AtomBombing非常类似。这是在远程进程内执行代码的简练方式,无需借助传统的方式,例如远程线程或异步过程调用。在操作系统和反病毒层面防范代码执行技术一直相当困难。

另一代码注入技术:AtomBombin

2016年年底,一种称为AtomBombin的新的代码注入技术被发现,该技术利用Windows的异步过程调用(简称APC)机制。该恶意软件能修改Windows的操作系统atom table,欺骗合法应用程序执行恶意活动。AtomBombing还帮助恶意软件执行Man-in-the-Browser(MitB)攻击,这是银行木马常用的攻击媒介。通过利用AtomBombing,恶意软件还能对用户屏幕进行截屏,访问加密密码或采取白名单应用程序能执行的其它活动。

当时,所有Windows版本受影响。目前,这种技术还不能够被防入侵的安全工具检测到。

AtomBombing需要以下三步来实现:

1.任意地址写任意值(Write-What-Where) - 能够将任意数据写入目标进程的地址空间中的任意位置。

2.执行 - 劫持目标进程的线程以执行在步骤1中写入的代码。

3.恢复 - 清理并且恢复执行在步骤2中被劫持的线程。

其他代码注入技术

除了AtomBombinb,过去发现的其它代码注入技术还包括SQL注入、XSS攻击、hotpatching、code hooking等。较为出名的曾被滥用的其它一些臭名昭著的代码注入技术包括:DLL Sideloading、Process Hollowing、异步过程调用(APC)劫持、Gapz/Powerloader/EXMI技术、AtomBombing和Hook导入表(IAT hooking)。

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:以色列网络人才充裕,军队却伤透脑筋

下一篇:美国空军CISO谈未来网络防御的关键性创新方向