百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

解析APT29的无文件WMI和PowerShell后门

cac55 2024-10-13 01:22 80 浏览 0 评论

翻译:興趣使然的小胃

预估稿费:200RMB

投稿方式:发送邮件至linwei#360.cn,或登陆网页版在线投稿

一、前言


安全公司Mandiant观察到APT29使用了一款名为POSHSPY的后门工具。POSHSPY使用了WMI(Windows Management Intrumentation,Windows管理工具)和PowerShell脚本,这也是该组织经常使用的两种工具。在调查过程中,Mandiant发现APT29将POSHSPY作为辅助后门使用,以便在主后门失效后重新夺回目标控制权。

POSHSPY大量使用了Windows系统的内置功能来实现后门功能,它利用WMI实现后门的存储和本地持久化,不熟悉WMI的人难以发现其踪影;利用PowerShell载荷使得目标系统运行的是合法的进程,只有在增强型日志记录或内存中才能发现恶意代码运行痕迹。该后门活动并不频繁,使用了流量混淆、加密处理以及地理上合法的网站作为C2(command and control,命令控制)服务器,使安全人员难以识别其网络流量。总体而言,POSHSPY的每一个方面都是高效且隐蔽的。

Mandiant最初在2015年的一次应急响应处置中发现了POSHSPY后门,早期版本的后门使用的是PowerShell脚本。随后,攻击者更新了后门版本,使用WMI来实现本地存储和持久化。在过去两年中,Mandiant在多个场景中都发现过APT29组织使用POSHSPY的痕迹。

我们最早在一次演讲中讨论了APT29使用该后门的一些情况。读者可以参考幻灯片或演讲视频来回顾之前的分析内容。

二、WMI简介


WMI是从Windows 2000起,在每个Windows系统版本中都会内置的一个管理框架。WMI以本地和远程方式提供了许多管理功能,包括查询系统信息、启动和停止进程以及设置条件触发器。我们可以使用各种工具(比如Windows的WMI命令行工具wmic.exe)或者脚本编程语言(如PowerShell)提供的API接口来访问WMI。Windows系统的WMI数据存储在WMI公共信息模型(common information model,CMI)仓库中,该仓库由“System32\wbem\Repository”文件夹中的多个文件组成。

WMI类是WMI的主要结构。WMI类中可以包含方法(代码)以及属性(数据)。具有系统权限的用户可以自定义类或扩展许多默认类的功能。

在满足特定条件时,我们可以使用WMI永久事件订阅(permanent event subscriptions)机制来触发特定操作。攻击者经常利用这个功能,在系统启动时执行后门程序,完成本地持久化。WMI的事件订阅包含三个核心WMI类:Filter(过滤器)类、Consumer(消费者)类以及FilterToConsumerBinding类。WMI Consumer用来指定要执行的具体操作,包括执行命令、运行脚本、添加日志条目或者发送邮件。WMI Filter用来定义触发Consumer的具体条件,包括系统启动、特定程序执行、特定时间间隔以及其他条件。FilterToConsumerBinding用来将Consumer与Filter关联在一起。创建一个WMI永久事件订阅需要系统的管理员权限。

我们观察到APT29使用WMI来完成后门的本地持久化并存储PowerShell后门代码。为了存储后门代码,APT29创建了一个新的WMI类,添加了一个文本属性以存储字符串,并将加密base64编码的PowerShell后门存放在该属性中。

APT29创建了一个WMI事件订阅来运行该后门,其具体内容是通过PowerShell命令,直接从新的WMI属性中读取、加密和执行后门代码。通过这种方法,攻击者可以在系统中安装一个持久性后门,并且不会在系统磁盘上留下任何文件(除了WMI仓库中的文件之外)。这种“无文件”后门技术使得常见的主机分析技术难以识别恶意代码。

三、POSHSPY的WMI组件


POSHSPY后门的WMI组件利用一个Filter来定期执行PowerShell脚本。在某个样本中,APT29创建了一个名为BfeOnServiceStartTypeChange的Filter(如图1所示),过滤条件设为每周一、周二、周四、周五以及周六的当地时间上午11:33时各执行一次。

图1. “BfeOnServiceStartTypeChange“的 WMI查询语言(WMI Query Language,WQL)

