概述
海莲花(OceanLotus)是一个据称东南亚背景的APT组织。该组织最早于2015年5月被天眼实验室披露并命名,其攻击活动最早可追溯到2012 年4月,攻击目标包括人权代表、异见人士、媒体、银行、海事机构、海域建设部门、科研院所和航运企业,后扩展到几乎所有重要的组织机构,受害区域涉及东亚、东南亚、欧洲等地区,持续活跃至今。
横向移动
爆破脚本
海莲花早期在内网中使用的爆破脚本如下:
功能较为简单,仅针对445端口下的administrator账户进行爆破。
经过数次版本迭代后,增加了对MSSQL、FTP、HTTP的爆破。
增加了对常见端口的扫描。
NbtScan脚本
海莲花在横向移动过程中会使用nbtscan对内网进行扫描,利用PS脚本将编码后的Nbtscan注入到Notepad.exe中。
使用的Nbtscan 1.0.35版本。
Getinfo脚本
该PS脚本在执行过程中会收集操作系统相关信息、域控信息、ssh状态、RDP状态、反病毒产品、所有用户名、安装的程序列表、ipconfig、正在运行的服务、网络连接状态、进程列表、磁盘信息、Administrator用户下的目录树、C盘根目录树。
最后将上述信息整理成html落在文件系统上,之后会被攻击者加密打包上传到图床网站。
管道注入脚本
在执行过程中从管道中读取payload,对其进行解密。
进程名 |
makecab.exe |
systray.exe |
w32tm.exe |
bootcfg.exe |
diskperf.exe |
esentutl.exe |
typeperf.exe |
注入代码如下:
Empire脚本
海莲花使用Empire框架控制内网主机,搜索目标。最终会在指定目标上释放白利用组件,最终执行cobaltstrike远控。
Mimikatz脚本
在受控主机上执行Mimikatz powershell版本的脚本。
在内存中加载dll的导出函数,抓取本机密码。
Cortana beacon
Cortana脚本一般作为Cobalt Strike的插件来使用。
0day/Nday
海莲花组织是为数不多的能够结合特定环境定制化开发挖掘0day/Nday漏洞的APT团伙,手段较为高超,能够发起中等规模的供应链打击。
样本分析
白利用组件
海莲花组织使用的恶意dll经过数代版本的迭代,其功能一直保持不变,都是用来解密shellcode,但是解密方式有所不同,大体可以分为如下几类:
读资源节解密shellcode:
读自身解密shellcode:
从data节读取shellcode:
shellcode在执行过程中一般都会先进行循环解密。
会解密出后续代码。
-
常规类,执行过程中解密CobaltStrike并执行,较为常见不做介绍。 -
Dropper类,执行过程中会将白利用组件释放到%temp%目录下,并创建计划任务。
-
读文件类,在执行过程中读取特定目录下的文件,第二阶段shellcode后续对文件内容进行解密。
-
注入/服务类,在执行过程中启动一个挂起的进程或者创建一个服务,用于执行第二阶段shellcode。
最终执行的远控,从家族上来分大体分为两类,一类是cobaltstrike,另一个是Remy Rat,该家族样本使用频率较低,代码如下:
从功能上来分有如下几类:
-
直连C2类,这种较为常见不做过多赘述。
-
管道类,创建管道,等待连接。
-
端口监听类,等待内网其他受控主机连接指定端口。
挖矿
挖矿组件如下:
被入侵的电脑被创建一个服务,指向SCCreateProcess.exe,服务名为SCCREATEPROCESS:
而SCCreateProcess.exe被执行起来后,会获取到该exe的文件名,然后附件.bat后缀后执行起来:
SCCreateProcess.exe.bat文件被执行起来后,会执行起来同目录下的ControlPanel.exe.bat文件:
ControlPanel.exe.bat文件会通过名字为vmware-authd.exe的挖矿程序,传递矿池和钱包地址进行挖矿操作。
总结
文章来源:奇安信威胁情报中心
本文始发于微信公众号(互联网安全内参):Operation (Thủy Tinh) OceanStorm:隐匿在深海巨渊下的邪恶莲花
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论