目录导航
Kimsuky APT(也称为 Thallium、Black Banshee 和 Velvet Chollima)是朝鲜的威胁行动者,自 2012 年以来一直活跃。该组织开展网络间谍活动,主要针对韩国的政府实体。2020 年 12 月,KISA(韩国互联网与安全局)提供了有关 Kimsuky 用于针对韩国的网络钓鱼基础设施和 TTP的详细分析。
Malwarebytes 威胁情报团队正在积极监控该攻击者,并且已经能够发现用于攻击韩国政府内知名人士的网络钓鱼网站、恶意文档和脚本。这些最近活动中使用的结构和 TTP 与 KISA 报告中报告的内容一致。
受害学者
Kimsuky 使用的诱饵之一,韩文名为“외교부 사판 2021-05-07”,翻译为“外交部版 2021-05-07”,表明它是针对韩国外交部朝鲜。根据我们收集的数据,我们确定它是 Kimsuky 非常感兴趣的一个实体。与韩国政府相关的其他目标包括:
- 大韩民国外务省一秘
- 大韩民国外务省二秘
- 贸易部长
- 韩国驻香港总领事馆副总领事
- 国际原子能机构(IAEA)核安全官员
- 斯里兰卡驻华大使馆大使
- 外交贸易部参赞
除了针对政府,我们还观察到 Kimsuky 收集了有关韩国大学和公司的信息,包括首尔国立大学和大新金融安全公司以及 KISA。这并不意味着威胁行为者还主动针对他们,也不意味着他们受到了威胁。

网络钓鱼基础设施
该组织有能力建立网络钓鱼基础设施来模仿知名网站并诱骗受害者输入其凭据。这是该攻击者用来收集电子邮件地址的主要方法之一,这些地址稍后将用于发送鱼叉式网络钓鱼电子邮件。该组织仍在使用之前在 KISA 报告中提到的类似网络钓鱼模型,但有一些小的变化。
例如,他们将 Mobile_detect 和 Anti_IPs 模块从 B 型添加到 C 型(KISA 报告),以便能够检测移动设备并基于此调整视图。此网络钓鱼模型能够根据从网络钓鱼电子邮件收到的参数值以英语或韩语显示网络钓鱼页面。Kimsuky 已部署此模型,不仅针对讲韩语的受害者,还针对讲英语的人。

我们观察到他们开发了不同的网络钓鱼技术来模仿以下 Web 服务并窃取凭据:
- Gmail
- Hotmail
- Microsoft Outlook
- Nate
- Daum
- Naver
- Telegram
- KISA

我们已经确定了 Kimsuky 用来托管其网络钓鱼基础设施的几个 URL:
http://accounts.goggle.hol.es/MyAccount
https://myaccount.google.newkda.com/signin
http://myaccount.google.newkda.com/signin
http://myaccount.google.nkaac.net/signin
https://myaccounts-gmail.autho.co/signin
http://myaccounts-gmail.kr-infos.com/signin
http://myaccount.cgmail.pe.hu/signin
https://accounts.google-manager.ga/signin
https://accounts.google-signin.ga/v2
https://myaccount.google-signin.ga/signin
https://account.grnail-signin.ga/v2
https://myaccount.grnail-signin.ga/v2
https://myaccounts.grnail-signin.ga/v2
https://accounts.grnail-signin.ga/v2
https://protect.grnail-signin.ga/v2
https://accounts.grnail-signing.work/v2
https://myaccount.grnail-signing.work/v2
https://myaccount.grnail-security.work/v2
https://signin.grnail-login.ml
https://login.gmail-account.gq
https://signin.gmrail.ml
https://login.gmeil.kro.kr
https://account.googgle.kro.kr
该组织使用 Twitter 帐户来查找和监控其目标,以准备精心制作的鱼叉式网络钓鱼电子邮件。该组织还使用 Gmail 帐户进行网络钓鱼攻击或注册域。该攻击者使用的 Gmail 帐户之一是“[email protected]”,用于注册以下域:
ns1.microsoft-office.us
ns2.microsoft-office.us
它们于 4 月 3 日注册,我们相信已被保留用于未来的活动。从这些领域出发,我们能够发现该参与者使用的基础设施。其中一些与之前报道的由 Kimsuky 运营的活动重叠。