过滤器条件

“BfeOnServiceStartTypeChange”过滤器绑定到一个CommandLineEventConsumer消费者:WindowsParentalControlsMigration。APT29配置WindowsParentalControlsMigration消费者来静默执行经过base64编码的PowerShell命令,该命令在执行时会提取、解密并执行存储在RacTask类的HiveUploadTask文本属性中的PowerShell后门载荷。图2显示了WindowsParentalControlsMigration消费者所执行的“CommandLineTemplate”命令。

图2. WindowsParentalControlsMigration执行的CommandLineTemplate命令

从“CommandLineTemplate”命令中提取的PowerShell命令,解码后如图3所示:

图3. 从CommandLineTemplate中提取的解码后的PowerShell代码

四、POSHSPY的PowerShell组件


POSHSPY样本的全部代码可以在这里找到。

POSHSPY后门可以下载并执行PowerShell代码以及Windows可执行文件,该后门包含几个主要功能,包括:

1、下载PowerShell代码并使用EncodedCommand参数执行该代码。

2、将可执行文件写入到“Program Files”目录下随机选择的一个文件夹中,并将可执行文件名改为与所选文件夹相匹配的名称,如果写入失败,则使用系统生成的临时文件名,扩展名为“.exe”。

3、修改下载的每个可执行文件的标准信息时间戳(创建时间、修改时间以及访问时间),以匹配System32目录中随机选择的一个文件的时间戳,创建时间被修改为2013年之前。

4、使用AES和RSA公钥加密算法对木马通讯进行加密。

5、利用域名生成算法(Domain Generation Algorithm,DGA),通过域名、子域名、顶级域名(top-level domains,TLDs)、统一资源标识符(Uniform Resource Identifiers,URIs)、文件名和文件扩展名列表,生成C2服务器的URL地址。

6、使用自定义的User Agent字符串,或者使用从urlmon.dll中提取的系统User Agent字符串。

7、在每个网络连接中使用的都是自定义cookie键值或随机生成的cookie键值。

8、按2048字节分段上传数据。

9、在上传或下载前,在所有的加密数据前附加一个文件签名头部,文件类型从以下几种类型中随机选择:

ICO、GIF、JPG、PNG、MP3、BMP

本文分析的这个样本使用了11个合法域名,域名的所有者为同一个机构,其地理位置处于受害者附近。这些域名与DGA算法相结合后,可以生成550个不同的C2服务器URL地址。样本的活跃程度较低,使用DGA算法以生成复杂的C2服务器地址,通信数据中添加其他文件类型头部以绕过基于内容的安全审核,种种行为使得安全人员难以通过常规的网络监控技术识别该后门。

五、总结


POSHSPY是APT29组织技术能力的一个绝佳样例。通过这种无文件后门技术,攻击者可以构造一个非常独立的后门,并与他们之前的普通后门结合使用,确保在普通后门失效后还能实现对目标的持久性渗透。如果你掌握WMI和PowerShell的相关知识,你不难发现这个后门存在的痕迹。通过在系统中启用并监视增强型PowerShell日志,我们可以捕捉到恶意代码的执行过程,因为使用WMI持久化技术的合法应用非常稀少,我们可以遍历系统环境,快速准确地找到其中的恶意文件。这个后门是我们捕获的几个后门家族中的其中一员,其他的后门包括域名前移后门以及HAMMERTOSS后门。

六、相关阅读


这篇文章介绍了如何利用PowerShell日志获取更多信息,提高系统中PowerShell活动的可见性。

William Ballenthin、Matt Graeber和Claudiu Teodorescu发表的白皮书介绍了与WMI有关的攻击、防御和取证技巧。

Christopher Glyer和Devon Kerr的演示文档介绍了在Mandiant之前调查工作中发现的与WMI技术有关的其他攻击活动信息。

FireEye公司的FLARE团队公布了一个WMI仓库解析工具,以便调查人员能够提取内嵌于WMI仓库中的数据,从而识别使用WMI持久化技术的应用。

相关推荐

电工电路图中二极管、三极管的符号标识

