查看原文
其他

新型代码注入技术PROPagate影响主流版本Windows

2017-11-09 E小编 E安全

更多全球网络安全资讯尽在E安全官网www.easyaq.com


E安全11月9日讯 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)。

注:本文由E安全编译报道,转载请注明原文地址

https://www.easyaq.com/news/596039877.shtml


推荐阅读:


▼点击“阅读原文” 查看更多精彩内容

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存