命令和控制基础设施
Kimsuky 将其部分网络钓鱼基础设施重用于其指挥和控制通信。在最近一次针对韩国政府的攻击中,他们重新使用了用于托管其网络钓鱼网站的基础设施,用于 AppleSeed 后门 C&C 通信。除了使用 AppleSeed 后门来定位 Windows 用户外,该攻击者还使用了Android 后门来定位 Android 用户。Android 后门可以被视为 AppleSeed 后门的移动变体。它使用与 Windows 相同的命令模式。此外,Android 和 Windows 后门都使用了相同的基础架构。值得一提的是,此apt称自己为Thallium(化学元素铊)。

以下是参与者用于C2 通信的一些 IP 和域名:
210.16.120.34 216.189.157.89 45.58.55.73 45.13.135.103 27.102.114.89 210.16.121.137 58.229.208.146 27.102.107.63 download.riseknite.life onedrive-upload.ikpoo.cf alps.travelmountain.ml texts.letterpaper.press
对最近一次 AppleSeed 攻击的分析
在本节中,我们将分析用于攻击韩国外交部的 AppleSeed 后门。
初始访问
该攻击者已通过鱼叉式网络钓鱼电子邮件将其嵌入存档文件 (외교부 사판 2021-05-07.zip) 作为附件分发。目标电子邮件地址是使用我们在上一节中描述的攻击者电子邮件网络钓鱼活动收集的。该攻击者于 2021 年 5 月 7 日进行了这次鱼叉式网络钓鱼攻击
存档文件包含一个 JavaScript 文件 (외교부 사판 2021-05-07.pdf.jse),它伪装成一个包含两个 Base64 编码 blob 的 PDF 文件。第一个是 Base64 格式的诱饵 PDF 文件的内容,另一个包含同样为 Base64 格式(编码两次)的 AppleSeed payloads。
首先它使用MSXML Base64解码功能解码第一层,然后使用certutil.exe解码第二层并获得最终的 ApppleSeed 负载。诱饵 PDF 文件已使用 MSXML Base64 解码功能进行解码。

解码 PDF 和 AppleSeed 负载后,内容将写入ProgramData目录。最后,通过调用Wscript.Shell.Run打开诱饵 PDF 文件,通过 PowerShell 调用regsvr32.exe执行 AppleSeed 负载。调用regsvr32.exe运行 DLL 会将其注册为自动调用名为DllRegisterServer的 DLL 导出函数的服务器。
powershell.exe -windowstyle hidden regsvr32.exe /s AppleSeed_Payload
Wscript_Shell.Run(Pdf_Name);
AppleSeed后门
有效载荷是使用 UPX 打包程序打包的 DLL 文件。解压后的样本经过高度混淆,重要的 API 调用和字符串已使用自定义加密算法进行加密。字符串和 API 调用的加密版本采用十六进制 ASCII 格式。每当在代码中恶意软件需要使用字符串时,它就会获取加密的字符串并将其传递给两个函数以对其进行解密。
第一个函数“string_decryptor_prep”获取加密的字符串,然后准备一个包含四个元素的自定义数据结构:
typedef struct _UNICODESTR {
wchar_t *Buffer; // Encrypted string
DWORD padding;
uint64_t Length; // Length of the string
uint64_t MaxLength; // Max length for the string which has been calculated based on the lenght
} UNICODESTR;
第二个函数“string_decryptor”获取前一个函数中创建的数据结构,然后解密字符串并将其放入相同的数据结构中。

解密器函数首先通过对每两个 ascii 字符(即示例 1 中的c3、42、b1、1d…)调用hexascii_to_binary函数,将 hex ascii 格式的输入字符串转换为二进制。然后将输入中的前 16 个字节用作密钥,其余部分是在 16 个字节块(即 ed、d5、0d、60)中解密的实际值。
解密是一个简单的异或运算key[i] ^ string[i-1] ^ string[i]
(对于第一个字符 string_to_be_decrypted[i-1] 设置为零)。