1、二极管二极管是一种常用的具有一个PN结的半导体器件,它具有单向导电性,通过二极管的电流只能沿一个方向流动。二极管只有在所加的正向电压达到一定值后才能导通。在电工电路图中,二极管以专用的图形符号和电...

开关部件在电工电路中的符号标识

1、在电工电路中还常常绘制有具有专门含义的图形符号,认识这些符号对于快速和准确理解电路图十分必要。在识读电工电路的过程中,还常常会遇到各种各样的功能部件的图形符号,用于标识其所代表的物理部件,例如各种...

走过路过 别错过!整理最全电工电路各种元器件及辅料字母符号解析

走过路过别错过!整理最全电工电路各种元器件及辅料字母符号解析建议收藏备用起来以备不时之需!每天学习一点点就会有收获!...

熬夜吐血整理的电工电路的字母符号!及各种元器件实物图解符号!

熬夜吐血整理的电工电路的字母符号!及各种元器件实物图解符号!...

电气人士接好了!史上最全的电气符号介绍

有没有人像小编一样看到这样的图纸就犯晕啊?像这样的图纸对于电气人士来说应该不陌生吧,可是对于一些刚入行的,或者在电气行业却不是技术岗位的人来说,那与天书没什么区别。今天小编狠狠心,为大家搜集了一些关于...

新手工程师,这些电路图符号你都了解吗?

以下电路图符号大全,千万别弄错了噢~~更多行业信息可查阅快点PCB平台订阅号:eqpcb_cp。...

电工学习通(一):电路图符号知识大全(安科瑞任心怡、许玉龙)

电路图符号知识我们常说的电路图呢是一种以物理电学标准符号来绘制各MOS管电子元器件组成和关系的电路原理布局图,听不懂也没关系,我们只要记住以下几点就可以了:电路图符号数量众多,大致可以分为四个类别:传...

常用电子元器件电路符号及实物外形图,你值得拥有

作为一名电工初学者,认识并了解常用的电子元器件是一项必备的基本技能,这包括电子元器件的电路符号、实物、用途等。本文电工学习网小编和大家分享一些电子元器件的电路符号及实物外形图,希望对大家的学习有所帮助...

电工常用的符号及单位

常用的符号及单位①欧姆定律I=U/R(适用于电阻电路,如白炽灯)②电能计算W=P·t(W为我们常说的电度,P为功率多少瓦或千瓦,t为时间小时计量)例如一个220V,60W的白炽灯,在220V电压工...

电路图常用的字母符号及释义(详细版!)

你是不是在查看电路图时常遇到一些看不懂的字母或字符,不明白它们表示什么含义?今天小编整理了一些电路图常用的字母符号及其释义,供大家查阅,赶快收藏吧!在之前的文章,小编大致整理了绘制电路图常涉及的电路符...

最全电工电路的字母符号大全!电工必备知识技能!建议收藏备用

最全电工电路的字母符号大全!电工必备知识技能!建议收藏备用!每天学习一点点就会有收获!学海无涯!...

电路符号大全,赶快收藏

认识电路符号是绘制电路图的前提。绘制电路图需要涉及的电路符号罗列出来有很多,大致可以分为五个类别:基本电路符号、传输路径符号、开关和继电器符号、集成电路组件以及限定符号。基本电路符号绘制基础电路图可能...

电气电路的图形符号,不怕看不懂电路图啦

一、电压、电流、电池的图形符号//二、信号灯、信号器件、按钮、旋钮开关和测量仪表的图形符号//三、负载开关的图形符号//四、熔断器的图形符号//五、继电器、接触器、接触器触点和操作器件的图形符号//六...

图解普通电阻器电路符号的含义,初学者必看

电子元器件的电路符号中含有许多有用的、对电路分析有益的识图信息,掌握了电子元器件电路符号的识图,电路分析就会简单一些。电阻器电路符号图1-1所示是普通电阻器电路符号图解示意图。在电路分析中,为了表述方...

电路图符号大全(电容、电阻、二极管、三极官、集成电路)

基础知识薄弱,不懂工作原理,不会看图、识图,这里更多电路图(原理图)符号大全、电路图形符号(指用一种书画图形代表一种电子元件)(比如:电容、电阻、二极管、三极官、集成电路等等)的符号为初学...

取消回复欢迎 发表评论: