[原创]APT 摩诃草样本分析
2022-12-9 22:5:0 Author: bbs.pediy.com(查看原文) 阅读量:36 收藏

[原创]APT 摩诃草样本分析

2022-12-9 22:05 3895

摩诃草,又名Hangover、Patchwork、白象等,是一个具有南亚背景的APT组织。该组织主要针对Windows系统进行攻击,同时也会针对Android、Mac OS系统进行攻击。摩诃草APT组织攻击目标涉及中国、巴基斯坦、以色列等国。该组织以鱼叉攻击为主,以少量水坑攻击为辅,针对目标国家的政府、军事、电力、工业、外交和经济进行网络间谍活动,窃取敏感信息。

一阶样本为rtf格式文件,运行后利用CVE-2017-11882漏洞执行ShellCode,通过ShellCode释放二阶样本("McVsoCfg.dll"、"mcods.exe")并将二阶样本写入启动项中。

二阶样本运行后首先判断受控主机时区,如不是巴基斯坦时区则结束样本运行。随后收集主机安装软件、进程信息、网卡信息、dns配置、部署服务、系统信息详情并写入TEMP目录下"RTYgjfdg.sys"文件中。获取主机uuid后将收集的主机信息一齐发送到CC 51.89.251.8,随后清除"RTYgjfdg.sys"。基础信息发送后创建新线程进行键盘记录,等待CC后续指令。

1)基础信息

MD5236B62124C862664C4CB179B4B3B844A
文件类型rtf

表 基本信息

样本为rtf格式文件,运行后利用CVE-2017-11882漏洞执行ShellCode,通过ShellCode释放二阶样本("McVsoCfg.dll"、"mcods.exe")并将二阶样本写入启动项中。

2)分析详情

  • 一阶样本运行时启动equation.exe程序且本身为rtf文件,所以推测可能使用CVE-2017-11882漏洞进行木马植入,后经确认样本利用该漏洞执行ShellCode,通过ShellCode释放二阶样本("McVsoCfg.dll"、"mcods.exe")

图 equation.exe进程启动

图 漏洞触发点

  • ShellCode首先检测是否正在被调试,解析所需DLL及函数,通过“RtlDecompressBuffer”函数从缓冲区中解压二阶样本并于系统“ProgramData”目录下释放"McVsoCfg.dll"、"mcods.exe"。

图 检测是否被调试

图 释放二阶样本

  • 于注册表中将"mcods.exe"设置为自启动,最后运行样本"mcods.exe"。

图 设置启动项

1)基础信息

MD5327AB2061B7965F741AC10FFCF4DCC86
时间戳2016-04-20
CPU架构32位

表 基本信息

二阶样本运行后首先判断受控主机时区,如不是巴基斯坦时区则结束样本运行。随后收集主机安装软件、进程信息、网卡信息、dns配置、部署服务、系统信息并写入TEMP目录下"RTYgjfdg.sys"文件中。获取主机uuid后将收集的主机信息一齐发送到CC 51.89.251.8,随后清除"RTYgjfdg.sys"。基础信息发送后创建新线程进行键盘记录,等待CC后续指令。

从"mcods.exe"导出表中得知样本加载"McVsoCfg.dll"模块的"McVsoCfgGetObject"函数遂按此方式调试样本。

图 恶意函数

2)分析详情

  • 获取受控主机时区信息,对比是否为巴基斯坦时区,如若不是则退出运行。

图 获取受控主机时区

  • 获取系统TMP目录并于目录下创建临时文件"RTYgjfdg.sys"。执行"tasklist"查看当前进程信息、"wmic product get name"查看安装的软件、"ipconfig /all"查看网卡信息、"ipconfig /displaydns"查看dns配置、"sc query"查询主机上部署的服务、"systeminfo"查看系统信息 并将所有收集的信息写入"RTYgjfdg.sys"中。

创建RTYgjfdg.sys

图 信息收集

  • 获取主机uuid并对其加密:通过先base64再aes再base64完成加密,aes密钥:"b14ca5898a4e4133bbce2ea2315a191" 、向量:"1234567891234567"。

图 uuid获取

图 aes加密

图 aes解密

  • 通过‘rb’方式打开文件"RTYgjfdg.sys",设置文件指针指向文件头,随后循环读取0x4000长度文件并进行bas64编码(但还原出来的文件内容与"RTYgjfdg.sys"记录内容不同,不知道为啥)

图 文件读取

  • 随后准备向CC发送收集的主机信息。已知2个命令参数:"qadc"代表受控机uuid;"edcaa"代表读取的部分"RTYgjfdg.sys"文件。

图 数据准备

  • 通过解密出需要的函数及dll,动态加载WinInet.dll,将收集到的信息以post方式向51.89.251.8/vwnykzjzy2si478c7a2w/terncpx8yr2ufvisgd2j/x8jb9g97kkexor5ihnbq/d91ng62l00hc4vgaxkf.php发送,文件传输完成后回传"done"以提示,随后删除文件"RTYgjfdg.sys"。

图 解密网络模块及函数

图 数据发送

图 数据发送完成

图 文件删除

  • 调用"createthreat"函数创建新线程并通过"GetAsyncKeyState"函数记录键盘操作,于TEMP目录下创建文件"atapi.sys",将记录结果写入文件中。

图 线程创建

图 键盘记录

等待CC后续指令,共计8种指令

指令号 功能
1写入文件ghjgd并上传至CC
2屏幕截图并上传CC
3退出程序
4下载文件到"TGJdbkds.exe"并运行
5发送文件ghjgd
6数据发送
7cmd执行
8下载文件保存到"TGJdbkds"

1:写入文件ghjgd并上传至CC

2:屏幕截图并上传CC

3:退出程序

4:下载文件到"TGJdbkds.exe"并运行

5:发送文件ghjgd

6:数据发送

7cmd执行

8:下载文件保存到"TGJdbkds"

[2022冬季班]《安卓高级研修班(网课)》月薪三万班招生中~

最后于 2022-12-10 10:16 被戴夫的小推车编辑 ,原因:


文章来源: https://bbs.pediy.com/thread-275479.htm
如有侵权请联系:admin#unsafe.sh