Cozy Bear APT29 组织攻击模拟
一、背景这是 Cozy Bear (APT29) 针对外交使团的模拟攻击。
2023 年 4 月中旬,波兰外交部的一名外交官通过电子邮件向各个大使馆发送了他的传单,宣传出售位于基辅的二手宝马 5 系列轿车,该文件的标题为 BMW 5 for sale in Kyiv - 2023.docx,此次模拟参考了 unit42 一篇报告,想弄清楚其中的细节,报告链接:https://unit42.paloaltonetworks.com/cloaked-ursa-phishing/
二、文件及操作说明
具体文件操作及说明:
[*]DOCX 文件:docx 文件中包含一个超链接,可用于下载 HTML (HTML Smuggling);
[*]HTML Smuggling:攻击者利用 HTML Smuggling 来掩盖 ISO 文件;
[*]LNK 文件:当执行 LNK 文件时,会运行合法的 exe 并打开 png 文件,然而,在背后,加密的 shellcode 被读入到内存并解密;
[*]ISO 文件:ISO 文件包含许多伪装成图像的 LNK 文件,这些 LNK 文件用于执行恶意 payload;
[*]DLL 劫持:exe 文件通过 DLL 劫持加载恶意 DLL,使得攻击者能够在感染进程上下文中执行任意代码;
[*]shellcode 注入:解密的 shellcode 被注入到正在运行的 Windows 进程中,使攻击者能够以受感染进程的权限执行代码;
[*]payload 执行:shellcode 解密并在当前进程内加载最终的 payload;
[*]Dropbox C2:此 payload 基于 Microsoft Graph API 向 Dropbox 和 C2s 发送信标;
模拟流程:
三、第一阶段 - 投递
首先,攻击者创建的 docx 文件中包含一个超链接,可进一步下载 HTML (HTML Smuggling),超链接的优点是它不会出现在文本中,而这正是攻击者想要利用的。
HTML Smuggling 用于掩盖 ISO 文件,ISO 包含许多伪装成图像命令行的 LNK 文件,以将 payload 转换为 Base64,然后将其放入 HTML Smuggling 中:base64 payload.iso -w 0,我添加了一张宝马的图片 car 以及 HTML 文件中网络钓鱼消息的文本内容。
四、第二阶段 - 植入
现在需要创建一个包含宝马汽车的 PNG 图像,效果为在后台打开图像时,恶意软件正在后台运行。通过 CMD 执行命令打开图像,使用的图像格式为 icon
使用 WinRAR 压缩后,制作一个快捷方式并与实际图像文件一起放入另一个文件中,再使用 PowerISO 将它转换成 ISO 文件。
这个 ISO 文件是后面要对其进行 base64 编码,将编码后字符串放到 html smuggling 文件中,最后再将其放入到 docx 文件中。
五、第三阶段 - 执行
因为将命令行放在 WinRAR 的高级 SFX 选项的设置菜单中,所以当受害者打开 ISO 文件看到 BMW 图像时 payload 将执行。
六、第四阶段 - 数据泄露
攻击者使用 Dropbox C2 API 作为在其 payload 和攻击者服务器之间建立通信的手段,通过使用 Dropbox 作为 C2 服务器,攻击者可以将其恶意活动隐藏在 Dropbox 的合法流量中,从而使安全团队更难检测到威胁。首先,我们需要创建一个 Dropbox 帐户并激活其权限
之后,进入设置菜单,为 Dropbox 帐户生成访问令牌
该脚本集成了 Dropbox API 功能,可用于受感染系统和攻击者控制的服务器之间的通信,从而隐藏合法 Dropbox 通信中的流量,并以访问令牌作为输入,提示用户输入 AES 密钥 (必须是 16 位, 24 或 32 字节长) 并在 ECB 模式下使用 AES 加密对令牌进行加密。然后,它对加密令牌进行 Base64 编码并返回。
我使用 Python 编写的 payload 仅用于测试 C2 (测试 payload.py),在编写实际 payload 之前连接是否有任何问题 (仅用于测试连接)。
七、第五阶段 - shellcode 注入
此 payload 使用 Dropbox API 上传数据,包括到 Dropbox 的命令输出。通过利用 Dropbox API 并提供访问令牌,payload 将其流量隐藏在 Dropbox 服务的合法流量中,如果恶意 DLL 无法加载,它会打印一条警告消息,但在没有警告消息的情况下继续执行。
过程如下:
[*]DLL 注入:payload 利用 DLL 劫持将恶意 DLL 加载到目标进程的地址空间中;
[*]shellcode 执行:成功注入后,恶意 DLL 将执行其 DllMain 函数中存储的 shellcode;
[*]分配内存:VirtualAlloc 函数用于在目标进程进行内存分配,shellcode 将被注入到目标进程中;
[*]shellcode 注入:使用 memcopy 将 shellcode 复制到分配的内在区域,有效地将其注入到进程中;
[*]权限提升:如果受感染的进程以提升的权限运行,则注入的 shellcode 会继承这些权限,从而允许攻击者执行特权操作;
八、连接 C2
此过程的最后一步涉及最终 payload 的执行,解密并加载到当前进程后,最终的 payload 将被发送至基于 Dropbox API 的 C2 服务器。
九、参考
https://github.com/S3N4T0R-0X0/APT29-Adversary-Simulation
页:
[1]