研究人员发现了一种新的窃密软件 HookSpoofer,在网络犯罪论坛上已经开卖。HookSpoofer 具备键盘记录与剪贴板窃取功能,将窃取的数据通过 Telegram 回传给攻击者。HookSpoofer 是使用 C# 开发的,并且受到开源窃密软件 StormKitty 的启发。
传播媒介
HookSpoofer 由名为 Spotify proxyless checker 2022.rar 的压缩文件来传播,其中包含 17 个文件,HookSpoofer 名为 Spotify checker.exe。
感染流程
感染流程
技术分析
样本文件是由 .NET 混淆工具 Confuser 处理后的 .NET 程序。
数组初始化
一大堆数据存储在变量数组中,后续解密并存储在数组 array2 中。
解密循环
解密函数处理后为一个 GCHandle 对象,会创建 koi 模块并调用其函数。
解密 .Net 模块的内存加载代码
解密后,另一个 .NET 编写的 PE 文件由 Confuserex v1.0.0 进行混淆处理。上图显示了 koi 模块如何在内部加载到内存中的主文件 stub.exe。
模块加载到内存后,会弹出一个虚假的错误消息,如下所示。为了转移受害者的注意力,给 koi 模块在后台执行争取时间。
错误提示
弹出错误提示的代码
通过对 koi 模块的分析,是由 Confuserex 加混淆处理过的。为了便于分析,去除了混淆再进行分析。
弹出错误提示后,样本会创建一个互斥量并检查该文件是否在 Startup 子文件夹中。随后,样本检查硬编码的、混淆的 Telegram API 和 Telegram ID。如果未发现就会自行删除,否则通过 GitHub 下载对应的 DLL 文件。
hxxps://raw.githubusercontent.com/LimerBoy/StormKitty/master/StormKitty/stub/packages/DotNetZip.1.13.8/lib/net40/DotNetZip.dll
hxxps://raw.githubusercontent.com/LimerBoy/StormKitty/master/StormKitty/stub/packages/AnonFileApi.1.14.6/lib/net40/AnonFileApi.dll
自删除代码
下图显示了经过混淆的 Telegram API 和 Telegram ID 字符串:
混淆的 Telegram API 和 ID
去混淆并且 base64 解码后的十六进制字节形成一个数组,使用相同的密钥和盐进行 AES 256 解密:
Key: {104,116,116,112,115,58,47,47,103,105,116,104,117,98,46,99,111,109,47,76,105,109,101,114,66,111,121,47,83,116,111,114,109,75,105,116,116,121}
Salt: { 255,64,191,111,23,3,113,119,231,121,252,112,79,32,114,156 }
解密后即为 hxxps://api[.]telegram.org/bot6122846074:AAF6rJZMCIphpMPrSWQdU2PZSf14u6p4zeA/
:
去混淆的 Telegram API 和 ID
反分析技术
调试器检查
通过 CheckRemoteDebuggerPresent 检查调试器。
进程检查
检查特定进程是否存在,例如 process hacker、netstat、tcpview 和 regmon 等。
进程检查
沙盒检查
检查与沙盒相关的 DLL 文件,例如 SbieDll。
沙盒检查
虚拟化检查
通过 WMI 查询检查虚拟环境,如下所示。
虚拟化检查
IP 检查
检查系统的 IP 地址是否与沙盒环境(如 VirusTotal、anyRun 等)相同,如下所示。检测到就会弹出对应的虚假错误消息:
反分析检查
虚假消息
窃取能力
窃取各种 ProtonVPN、OpenVPN、NordVPN 数据:
窃取 VPN 数据
从 Filezilla 的 recentservers.xml 和 sitemanager.xml 窃取数据:
窃取 Filezilla 数据
窃取系统上运行的进程信息,包括进程名、PID、路径:
窃取进程信息
获取屏幕截图:
窃取桌面截图
使用 netsh wlan show profile 命令获取保存的 Wi-Fi 和密码相关的信息以及扫描设备周围的网络(SSID、BSSID):
窃取 WiFi 相关信息
窃取文件:
窃取文件
窃取 Firefox、IE、Opera 和 Edge 浏览器历史记录、Cookie、登录凭据、信用卡等:
窃取浏览器信息
窃取通信软件,如 Telegram、Discord、Pidgin、Outlook 和 Skype:
窃取通信软件
窃取摄像头截图:
窃取摄像头
窃取支付卡信息:
窃取支付卡
窃取用户按键记录:
窃取用户按键记录
窃取系统相关信息:
窃取系统信息
窃取 %AppdData% 文件夹中所有文件的信息,命名模式为 <md5 of string concat current timedatestamp, username, comp name, culture name, CPU name, GPU name>
。
所有窃取的数据都会压缩保存在加密的 ZIP 文件中,密码为 <md5 of string concat current timedate, username, comp name, culture name, CPU name, GPU name>
。
压缩文件
ZIP 文件会被上传到 anonfile.com/,连接会发送到 Telegram Bot 上:
anonfile 文件链接
报告是否已发送至 Telegram 的信息
下图显示了正在发送的完整数据,标题为 HookSpoofer:
完整数据
与 StormKitty 的关系
研究人员发现 HookSpoofer 实际上是基于 StormKitty二次开发而来,增加了部分功能。借鉴开源代码十分常见,早期在 Typhon、WorldWind Stealer 与 Prynt Stealer 中都发现了 StormKitty 代码的痕迹。
它们发送完整数据如下所示:
相似之处
结论
窃密程序可能会通过各种渠道进行传播,包括电子邮件附件、虚假软件下载与社会工程学技术。
IOC
de90466d983da595e863339c34ee4b6b
7fce055a581c0b116a9679291bf89b7d
474e0cd6bc1f0fb71bbffa1ae7dd8e66