1.攻击流程
2. 样本分析
|
|
|
|
|
|
样本调用rundll32执行,参数有6个,分别由载荷名、固定编码、C&C、本地上传路径等元素构成。
样本功能集中在导出函数sqlite3_connect;
申请堆空间,在申请的堆空间拷贝标志字符串“a ”(0x6120);
解析Unicode命令行字符串并返回指向命令行参数的指针数组。
判断传入参数1是否为大于等于6,且argv+8取地址获取到参数(S0RMM-50QQE-F65DN-DCPYN-5QEQA)判断长度是否为29,满足条件则继续执行。
读取下阶段载荷并解密,解密算法如下,第二阶段载荷通过XOR解密,载荷从末尾开始的每个字节都移动至前一个字节。
对v16前两个字节赋值0x8406:
根据传入case 参数6 执行函数,函数参数1为解密的后续载荷、参数2为载荷长度,参数3(v16)为C2地址。
获取当前进程页面大小并申请空间释放下一个阶段的载荷,并跳转至程序入口点。
参数1为二阶段载荷地址,参数2为0x1,参数3为C&C地址。
第二阶段载荷分析
申请空间并传入C2字符串,判断前面2个字节是否为0x8406。
二阶段执行后会创建一个线程,参数为C2。
代理设置Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 10.0; Win64; x64; Trident/7.0; .NET4.0C; .NET4.0E)。
访问请求地址http://www.stracarrara[.]org/public/photos/image/image.asp,获取数据。
CreateFile 打开文件c:ProgramDataAlibabacfpconfg.out文件并读取。
判断是否有读取到文件,读取到文件跳转至http相关函数发送至C2,没有读取到文件则退出程序。
继续跟进可以发现后续请求格式。
3. 关联分析
本次Lazarus行动,关联至NukeSped家族,大多数加载NukeSped的恶意软件都会检查命令行参数,并且只有在给出预期参数时才继续执行恶意程序。这是该恶意软件家族加载程序中的一个常见特性。
本次伪造载荷加载由6个参数组成,与之前披露的参数数量是一致的,第二个参数固定为字符串S0RMM-50QQE-F65DN-DCPYN-5QEQA,第三个参数为C&C地址,第四个参数为本地上传路径。
当执行解密的内存有效载荷时,它会将传递的配置数据的标头与字符串“ 0x8406”进行比较,与之前披露的NukeSped特征相同。
后续请求格式与NukeSped字符串特征相同
解密算法与之前披露的NukeSped解密后阶段载荷相似,通过XOR解密,载荷从末尾开始的每个字节都移动至前一个字节。
在分析同目录样本过程中发现有利用服务启动Mimikatz解密的操作,服务名为PCAudit,推测解密后的数据为载荷参数中本地将要上传的文件,之前披露的NukeSped组件也存在利用Mimikatz解密的操作。
APT-C-26(Lazarus)组织本次攻击目的明确,攻击手段隐蔽性强,C&C与上传路径均以参数形式传递,并且后续载荷不落地,完全在内存中运行。本次攻击行动第一目标是以收集有价值信息为主,在进行针对性信息收集工作完成后不排除有相关后续行动,需要引起足够重视。
https://securelist.com/lazarus-threatneedle/100803/
原文始发于微信公众号(360威胁情报中心):APT-C-26(Lazarus)组织伪造电商组件攻击活动分析报告