APT-C-09(摩诃草)组织Golang载荷窃密分析
一、攻击活动分析
1.恶意载荷分析
本次攻击行动使用的钓鱼文件信息如下所示:
MD5 | 0aa22fa3333c891a139187442ecf0e81 |
文件名称 | Quran.pdf.lnk |
文件大小 | 3.78 KB (3874字节) |
文件类型 | lnk |
该lnk打开时会调用powershell执行恶意指令。
该指令的功能为下载诱饵文件(https[:]//quranchapter.t-cdn.org/wp-content/wp-includes/docaegeegrgseffefaa/22-Quran)和恶意载荷(https[:]//quranchapter.t-cdn.org/wp-includes/javascript/juicesdafekohioshfoshfhiofh/quran),并创建计划任务维持持久化。
部分诱饵内容如下:
2.攻击组件分析
lnk文件下载的恶意载荷信息如下:
MD5 | 4f8bd643c59658e3d5b04d760073cbe9 |
文件名称 | Winver.exe |
文件大小 | 5.36 MB (5619472字节) |
文件类型 | exe |
Winver.exe是一个由Golang编译的恶意软件,并且带有数字签名“RUNSWITHSCISSORS LTD”,具体如下图所示。
需要说明的是,我们捕获的Golang载荷除了上述签名外,还有个别样本签名为“COMPUTING AND CODING LIMITED”,其信息如下,该签名疑似被盗取,因此后续要提防此类签名信息的样本。
另外查看Winver.exe文件的节发现存在.symtab段,.symtab是Linux系统写ELF文件格式的一部分,猜测该样本还有对应的ELF版本。
Winver样本执行时先获取C2的硬编码值,接着对RC4的密钥和 User-Agent的值进行初始化。
然后使用wmic命令获取UUID的值,若获取失败,则随机生成。
随后获取用户名、主机名、出口IP及国家代码、系统版本及架构、进程名和进程ID等信息。
将获取的信息采用RC4+Base64的方式进行加密,并将Base64结果中的“+”替换成“-”和“/”替换成“_”。
将获取的基本信息进行拼接后采用post的方式发送到C2地址,此时HTTP请求头中用户代理设置为如下值“User-Agent:AGCYRNRWWWFZZSWWFWDYDCVDN”。
当响应的状态码为“200”时,会读取响应数据进行解析解密,若指令为“suzckdwceefc”,则调用cmd进行命令执行,并将执行结果加密回传。
若指令为“xlsvepfstvuv”,则使用开源库进行屏幕截屏。
二、关联分析
基于后台大数据分析关联,我们还发现了该组织针对同一目标使用Quasar RAT的攻击行为。其样本信息如下所示:
MD5 | 1154b7d8bd2e631f8fcd50a53d6173ba |
文件大小 | 238 KB (244,504 字节) |
文件名 | msedge.exe |
msedge.exe是一个Rust编译的用于内存加载执行最终载荷的加载器,通过使用更加底层的API函数,以创建线程的方式执行ShellCode,然后通过内存加载的方式,最终执行.Net载荷。此外我们也发现了通过NtQueueApcThread执行shellcode的攻击样本,该样本与msedge.exe只是shellcode执行方式不一致,其他均一致。
最终载荷是一个被严重混淆过的C#程序,经过分析该载荷属于Quasar远控程序(https://github.com/quasar/Quasar),程序名为Client.exe,该远控程序也多次被摩诃草组织使用。
Client.exe首先使用Base64解码,以及AES-128的CBC模式解密基本的配置信息,如下表。
ProjectName | Office04 |
Version | 1.0.0.0 |
rawHosts | 172.81.60.46:1005 |
DirName | SubDir |
FileName | Client.exe |
Mutex | QSR_MUTEX_UCsz1CfvA68LlA0O2s |
SchTaskName | Quasar Client Startup |
在解密配置信息之后,会根据用户类型的不同创建持久化,如果是管理员用户,就创建计划任务以及通过注册表HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Run进行持久化,如果不是Admin用户,则只是通过注册表进行持久化。
最后通过socket方式连接C2服务器,并通过事件方式用于接收数据以及执行对应的远控操作,具体远控指令如下。
指令 | 含义 |
DoClientDisconnect | 断开连接 |
DoClientUninstall | 卸载客户端 |
GetProcesses | 枚举进程 |
DoProcessKill | 杀死进程 |
DoProcessStart | 创建进程 |
GetDrives | 获取驱动器信息 |
GetDirectory | 获取目录信息和文件信息 |
DoDownloadFile | 下载文件 |
DoUploadFile | 上传文件 |
DoMouseEvent | 鼠标事件 |
DoKeyboardEvent | 键盘事件 |
GetSystemInfo | 获取系统信息 |
DoShellExecute | 执行Shell |
DoPathRename | 重命名 |
DoPathDelete | 删除文件 |
GetStartupItems | 获取启动项信息 |
DoStartupItemAdd | 添加启动项 |
DoStartupItemRemove | 删除启动项 |
DoDownloadFileCancel | 下载文件管道 |
DoLoadRegistryKey | 注册表检索 |
DoCreateRegistryKey | 创建注册表键 |
DoDeleteRegistryKey | 删除注册表键 |
DoRenameRegistryKey | 重命名注册表键 |
DoCreateRegistryValue | 设置注册表值 |
DoDeleteRegistryValue | 删除注册表值 |
GetScreenshot | 截图 |
DoDownloadDirectory | 下载目录 |
三、归属研判
通过对样本整体分析,我们发现本次攻击行动与摩诃草组织之前使用的攻击手段相符合。
1.恶意lnk的参数及使用方式和恶意载荷所携带的签名“RUNSWITHSCISSORS LTD”都与我们之前关于该组织的报道一致[1]。
2.本次载荷通联C2中包含“b-cdn”、“t-cdn”等字符串,这类字符串经常出现在摩诃草组织以往C2中。此外多个C2服务器使用“Let’s Encrypt”颁发的免费证书,这与之前摩诃草的BADNEWS木马服务器也类似。
3.Golang新载荷使用RC4+Base64的算法,该类算法在该组织其他载荷中也被使用过。另外,针对同一目标使用的Quasar RAT之前也被披露过。
4.最后结合样本上传地址为巴基斯坦,符合攻击者目标,综上将其这类攻击归属于APT-C-09(摩诃草)组织。
APT-C-09(摩诃草)组织从2013年被披露后,从未停止相关攻击活动,长期针对巴基斯坦等周边国家进行攻击,在最新的攻击样本中,我们观察到该组织使用Golang编写的后门载荷,以及使用Rust编写的加载器加载Quasar的攻击组件,这都进一步揭示了其在不断演进和提升技术水平的过程中,还在积极地扩展其攻击武器,以更好地适应网络安全防御的不断升级。 在这里提醒用户加强安全意识,切勿执行未知样本或点击来历不明的链接等操作。这些行为可能导致系统在没有任何防范的情况下被攻陷,从而导致机密文件和重要情报的泄漏。
MD5:
0aa22fa3333c891a139187442ecf0e81
4f8bd643c59658e3d5b04d760073cbe9
dfb97438f0ec94e78a2a1e3d32bc11d5
13dcd6f1fd44f7f15651153167b646cc
1154b7d8bd2e631f8fcd50a53d6173ba
C&C:
https://quranchapter.t-cdn[.]org/wp-includes/javascript/juicesdafekohioshfoshfhiofh/quran
https://ruz98.b-cdn[.]net/22
https://daily-mashriq[.]org/goyxdrkhjilchyigflztv
https://espncrics[.]info/goaimdzfecbgrjjxdamdoo
172.81.60[.]46:1005
[1]https://mp.weixin.qq.com/s/SAt5NU-hCbS0D6jI8gkkFQ
360高级威胁研究院