阅读: 41
近期,绿盟科技伏影实验室捕获了一起针对多吉币(Dogecoin,狗狗币)关注者的钓鱼攻击事件。黑客使用精心设计的加密钓鱼文档,在诱骗受害者启用编辑功能解密文本内容的同时,利用恶意vba脚本执行恶意程序,最终通过投放cobaltstrike beacon控制受害者主机,实现窃取受害者敏感数据的目的。通过分析,伏影实验室确认本次事件的攻击源来自土耳其某学术机构,背后的攻击者可能是有长期活动历史和较高技术水平的攻击组织(APT)。
多吉币(Dogecoin)凭借其近期的话题度和在价格上的表现,成为了虚拟货币市场上的流量明星,吸引了大量投资者的关注。与此同时,从事信息窃取的黑客也没有放过这些新入场的玩家们。
本次事件中,攻击者投放的诱饵文档名为dogecoin_survey.doc,文档最终显示的内容也是关于多吉币历史的文章,可以看出其攻击目标非常明确。经过多级释放后,黑客在受害者主机上植入了cobaltstrike beacon程序。这种全功能的RAT木马可以轻易地窃取受害者主机上的各种密码、键盘输入、屏幕内容等信息,从而实施与加密货币有关的盗窃行动。
该起攻击事件中,黑客使用的攻击手法,包括诱饵内容解密方式、中间载荷形式、解密算法、前置通信逻辑等,与常见钓鱼邮件攻击者的手法都有很大差异,并且显示了一定的设计水平。此外,黑客控制的CnC位置较为特殊,展现了其对社会机构设施的渗透和控制能力。这一现象说明近期加密货币的热潮可能吸引了一些“跨专业”的黑客进场,并使用自主设计的攻击流程进行信息窃取活动。
本次攻击事件中,四阶段下载者木马LetMeOut.exe和最终阶段远控木马cobaltstrike beacon的通信CnC地址均为http://jc.neu.edu.tr/。经查询,该域名归属于土耳其私立大学近东大学(yakin dogu üniversitesi),这说明该机构的部分网络设施已遭到滥用,或已被黑客控制。
目前,攻击者展现的对学术机构进行攻击和恶意利用的相关行为,证明其对该次攻击的准备十分充足,这是长期的高威胁攻击组织(APT)的特征之一。伏影实验室正在采集和确认该攻击者与已知攻击组织的联系。
Stage1:钓鱼文档dogecoin_survey.doc
本次攻击事件中,黑客使用的攻击诱饵为包含多吉币(Dogecoin)相关信息的doc文档。文档打开后,会直接显示加密的文本内容,并在抬头处显示需要开启编辑功能的提示:
如果用户开启编辑功能,程序中的恶意vba就会运行。
该钓鱼文档中vba代码的主要功能分为两部分。
第一部分为doc内文本解密,解密方式为字符替换,通过密文字典“AE?RNLKDIOMUTSBY????aei?rnlkd?iomutsby????”将文档中的unicode转为ascii值。
转码后的文档显示如下内容:
第二部分vba代码用于释放恶意程序。
这个名为ProperRender的函数首先通过系统时间计算一个dga域名并解析其dns,该域名所在域为.d0g3.cachedns.io,当前解析地址位于digatalocean的VPS机房。该操作推测用于伪装,或用于为黑客提供上线统计。
随后,vba代码提取doc文档中的base64字符串,转码并保存为%LOCALAPPDATA%\Microsoft\EdgeFss\FileSyncShell64.dll,该文件是下一阶段主要攻击载荷。
最后,代码通过SWbemLocator访问WMI,将com组件FileSyncShell64.dll的相关项写入注册表中:
Stage2:COM组件FileSyncShell64.dll
FileSyncShell64.dll被释放后,由vba代码注册并运行。
该程序的主要功能包含在dllentry中,并包含如下检测机制:
- 检测父进程名称是否为c:\windows\system32\taskhost.exe;
- 检测自身是否为高权限进程
检测通过后,程序提取资源段中的加密数据,使用多字节异或算法进行解密,获得一段shellcode并运行。解密过程中使用的异或键为:
值得一提的是,截至4月25日,该恶意com组件在virustotal的检出为0。
Stage3:shellcode
被FileSyncShell64.dll运行的shellcode包含以下功能:
- 解密
shellcode主函数使用一种speck变种算法对自身[0x235:0xC98D]部分的内容进行解密,对应密钥为62 C2 6B 18 51 D1 B5 F5 F3 BD BC 0F 36 66 02 43和5A 26 91 58 80 02 19 77 E7 AD 57 69 D2 62 DB 03
- hash验证
shellcode使用另一speck变种hash算法对解密后的头部内容进行验证,确定解密的正确性
- PE文件加载
shellcode会在内存中加载解密后内容中的一个PE文件,该文件是第四阶段木马载荷。
Stage4:下载者木马LetMeOut.exe
shellcode释放的PE文件是一个严重混淆的.Net应用程序,名为LetMeOut.exe。
程序主要代码逻辑分为两部分:
程序首先确认目录%LOCALAPPDATA%\Microsoft\EdgeFss\下是否存在名为FileSyncShell64.dat的二进制文件,如果发现该文件,则使用异或算法和gunzip对文件进行解密和解压缩,随后载入内存中运行。异或解密过程中使用的密钥为:
通过行为判断,该FileSyncShell64.dat是木马程序经过CnC通信后缓存在本地的加密木马文件。
如果指定目录下未发现名为FileSyncShell64.dat的文件,木马会与CnC地址http://jc.neu.edu.tr/apply进行通信,并在http参数部分附加三段信息,对应如下:
参数名 | 参数内容 |
P1 | base64转码,当前代理内容 |
P2 | base64转码,http User-Agent内容 |
P3 | 布尔值,是否为64位进程 |
示例http内容如下:
随后,程序进行第二次http请求,获取一个通过计算得到的hash路径中的内容。该hash路径通过以下参数计算而成:
示例http内容如下:
回复包中所含加密内容的解密方式与前述对FileSyncShell64.dat文件的处理方式相同。
此处使用的这种二次通信生成独立路径的http下载模式在钓鱼邮件攻击中比较少见。
Stage5:远控木马cobaltstrike beacon
无论通过哪种方式,LetMeOut.exe最终都会获取到一个shellcode形式的cobaltstrike beacon程序。该木马连接CnC为http://jc.neu.edu.tr/r_main.js。
cobaltstrike beacon程序通常支持以下指令:
截至4月26日,相关恶意url仍可通信。
版权声明
本站“技术博客”所有内容的版权持有者为绿盟科技集团股份有限公司(“绿盟科技”)。作为分享技术资讯的平台,绿盟科技期待与广大用户互动交流,并欢迎在标明出处(绿盟科技-技术博客)及网址的情形下,全文转发。
上述情形之外的任何使用形式,均需提前向绿盟科技(010-68438880-5462)申请版权授权。如擅自使用,绿盟科技保留追责权利。同时,如因擅自使用博客内容引发法律纠纷,由使用者自行承担全部法律责任,与绿盟科技无关。