关于某黑客组织最近一次使用APT用ZeroT和PlugX瞄准政府目标的分析
2017-04-08谢天
谢天
摘要 :本文主要研究黑客组织最近一次使用apt黑客工具对某政府目标组织实施分析的过程及其技术细节,通过分析过程我们可以了解黑客最新的攻击技术手段并以此思考在防御端可以加强的方面, 这个APT活动代表了攻击技术的变化,APT活动在来年将继续增加,需要我们继续投入更多的精力进行分析和防御以保障国家的信息安全
关键词: APT攻击;钓鱼邮件;远程访问木马
中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2017)05-0049-02
1 概述
最近某黑客组织开始使用称为ZeroT的新下载程序安装PlugX远程访问木马(RAT),并添加了Microsoft编译的HTML帮助(.chm)作为鱼叉式网络钓鱼电子邮件中提供的初始droppers之一,他们使用上述木马病毒对欧洲某国的政府目标进行了攻击,通过杀毒软件公司我拿到了样本并对其进行了分析,了解了APT攻击行为的交付细节,并描述了与此团体相关联的策略,技术和过程(TTP)的其他更改。
2 行动过程
在以前的活动中,该组织使用钓鱼网络钓鱼电子邮件,邮件附件使用Microsoft Word文档并利用CVE-2012-0158或用URL链接到RAR压缩的可执行文件。 虽然这些行为模式中的一些仍然继续,在2016年6月的新样本中观察到攻击者使用一种新型的拖放器提供以前未知的恶意软件,暂时命名为“ZeroT”。具体来说,CHM文件20160621.chm释放了第一个已知的ZeroT样本。Microsoft HTML帮助文件格式(CHM)用于一种软件文档格式,可能由HTML页面和其他压缩文件组成。 这个特定的CHM包含HTM文件和可执行文件。 HTM文件包含向用户显示的文本,并引用可执行文件svchost.exe。因此,打开CHM具有运行可执行文件的效果(UAC对话框如图1所示)。
攻击者还继续发送钓鱼邮件,邮件中附带有含有CVE-2012-0158漏洞利用的附件,以此来攻击目标客户端。 这些文档是用MNKit工具构建的 例如,主题为“2017-2020年的联邦目标计划”的电子邮件包含附件“2017-2020.doc”,在2016年12月发送给一家航空公司。
在2016年下半年,还发现了许多包含了ZeroT的RAR文件和的RAR SFX(自解压可执行文件)。下表中是一些例子。从文字上看,攻击目标都是东欧方面的国家。
3具体技术细节分析
本节提供对ZeroT的技术分析,包括它的使用过程和混淆技术的分析。
3.1 UAC绕过和旁路调用
在分析中发现,许多ZeroT RAR SFX样本都包含一个名为Go.exe的文件,此文件用于绕过UAC保护。 此可执行文件含有一个PDB路径,通过名字我们可以猜到其目的是绕过UAC。
这个可执行文件使用了与旁路调用DLL和ZeroT有效载荷(稍后描述)中相同的混淆技术。 执行的时候,Go.exe修改图5所示的注册表项,以通过使用事件查看器[1]达到UAC绕过。
然后它执行eventvwr.exe,然后继续调用Zlh.exe以执行UAC 绕过漏洞。
Zlh.exe是一个合法的,签名的诺曼安全AS应用程序,用于旁路调用一个恶意的nflogger.dll DLL。加密的ZeroT有效载荷通常命名为NO.2.mui。旁路调用DLL并不总是使用相同的漏洞可执行文件,但它的功能总是相似的。 通常DLL没有被加壳。 这个恶意DLL通常使用相同的垃圾代码混淆:在真实指令之间插入假的API调用。 在ZeroT本身的多个函数中可以找到相同的混淆。
这个DLL没有其他显着的特性,因为它的功能像一个典型的恶意负载。 在将加密的有效负载加载到内存后,它将执行转移到位于文件开头的shellcode。 即使该过程类似于稍后的PlugX RAT侧载,但是shellcode和混淆技术没有什么共同点。 一旦加载到内存中,ZeroT shellcode不会出现任何类型的混淆,与PlugX不同。 这个shellcode负责解包加密和压缩的有效载荷。 如下面详细介绍的新的PlugX 释放器,这是使用RC4和RtlDecompressBuffer完成的。 在PlugX样本中,ZeroT的PE头部被篡改,特别是“MZ”和“PE”常数。 在一些PlugX版本上,“GULP”或“XV”常被作为替换“MZ”常数的标签。
3.2 ZeroT命令和控制协议
ZeroT通过HTTP与其命令和控制(C&C)端通信。 该恶意软件的所有请求都使用了假的User-Agent:“ Mozilla / 6.0(兼容; MSIE 10.0; Windows NT 6.2; Tzcdrnt / 6.0) ”,其中“ Tzcdrnt ”可能是“ Trident ”的错字。所有样本中,ZeroT发送第一条信息到index.php,并等待依條使用静态密钥的RC4加密响应:“(* ^ GF(9042&*”)。
在解密的初始服务器响应中,ZeroT需要几个URL,包括以“w:”为前缀的POST系统信息的位置和用“r:”前缀表示的任何阶段2有效载荷的下载位置。
接下来,ZeroT使用HTTP POST信标将有关受感染系统的信息传送到C&C。 第一个信标包含以下数据:“ Cn =%s&La =%s& ”其中Cn是计算机名称,La是本地IP地址。第一信标以明文发送,这可能是恶意软件作者的疏忽,因为在随后的POST信标被加密。 第一POST信标之后是另一个以下格式:“ Lg =%d&Pv =%d&Bu = %% s&Cn =%s&Cu =%s&Dn =%s&Ki =%s&La =%s&Me =%s& =“%s&; Ov =%s&Pt =%s&; Fl = %% d ”,使用以下密钥RC4加密:“s2-18rg1-41g3j_ .;”。 此POST发送基本指纹数据,包括计算机名称,系统语言,域信息和Windows版本。
ZeroT的C&C协议的最后一部分是下载阶段2有效载荷。 在ZeroT的初始样本中, tassnews [。] net C&C用于分发非编码的PE有效载荷。 目前发现的载荷是用于提供PlugX的RAR SFX文件。
与使用tassnews [。] net的示例不同,与versig[.]net通信的样本阶段2载荷释是bitmap而不是EXE。
阶段2的BMP看起来像正常图像,但其实它是使用了一种形式的隐写术。
F.bmp图像的分析显示,它确实使用最低有效位(LSB)隐写术,隐写术是指在图像中嵌入数据而不显著影响其外观。
3.3 ZeroT的位图LSB隐写分析
ZeroT使用了單个大函数来做自定义LSB算法。 它可以选择性地根据嵌入的有效载荷的大小和所使用的图像来提取每像素字节一个,两个,三个或四个位,这意味着它能够具有1位,2位,3位和4位LSB(图4)。
算法的第一步从图像中提取宽度和高度。 因为位图会被填充到32位边界,所以ZeroT将通过AND'ing 3 * Width来检查是否存在任何空间可以填充。 如果该值不为零,则从四中该值减去,然后将其用作填充空间。
算法中的以下步骤是逐行组合位图。从54的硬编码偏移开始,迭代地3 乘以宽度字节,再复制到先前分配的存储器的末端(3 *宽度*高度)。 然后跳过填充(如果存在),接着跳过下一个3 乘以宽度字节,直到复制所有像素行。
接下来,从组装的位图的偏移10开始,ZeroT用1bit Lsb从32字节提取32位值。 然后从偏移9处开始提取阶段2文件后缀名,并向后提取,直到找到一个标志位(例如,“. exe ”)。
3.4 阶段2有效载荷
PlugX有效负载一直是RAR SFX文件,并使用其它常见的旁路可执行文件,如fsguidll.exe。 ZeroT通过添加新服务使目标系统启动时就会运行PlugX。
有些特别的ZeroT样本下载了小得多的BMP有效载荷。 下面是一个例子,其中阶段2有效负载是使用自定义的释放器而不是RAR SFX分发的。 这个释放器加载资源段(图18),使用命令行参数的MD5散列作为RC4密钥解密它们,并通过RtlDecompressBuffer API用LZNT1算法解压缩它们。 有效载荷中包含三个资源项,最终解密为:“ fsguidll.exe ”,“ fslapi.dll ”和“ flsapi.dll.gui ”。
最后,在成功获得阶段2有效负载的情况下,PlugX成功被投放。
4结论
这个APT活动代表了攻击技术的变化,APT活动在来年将继续增加,需要我们继续投入更多的精力进行分析和防御以保障国家的信息安全