[原创]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后续指令。
MD5 | 236B62124C862664C4CB179B4B3B844A |
文件类型 | rtf |
表 基本信息
样本为rtf格式文件,运行后利用CVE-2017-11882漏洞执行ShellCode,通过ShellCode释放二阶样本("McVsoCfg.dll"、"mcods.exe")并将二阶样本写入启动项中。
一阶样本运行时启动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"。
图 设置启动项
MD5 | 327AB2061B7965F741AC10FFCF4DCC86 |
时间戳 | 2016-04-20 |
CPU架构 | 32位 |
表 基本信息
二阶样本运行后首先判断受控主机时区,如不是巴基斯坦时区则结束样本运行。随后收集主机安装软件、进程信息、网卡信息、dns配置、部署服务、系统信息并写入TEMP目录下"RTYgjfdg.sys"文件中。获取主机uuid后将收集的主机信息一齐发送到CC 51.89.251.8,随后清除"RTYgjfdg.sys"。基础信息发送后创建新线程进行键盘记录,等待CC后续指令。
从"mcods.exe"导出表中得知样本加载"McVsoCfg.dll"模块的"McVsoCfgGetObject"函数遂按此方式调试样本。
图 恶意函数
获取受控主机时区信息,对比是否为巴基斯坦时区,如若不是则退出运行。
图 获取受控主机时区
获取系统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 | 数据发送 |
7 | cmd执行 |
8 | 下载文件保存到"TGJdbkds" |
1:写入文件ghjgd并上传至CC
2:屏幕截图并上传CC
3:退出程序
4:下载文件到"TGJdbkds.exe"并运行
5:发送文件ghjgd
6:数据发送
7:cmd执行
8:下载文件保存到"TGJdbkds"
[2022冬季班]《安卓高级研修班(网课)》月薪三万班招生中~
最后于 2022-12-10 10:16 被戴夫的小推车编辑 ,原因: