导语:知道创宇NDR流量监测系统产品组通过对流量监测分析发现了Oceanlotus APT组织的攻击,经过对恶意木马逆向分析和网络流量分析,确认其为海莲花Remy木马。
01 事件概述
前段时间知道创宇NDR流量监测系统产品组通过对流量监测分析发现了Oceanlotus APT组织的攻击,经过对恶意木马逆向分析和网络流量分析,确认其为海莲花Remy木马。
Oceanlotus(又称APT32、海莲花),是一个能够运用先进的工具、战术和程序(TTP)针对特定目标发动持续网络攻击的组织,擅长鱼叉水坑攻击,从以往捕获的海莲花攻击活动来看,该组织多次使用DLL侧加载技术,加上复杂的花指令,配合多种类型的Loader加载恶意程序,该组织常用的木马包括CoblatStrike,Denis及Remy等。
02 木马分析
分析人员在对捕获的流量进行溯源后,发现了可疑的木马文件,详情如下:
样本名称 | winspool.drv |
MD5 | DA19EDEB39BE224D33FD70684D036B4D |
文件类型 | Windows库文件 |
利用方式 | DLL侧加载 |
经过分析后,其攻击流程如下:
nginx.exe运行后加载winspool.drv时,修改自身的OEP内存属性和代码,当程序真正跳转到OEP执行时,跳转到恶意DLL代码段执行。
创建名为“Local\\{13C04F70-F8EC-4153-92CD-23DB2E5848C1}”的互斥,确保木马单实例运行:
分配内存,并将数据段中的shellcode写入后运行,
shellcode的作用是解压出恶意DLL到内存中加载运行:
恶意DLL名为PERFDISK.DLL,获取其“OpenDiskObject”导出函数地址后跳转执行:
在OpenDiskObject导出函数中,使用逐位ADD 0x27解密硬编码字符串:
并从资源中解密出配置信息(包含互斥体、创建文件名、C2地址):
与服务端进行通信,根据返回的指令可以实现多种功能,如下:
03 事件溯源
在利用方式上,本次捕获的样本采用白文件动态侧加载的方式,这与之前海莲花在对我国的多次攻击活动类似,例如针对我国发动的攻击活动中使用winword.exe加载wwlib.dll:
根据已经掌握的情报,海莲花使用过的白文件数量超过15个,下表是部分海莲花使用过的部分白文件列表,表中被利用的大多都是与我们生活息息相关的,具有极强的迷惑性,相信随着时间的推移,会有更多白利用文件浮出水面:
从代码层面来看,本次攻击使用的Loader与海莲花之前使用的Loader基本一致, 下图为2018年海莲花攻击所使用的shellcode加载入口:
本次shellcode加载入口:
本次攻击中创建的互斥名符合海莲花惯用的命名格式:
字符串解密算法上存在相同之处:
在功能上,此次捕获的木马与之前曝光的海莲花Remy木马一致:
04 总结
基于上述分析溯源,从利用方式、代码、加解密算法以及功能上可以认定此次攻击为海莲花组织所发起。并且,Remy木马极其轻量化,主要用作跳板访问敏感企业,攻击者可利用该木马转发流量、下载执行其他木马,后续知道创宇分析人员将对其进一步跟踪,保障我国关键信息基础设施的安全。
目前,知道创宇NDR流量威胁监测系统及知道创宇云防御创宇盾都已经支持对此类APT攻击的精准检测。
如若转载,请注明原文地址