大多数重要的 API 调用在运行时使用“string_decryptor”函数动态解析。(已动态解析 288 个 API 调用。)

AppleSeed 负载有一个名为“DllRegisterServer”的导出函数,该函数将在使用 RegSvr32.exe 执行 DLL 时调用。DllRegisterServer 有一个函数负责执行 DLL 初始化和设置,包括以下步骤:
- 将自身复制到“C:\ProgramData\Software\ESTsoft\Common”中,并重命名为ESTCommon.dll,假装它是属于ESTsecurity公司的DLL 。
- 通过创建以下注册表项使其持久化:
Registry key name: EstsoftAutoUpdate
Registry key value: Regsvr32.exe /s C:\ProgramData\Software\ESTsoft\Common\ESTCommon.dll
Registry location: HKLU\Software\Microsoft\Windows\CurrentVersion\RunOnce

- 通过在“C:\ProgramData\Software\ESTsoft\Common\flags” 目录中创建以下文件并将“flag”写入其中来激活功能:FolderMonitor、KeyboardMonitor、ScreenMonitor、UsbMonitor。
在下一步中,它会创建一个互斥锁,以确保它只感染受害者一次。

创建该互斥体后,它通过调用GetTokenInformation API 调用检查当前进程是否具有正确的访问权限,如果它没有正确的权限,它会尝试通过将SeDebugPrivilege传递给它来使用 AdjustTokenPrivilege 提升其权限以获得系统级权限。

最后,它在单独的线程中执行其主要功能。每个线程中收集的所有数据都被压缩和加密,并在单独的线程中使用 HTTP POST 请求发送到命令和控制服务器。将数据发送到服务器后,数据会从受害者的机器中删除。
ApppleSeed 负载使用 RC4 来加密和解密数据。为了生成 RC4 密钥,它通过调用CryptGenRandom创建一个 117 字节的随机缓冲区,然后使用CryptCreateHash和CryptHashData将缓冲区添加到 MD5 哈希对象中。然后它调用 CryptDeriveKey 来生成 RC4 密钥。
创建的 117 字节缓冲区使用 RSA 算法加密,并与 RC4 加密数据一起发送到服务器。RSA 密钥采用十六进制 ASCII 格式,并已使用“string_decryptor”函数解密。
输入捕获(KeyLogger)
键盘记录器函数使用 GetKeyState 和 GetKeyboardState 来捕获受害者机器上按下的键,并将每个进程的所有键记录到 log.txt 文件中。

屏幕截图
该模块通过调用以下 API 调用序列来截取屏幕截图并将它们写入文件:GetDesktopWindow、GetDC、CreateCompstibleDC、CreateCompatibleBitmap、Bitblt和GetDIBits,然后使用CreateFileW和WriteFile将它们写入文件。

收集可移动媒体数据
该模块查找连接到机器的可移动媒体设备并收集其数据,然后将其发送到命令和控制服务器。为了识别 USB 驱动器,它调用 CM_Get_Device_IDW 来检索格式为“ <device-ID>\<instance-specific-ID>
”的设备实例 ID,然后检查它是否包含 USB 字符串值。

收集文件
该线程在 Desktop、Documents、Downloads 和AppData\Local\Microsoft\Windows\INetCache\IE目录中查找 txt、ppt、hwp、pdf 和 doc 文件,并将它们存档以准备好被泄露到服务器。

