OceanLotus高级黑客组织nim木马加载器分析

admin 2022年5月15日15:13:28评论344 views1字数 2371阅读7分54秒阅读模式
分析背景

不论是日常内外部捕获样本还是实际参与取证的过程,近几年OceanLotus高级黑客组织经常使用C编写的加载器与CobaltStrike生成的beacon作为后续驻留阶段的木马加载执行形式,在接触到不少该黑客组织落地的恶意文件后发现其实并不高级,个人猜测也许是因为现阶段的木马能满足需求所以就没有必要开发更高级的木马实现目的,还有一种猜测是现阶段个人的技术能力与背景只能发现与之匹配的驻留木马,于是更多高水平的木马暂时无法触及。结合近几年的木马对比下之前接触到的一些红队的恶意文件,发现这一块其实也差不多。如果不把自己作为样本分析人员,而是站在安全防御设计的角度其实困难点在于如何拦截该类黑客组织的入侵行为以及入侵成功后怎样才能尽可能早地发现入侵风险并止损,确实挺有挑战的。


结合接触到的案例,该类黑客组织隐蔽性还是存在的,虽然落地或者最终驻留的木马不是很高级,但是驻留潜伏的时间有2-3年也有至少3-4年的,一旦存在驻留木马,则表明攻击者之前采用的入侵手法已获得成功,站在更大的时间范围内对比统计发现背后的攻击者是针对不同的目标群体与地区使用不同的攻击策略,存在团队协作性,类似高中低等级制度。潜伏时间较长也对取证工作造成了不少的影响,很难短时间内获取入侵途径与全面的入侵手法,个人感觉该类黑客组织要不是存在这些特性那和攻防演练时期的红队也没啥区别。虽然针对落地或者驻留样本的分析工作属于事后环节,但是也是必不可少的非常重要的环节,最终的目的是能结合安全防御木桶效应防御成功该类入侵活动。


最近遇到了新的木马加载器,觉得新的原因是采用了不同的编写语言开发,分析后发现是采用nim语言编写的新木马加载器,nim语言这几年被不少的红队采用用于防御规避手段,同样对于背后的攻击者来说也会关注到这一点,于是该黑客组织的nim木马加载器便出现了。新的木马加载器与之前利用C编写的加载器有明显不同的实现逻辑,鉴于此对其进行分析来了解攻击者的动向与策略以及是否可以获取到更多相关的样本进而获悉攻击活动频次。



组织背景

海莲花(OceanLotus、APT32)APT团伙是一个高度组织化的、专业化的境外国家级黑客组织,其最早由国内安全厂商发现并披露。该组织至少自2012年4月起便针对周边地区国家政府、科研院所、海事机构、海域建设、航运企业等相关重要领域展开了有组织、有计划、有针对性的长时间不间断攻击。


经过公开报告的披露信息与历次参与取证溯源事件的结果也表明海莲花组织依然是在东南亚地区最为活跃的APT组织,其在2021年依然保持较高的活动频率。该组织的攻击包括网络间谍活动和商业情报窃取,同时该组织在近年来还被观察到在受害者主机上部署矿机程序,进行门罗币挖矿。此外,海莲花组织还具备发起供应链攻击的能力,并且能在入侵和横向移动过程中使用0day或Nday漏洞。



分析过程

获取的第一个恶意文件的名称为ucsvc.exe,推测是伪造成系统组件C:WindowsSystem32ucsvc.exe。

OceanLotus高级黑客组织nim木马加载器分析


由于背后的攻击者并未修改编译时间,我们可以得知木马的UTC开发时间为2022年2月11日,如果要具体到小时需要与攻击者所在的时区进行对应修改。结合以往的经验,时间戳当然是可以伪装的,为了获取到准确的时间,结合后续样本中的GCC编译器版本号特定信息绑定发布时间也可以判断背后的攻击者大致开发完成的时间。

OceanLotus高级黑客组织nim木马加载器分析


静态分析中,发现了如下解析的API函数,nim语言编写的应用程序并不采用直接调用方式加载API,而是采用动态加载的方式获取所需的API函数地址。

OceanLotus高级黑客组织nim木马加载器分析

OceanLotus高级黑客组织nim木马加载器分析

OceanLotus高级黑客组织nim木马加载器分析

OceanLotus高级黑客组织nim木马加载器分析


解析的API函数表明会采用远程线程注入的方式进行进程注入,如下。

OceanLotus高级黑客组织nim木马加载器分析


当以上API函数动态解析完毕后,木马的逻辑将执行到对加密的shellcode进行解码的过程。首先nim木马加载器采用了base64对shellcode解码,如下。

OceanLotus高级黑客组织nim木马加载器分析


base64解码成功后出现了第一段shellcode数据,如下shellcode大小为0x220D。

OceanLotus高级黑客组织nim木马加载器分析


此时利用关键字符串“NimPack”找到了对应的开源项目(https://github.com/chvancooten/NimPackt-v1),该项目的发布时间是3个月前,时间上也符合最初发现的编译时间为2022年2月,之后从第一段shellcode解码提取后的数据确实与项目中提供的shellycoat_x64数据内容完全吻合。

OceanLotus高级黑客组织nim木马加载器分析

OceanLotus高级黑客组织nim木马加载器分析


针对第一段shellcode的功能,查询NimPack项目得知会关闭ETW功能,动态调试后查看该段shellcode发现属于没有PE头部的dll文件,去掉MZ头部标志一定程度可以避免被进程内存安全检测。

OceanLotus高级黑客组织nim木马加载器分析


之后打开Ntdll.dll副本加载至进程内存,防止被hook,也会采用syscall调用方式。

OceanLotus高级黑客组织nim木马加载器分析

OceanLotus高级黑客组织nim木马加载器分析


第二段shellcode采用AES进行解密,数据大小为0x41040B。

OceanLotus高级黑客组织nim木马加载器分析


如下为AES解密成功得到第二段shellcode,仔细查看shellcode开头部分数据可以很明显看出这是海莲花组织经常使用的CobaltStrike的beacon形式shellcode。

OceanLotus高级黑客组织nim木马加载器分析


利用远程线程注入方式注入傀儡进程,如下调用SuspendThread挂起线程。

OceanLotus高级黑客组织nim木马加载器分析


调用OpenProcess打开指定进程,如下。

OceanLotus高级黑客组织nim木马加载器分析


在打开的进程内部分配内存空间,如下。

OceanLotus高级黑客组织nim木马加载器分析


在上述分配的内存区域写入第二阶段shellcode,如下。

OceanLotus高级黑客组织nim木马加载器分析


最后恢复线程,最终注入完成执行第二段shellcode。

OceanLotus高级黑客组织nim木马加载器分析


第二段shellcode由于是通用型的beacon,这里不再深入调试,直接解码后得到如下beacon配置:111.53.185.152:8272

OceanLotus高级黑客组织nim木马加载器分析



IOC

FE0C57A9F719A983C05E3840563075BB(ucsvc.exe)

原文始发于微信公众号(OnionSec):OceanLotus高级黑客组织nim木马加载器分析

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年5月15日15:13:28
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   OceanLotus高级黑客组织nim木马加载器分析https://cn-sec.com/archives/1008683.html

发表评论

匿名网友 填写信息