窃取程序是一种广泛存在的威胁,它为威胁行为者提供了大量敏感数据的访问权限,然后将这些数据泄露给他们,供他们进一步滥用。基于 PowerShell 的工具 Kematian Stealer 就是这样一种复杂的恶意软件。
最近,我们偶然发现了一条有关 Kematian Stealer 的推文。这是一个基于 PowerShell 的 Token-Grabber。
图 1:执行流程
二进制分析
现在让我们深入分析一下该恶意软件。该二进制文件是一个 64 位可移植可执行文件和一个加载文件。
该加载器用C++编写,其资源部分包含混淆的脚本。
图 2:Resource-Blob
恶意软件提取资源部分中的“112E9CAC33494A35D3547F4B3DCD2FD5” blob,并将其解密,这是一个批处理文件。
图3:Decryption_Loop
上面的循环用于解密前面提到的 blob。它很可能是 RC4。
图4:Decrypted_Script
解密后,它会尝试以提升的权限运行该 bat 文件。
图5:Bat_File(am_admin)
然后执行包含 powershell_script 的批处理文件。
执行时,它会检查脚本是否以管理员权限运行。如果不是,它会提示用户以提升的权限运行脚本。只有当脚本获得提升的权限时,它才会转到下一个函数。
图 6:Check_If_Admin
之后,它运行用于持久性的任务函数。它通过 Windows 任务计划程序创建持久性。首先,它创建 PowerShell 脚本的副本并将其放在 %Appdata% 文件夹中,文件名为 percs.ps1。
图 7:Task_Creation
脚本会在创建目录、文件和任务之前检查它们是否已经存在。这可以防止多个实例同时运行时发生冲突,从而可能导致系统不稳定或提醒用户注意异常行为。
然后它转到名为 Grub 的数据收集功能。
数据收集
grub 函数包含主要的窃取代码,主要关注系统配置和网络环境信息。
它首先通过调用 Web 请求“Invoke-Web Request -Uri https://api.ipify.org ”来获取系统的公共 IP,获取 IP 后,将其存储在位于用户本地应用程序数据目录“%LOCALAPPDATA%Tempip.txt”中的文本文件“ip.txt”中。
图8:IP_Stealer
然后,它使用 Windows 命令行收集系统信息。PowerShell 执行 Systeminfo.exe,检索系统信息,如操作系统版本、主机名、系统型号等。获取所有信息后,它会将信息重定向到名为“system_info.txt”的文本文件,并将其存储在用户的“%LOCALAPPDATA%Temp System_info.txt”位置。
图9:System_Info_stealer
收集系统信息和系统公网 IP 后,它开始使用 WMI 收集系统 UUID 和 Mac 地址。它从 WMI 中提取 UUID 和 Mac 地址值,并将其存储在“%LOCALAPPDATA%Tempuuid.txt”和“%LOCALAPPDATA%Tempmac.txt”位置的名为“uuid.txt”和“mac.txt”的文本文件中。
图10:UUID_stealer
图11:MAC_Stealer
收集 UUID 和 Mac 地址后,它会使用系统环境变量收集有关系统当前用户名和主机名的信息。
图 12:用户和主机
最后,它使用 Windows 命令行收集系统网络状态信息。PowerShell 脚本执行 NETSTAT.exe 并检索网络统计信息,例如活动连接、侦听端口以及相关的进程 ID。
图13:Netstat_Stealer
之后,作者构建了一条详细且格式化的消息,并使用 Web Hook 将其发送到 Discord 频道。该脚本包含有关受害者的系统信息(IP、用户名、主机名、UUID、MAC 地址),这些信息被格式化为字段和视觉元素(如颜色、缩略图和页脚),以使消息更具吸引力和结构化。通过这种方式,它会将 POST 请求发送到 JSON 有效负载中提到的指定 Web Hook url。
图 14:Discord_Structure
然后,它会尝试终止一些与 Discord 相关的进程,并尝试删除一些文件(如果存在),例如 Discord Token Protector 等,这些文件可以防止恶意抓取。为了逃避安全产品的检测,它会检查 Discord 令牌 protector.exe 和 secure.dat 是否存在。如果这些文件存在于 Discord 令牌目录中,恶意软件就会将其删除。
图 15:Discord_Kill
之后,它会检查特定目录是否存在,如果可用,它会继续进行,否则它会创建一个新的目录“LOCALAPPDATATemppercs”。
图16:Downloading_Payload
在创建特定目录后,它会尝试下载名为 main.exe 的有效负载。但不幸的是,该有效负载无法在该特定网页上使用;它会重定向到 Kematian 窃取程序 GitHub 页面。
图 17:Url_Redirection
在分析的这个阶段,我们了解到该窃取程序是 Kematian 窃取程序的早期版本。它最初被称为 PowerShell-Token-Grabber;它由作者 KDot227 构建,现在更名为 Somali-Devs。在他们最近的更新中,他们还提到了源代码中的作者变更,GitHub 页面也重定向到 Kematian 窃取程序的 GitHub 页面。
我们从Virus total中获取了 main.exe ,这是一个基于 Python 的可执行文件。在反编译 Python 可执行文件时,我们发现浏览器窃取程序代码就在这里。它主要关注浏览器 cookie、密码、历史记录详细信息和桌面屏幕截图。
图 18:Targeted_Browsers
图 19:Desktop_Grabber
它还以 Discord 代币为目标;它尝试将代码注入各种 discord 客户端以获取 discord 代币,为此它尝试以 injection.js 的名义下载作者 KDot227 编写的 JavaScript。
-
Discord
-
DiscordCanary
-
DiscordPTB
-
DiscordDevelopment
图20:Discord_Injection
数据泄露
收集完所有所需数据后,它会将所有收集的数据从应用程序数据目录移动到新创建的目录“LOCALAPPDATATemppercs”。它还会尝试搜索浏览器 cookie、密码并获取桌面屏幕截图;但由于网页不可用,因此无法检索这些信息。最后,它会压缩所有文本文件并压缩特定的数据目录。
图 21:Stolen_Data
Curl.exe 用于传输数据以及包含名称和内容的 Json 有效负载。最后,抓取器使用 Web 钩子将所有数据泄露到 Discord 频道。
图 22:数据压缩
在窃取所有数据后,它会清除所有痕迹,包括目录和收集的数据。
图 23:Deleting_Traces
当我们将此令牌抓取器与新版本的 Kematian 窃取器进行比较时,发现它添加了许多新功能,例如 Builder、Evasion 等。
新功能
-
图形用户界面生成器
-
防病毒逃避
-
反分析/提取 WiFi 密码
-
网络摄像头和桌面屏幕截图
-
会话窃取程序(消息、游戏、VPN 客户端、FTP 客户端等)
我们可以看到,威胁行为者正在更新其恶意软件,使其更具隐蔽性。与其他窃取者相比,这主要集中在可用于主动侦察的网络相关信息上。由于恶意软件窃取的信息很敏感,因此在当今世界,投资购买 K7 AntiVirus 等信誉良好的安全产品来保护自己是必要的。我们 K7 实验室提供针对此类窃取者和所有最新威胁的检测。建议用户使用可靠的安全产品(如“ K7 Total Security ”)并保持其最新状态以保护其设备。
文件名 | 哈希 | 检测名称 |
Loader | 02F3B7596CFF59B0A04FD2B0676BC395 | 木马下载器 ( 005a4e961 ) |
584A.一 | D2EA85153D712CCE3EA2ABD1A593A028 | 木马下载器 ( 005a4e921 ) |
PowerShell.ps1 | A3619B0A3EE7B7138CEFB9F7E896F168 | 特洛伊木马 ( 0001140e1 ) |
Main.exe | E06F672815B89458C03D297DB99E9F6B | 特洛伊木马 ( 005ae5411 ) |
Injection.js | 1CBBFBC69BD8FA712B037EBE37E87709 | 特洛伊木马 ( 00597b5e1 ) |
原文始发于微信公众号(Ots安全):Kematian Stealer 源自 PowerShell Token Grabber
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论