命令结构
AppleSeed 后门使用两层命令结构与其命令和控制服务器进行通信。这是用于 C&C 通信的 URL 模式:
entity:url url:?m=[命令层1]&p1=[卷序列号]&p2=[命令层2]
第一层命令定义了服务器期望在受害者上执行的命令类型,它可以具有以下值之一:
命令 | 描述 |
a | ping 模式(收集受害者信息,包括 IP、时间戳、受害者操作系统版本) |
b | 上传数据模式 |
c | 下载命令(等待命令) |
d | 删除命令 |
e | 上传命令模式 |
f | 列出目录模式 |
g | 删除文件模式 |
h | 检查文件模式是否存在 |
命令层 2 仅用于当命令层 1 处于上传数据模式 (c) 并定义上传类型时。它可以具有以下值之一:
命令 | 描述 |
a | 上传命令执行结果 |
b | 上传文件和可移动媒体数据 |
c | 上传截图 |
d | 上传输入捕获数据(键盘记录器数据) |
结论
Kimsuky 是朝鲜的威胁行为者之一,主要针对韩国政府实体。在这篇博文中,我们了解了该组织的活动,包括其网络钓鱼基础设施以及命令和控制机制。我们的研究表明,该组织仍在使用 KISA 在 2020 年 12 月报告的类似基础设施和 TTP。它最近的活动针对使用 Apple Seed 后门的外交部。
MITRE ATT&CK 技术
战术 | ID | 名称 | 细节 |
侦察 | T1598 | 钓鱼信息 | 使用网络钓鱼收集电子邮件地址以进行有针对性的攻击 |
资源开发 | T1583.00 | 收购基础设施:领域 | 在攻击前几个月购买和注册域名 |
资源开发 | T1587.001 | 开发能力:恶意软件 | 为攻击开发 AppleSeed 后门 |
资源开发 | T1585.002 | 建立帐户:电子邮件帐户 | 创建电子邮件帐户以注册域并用于网络钓鱼攻击 |
资源开发 | T1585.001 | 建立帐户:社交媒体帐户 | 使用 Twitter 收集有关受害者的信息 |
初始访问 | T1566.001 | 网络钓鱼:鱼叉式钓鱼附件 | 通过网络钓鱼邮件分发包含 JS dropper 的存档文件 |
执行 | T1059.001 | 命令和脚本解释器:PowerShell | 使用 PowerShell 执行命令 |
执行 | T1059.007 | 命令和脚本解释器:JavaScript | 使用JS执行PowerShell |
坚持 | T1547.001 | 启动或登录自动启动执行:注册表运行键/启动文件夹 | 创建注册表 RunOnce 键 |
权限提升 | T1134 | 访问令牌操作 | 调整其令牌权限以拥有 SeDebugPrivilege |
防御规避 | T1134 | 访问令牌操作 | 调整其令牌权限以拥有 SeDebugPrivilege |
防御规避 | T1140 | 去混淆/解码文件或信息 | – 使用命令 certutil 解码 base64 内容– 解密来自服务器的数据 |
防御规避 | T1070.004 | 主机上的指标删除:文件删除 | 删除其泄露的数据以掩盖其踪迹 |
防御规避 | T1112 | 修改注册表 | 修改运行注册表项 |
防御规避 | T1027 | 混淆的文件或信息 | – 所有字符串和 API 调用都使用自定义加密进行混淆 – 丢弃的有效载荷使用 UPX 打包 |
防御规避 | T1218.010 | 签名二进制代理执行:Regsvr32 | 通过 Regsvr32 加载有效负载 |
凭证访问 | T1056.001 | 输入捕获:键盘记录 | 记录受害者机器上的输入 |
发现 | T1083 | 文件和目录发现 | 获取文件和目录列表 |
发现 | T1082 | 系统信息发现 | 收集操作系统类型和卷序列号 |
收藏 | T1560 | 归档收集的数据 | 在渗漏之前压缩和加密收集的数据 |
收藏 | T1005 | 来自本地系统的数据 | 从本地系统收集数据 |
收藏 | T1025 | 来自可移动媒体的数据 | 从可移动媒体收集数据 |
收藏 | T1056.001 | 输入捕获:键盘记录 | 记录受害者机器上的击键 |
收藏 | T1113 | 屏幕截图 | 捕获屏幕截图 |
命令与控制 | T1001 | 数据混淆 | 加密数据以进行渗漏 |
命令与控制 | T1071.001 | 应用层协议:Web 协议 | 使用 HTTP 进行命令和控制通信 |
渗透 | T1041 | 通过 C2 通道进行渗透 | 通过用于 C2 的相同通道提取数据 |
网络钓鱼目标侦察与攻击资源分析.pdf





下载地址:
网络钓鱼目标侦察与攻击资源分析.pdf