新的 SysJoker 后门针对 Windows、Linux 和 macOS
针对多个操作系统的恶意软件在恶意软件威胁领域也不例外。去年 9 月才记录的Vermilion Strike是迄今为止最新的例子之一。
本文由机器翻译,原文:https://www.intezer.com/blog/malware-analysis/new-backdoor-sysjoker/
2021 年 12 月,我们发现了一个针对 Windows、Mac 和 Linux 的新多平台后门。VirusTotal 中完全未检测到 Linux 和 Mac 版本。我们将这个后门命名为SysJoker。
SysJoker 是在对一家领先教育机构的基于 Linux 的 Web 服务器的主动攻击期间首次发现的。经过进一步调查,我们发现 SysJoker 也有 Mach-O 和 Windows PE 版本。根据在 VirusTotal 中发现的命令和控制 (C2) 域注册和样本,我们估计 SysJoker 攻击是在 2021 年下半年发起的。
SysJoker 伪装成系统更新,并通过解码从托管在 Google Drive 上的文本文件中检索到的字符串来生成其 C2。在我们的分析中,C2 更改了 3 次,表明攻击者处于活动状态并正在监视受感染的机器。根据受害者学和恶意软件的行为,我们评估 SysJoker 是针对特定目标的。
SysJoker 以用于TypeScript 文件的后缀.ts上传到 VirusTotal。此恶意软件的一个可能攻击媒介是通过受感染的 npm 包。
下面我们提供了对该恶意软件的技术分析以及 IoC 以及检测和响应缓解措施。
SysJoker的技术分析
该恶意软件是用 C++ 编写的,每个样本都是针对它所针对的特定操作系统量身定制的。在 VirusTotal 中完全未检测到 macOS 和 Linux 样本。
VirusTotal 中针对 Mac M1 处理器的e06e06752509f9cd8bc85aa1aa24dba2
行为分析
SysJoker 的行为对于所有三个操作系统都是相似的。我们将分析 SysJoker 在 Windows 上的行为。
与 Mac 和 Linux 示例不同,Windows 版本包含一个第一阶段的 dropper。滴管 ( d71e1a6ee83221f1ac7ed870bc272f01 ) 是一个 DLL,它作为style-loader.ts上传到 VirusTotal,在撰写本文时只有 6 次检测。
Dropper从 C2 https[://]github[.]url-mini[.]com/msg.zip中删除一个压缩的 SysJoker ( 53f1bb23f670d331c9041748e7e8e396 ) ,将其复制到C:\ProgramData\RecoverySystem\recoveryWindows.zip,解压缩并执行它。所有这些操作都是通过 PowerShell 命令执行的。
显示 PowerShell 命令的进程树。
一旦 SysJoker ( d90d0f4d6dad402b5d025987030cc87c ) 被执行,它会随机休眠 90 到 120 秒。然后,它将创建 C:\ProgramData\SystemData\ 目录并将自身复制到该目录下,伪装成igfxCUIService.exe(igfxCUIService 代表 Intel Graphics Common User Interface Service)。接下来,它将使用离地 (LOtL) 命令收集有关机器的信息。SysJoker 使用不同的临时文本文件来记录命令的结果。这些文本文件会立即删除,存储在 JSON 对象中,然后编码并写入名为microsoft_windows.dll的文件。下图展示了SysJoker在内存中构建的JSON对象。
SysJoker 在内存中构建的 JSON 对象。
它将收集 MAC 地址、用户名、物理媒体序列号和 IP 地址(请参阅 IoC 部分以获取完整的命令列表)。SysJoker 将通过向注册表运行键HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run添加一个条目来创建持久性。在上述每个步骤之间,恶意软件会随机休眠一段时间。
以下屏幕截图显示了进程树和命令。
处理树和命令。
接下来,SysJoker 将开始其 C2 通信。
解码/编码方案
SysJoker 在二进制文件中保存一个硬编码的 XOR 密钥,用于解码和编码二进制文件中的字符串以及从 C2 发送和接收的数据。XOR 密钥是未在解码方案中使用的 RSA 公钥。SysJoker 的所有版本中都存在相同的 XOR 键:
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDkfNl+Se7jm7sGSrSSUpV3HUl3vEwuh+xn4q\
BY6aRFL91x0HIgcH2AM2rOlLdoV8v1vtG1oPt9QpC1jSxShnFw8evGrYnqaou7gLsY5J2B06eq5UW7\
+OXgb77WNbU90vyUbZAucfzy0eF1HqtBNbkXiQ6SSbquuvFPUepqUEjUSQIDAQAB
解决 C2
为了获得可用的 C2 并开始通信,SysJoker 首先对硬编码的 Google Drive 链接进行解码。
Google Drive 链接托管一个名为domain.txt的文本文件,该文件包含一个编码的 C2。文本文件的内容会随着时间的推移而变化,具体取决于当前可用的 C2。SysJoker 将解码 C2 并将收集到的用户信息发送到 C2 的/api/attach 目录作为初始握手。C2 回复一个唯一的令牌,从现在开始,当恶意软件与 C2 通信时,该令牌将用作标识符。
C2 说明
SysJoker 运行一个 while(1) 循环,该循环使用唯一令牌向 C2 的/api/req目录发送请求,并将处理 C2 的响应,该响应使用此库 中的函数构建为 JSON 。这是 SysJoker ping C2 以获取说明的方式(请参见下图中的步骤 2):
脚步。
如果服务器响应数据,SysJoker 将解析接收到的有效负载(参见下图中的步骤 3)。SysJoker 可以从 C2 接收以下指令:exe、cmd、 remove_reg和exit。
下图显示了 SysJoker 与 C2 的通信流程。
当前版本中未实现remove_reg和exit 。根据指令名称,我们可以假设它们负责恶意软件的自我删除。让我们看看exe和cmd指令:
exe - 此命令负责删除和运行可执行文件。SysJoker 将收到一个 zip 文件的 URL、一个文件应该被放置到的路径的目录,以及恶意软件应该在提取的可执行文件上使用的文件名。它将下载此文件,解压缩并执行它。
解析函数的 IDA 代码片段,如果是exe部分。
执行后,恶意软件将回复 C2 的/api/req/res API,如果进程成功则返回“成功”,否则返回“异常”(上图中的步骤 4)。
解析函数的IDA代码片段,构建响应状态。
cmd - 该指令负责运行命令并将其响应上传到 C2。SysJoker 将对命令进行解码、执行并通过/api/req/res API将命令的响应上传到 C2 (上图中的步骤 4)。
解析函数的IDA代码片段,构建cmd命令响应。
在我们的分析过程中,C2 没有响应下一个阶段的指令。
检测与响应
要检测您组织中的机器是否受到威胁,我们建议采取以下步骤:
1. 使用内存扫描器检测内存中的 SysJoker 有效载荷
对于 Linux 机器,使用Intezer Protect 获得对基于 Linux 系统中代码的完整运行时可见性,并在任何恶意或未经授权的代码时收到警报。我们有一个免费的社区版。
对于 Windows 机器,使用 Intezer 的Endpoint Scanner。Endpoint Scanner 将让您了解驻留在机器内存中的所有二进制代码的类型和来源。下图显示了一个感染 SysJoker 的端点示例:
2. 使用检测内容在您的 EDR 或 SIEM 中进行搜索。我们为您提供了以下每个操作系统的 IoC 和丰富的检测内容列表。将这些与您的 EDR 一起使用来寻找受感染的机器。我们将很快发布一个专门的博客,讨论如何使用检测内容来检测 SysJoker。
如果您已被入侵,请执行以下步骤:
杀死与SysJoker相关的进程,删除相关的持久化机制,以及所有与SysJoker相关的文件(见下文检测内容部分)
通过运行内存扫描程序确保受感染的机器是干净的
调查恶意软件的初始入口点。如果服务器感染了 SysJoker,在调查过程中,请检查:
面向公众的服务的配置状态和密码复杂性
使用的软件版本和可能的已知漏洞
SysJoker 的 Linux 和 Windows 版本现已在Intezer Analyze 中编入索引。
最终积分
有迹象表明 SysJoker 攻击是由高级威胁参与者执行的:
代码是从头开始编写的,在其他攻击中从未见过。最重要的是,在实时攻击中很少发现以前看不见的 Linux 恶意软件。
攻击者注册了至少 4 个不同的域,并为三种不同的操作系统从头开始编写恶意软件。
在我们的分析过程中,我们没有目睹攻击者发送的第二阶段或命令。这表明攻击是特定的,通常适合高级参与者。
根据恶意软件的功能,我们评估攻击的目标是间谍活动以及横向移动,这也可能导致勒索软件攻击作为下一阶段之一。
IOC
精灵
bd0141e88a0d56b508bc52db4dab68a49b6027a486e4d9514ec0db006fe71eed
d028e64bf4ec97dfd655ccd1157a5b96515d461a710231ac8a529d7bdb936ff3
苹果电脑
1a9a5c797777f37463b44de2b49a7f95abca786db3977dcdac0f79da739c08ac
fe99db3268e058e1204aff679e0726dc77fd45d06757a5fda9eafc6a28cfb8df
d0febda3a3d2d68b0374c26784198dc4309dbe4a8978e44bb7584fd832c325f0
视窗
61df74731fbe1eafb2eb987f20e5226962eeceef010164e41ea6c4494a4010fc
1ffd6559d21470c40dcf9236da51e5823d7ad58c93502279871c3fe7718c901c
d476ca89674c987ca399a97f2d635fe30a6ba81c95f93e8320a5f979a0563517
36fed8ab1bf473714d6886b8dcfbcaa200a72997d50ea0225a90c28306b7670e
C2
https://bookitlab[.]tech
https://winaudio-tools[.]com
https://graphic-updater[.]com
https://github.url-mini[.]com
https://office360-update[.]com
https://drive.google[.]com/uc?export=download&id=1-NVty4YX0dPHdxkgMrbdCldQCpCaE-Hn
https://drive.google[.]com/uc?export=download&id=1W64PQQxrwY3XjBnv_QAeBQu-ePr537eu
检测内容
视窗
机器上创建的文件和目录:
C:\ProgramData\RecoverySystem
C:\ProgramData\RecoverySystem\recoveryWindows.zip
C:\ProgramData\RecoverySystem\msg.exe
C:\ProgramData\SystemData
C:\ProgramData\SystemData\igfxCUIService.exe
C:\ProgramData\SystemData\tempo1.txt
C:\ProgramData\SystemData\tempo2.txt
C:\ProgramData\SystemData\tempi1.txt
C:\ProgramData\SystemData\tempi2.txt
C:\ProgramData\SystemData\temps1.txt
C:\ProgramData\SystemData\temps2.txt
C:\ProgramData\SystemData\tempu.txt
C:\ProgramData\SystemData\microsoft_windows.dll
C:\ProgramData\xAE 操作系统\ServiceHub.exe
持久性:
HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionRun
名称: igfxCUIService类型: REG_SZ数据: “C:\ProgramData\SystemData\igfxCUIService.exe”
命令:
“C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe” getmac | Out-File -Encoding 'Default' 'C:\ProgramData\SystemData\temps1.txt' ; wmic 路径 win32_physicalmedia 获取序列号 | Out-File -Encoding 'Default' 'C:\ProgramData\SystemData\temps2.txt'
“C:\Windows\System32\Wbem\WMIC.exe”路径 win32_physicalmedia 获取序列号
“C:\Windows\system32\getmac.exe”
“C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe” $env:用户名 | Out-File -Encoding 'Default' 'C:\ProgramData\SystemData\tempu.txt'
“C:\Windows\System32\cmd.exe” /c wmic OS 获取 Caption、CSDVersion、OSArchitecture、版本/值 > “C:\ProgramData\SystemData\tempo1.txt” && 键入“C:\ProgramData\SystemData\tempo1 .txt” > “C:\ProgramData\SystemData\tempo2.txt”
wmic OS 获取 Caption、CSDVersion、OSArchitecture、版本/值
“C:\Windows\System32\cmd.exe” /c wmic nicconfig where 'IPEnabled = True' 获取 ipaddress > “C:\ProgramData\SystemData\tempi1.txt” && 键入“C:\ProgramData\SystemData\tempi1.txt ” > “C:\ProgramData\SystemData\tempi2.txt”
wmic nicconfig where 'IPEnabled = True' 获取 IP 地址
“C:\Windows\System32\cmd.exe” /c REG ADD HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run /V igfxCUIService /t REG_SZ /D “C:\ProgramData\SystemData\igfxCUIService.exe” /F
REG ADD HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run /V igfxCUIService /t REG_SZ /D “C:\ProgramData\SystemData\igfxCUIService.exe” /F
Linux
机器上创建的文件和目录:
/。图书馆/
/.Library/SystemServices/updateSystem
/.图书馆/系统网络
/.库/log.txt
持久性:
创建 cron 作业:
@reboot (/.Library/SystemServices/updateSystem)
命令:
crontab -l | egrep -v “^(#|$)” | grep -e “@reboot (/.Library/SystemServices/updateSystem)”
cp -rf <样本名称> /.Library/SystemServices/updateSystem
nohup '/.Library/SystemServices/updateSystem' >/dev/null 2>&1 &
如果配置 | grep -v 127.0.0.1 | grep -E “inet ([0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}) ” | awk '{打印 $2}'
IP 地址 | awk '/ether/{打印 $2}'
身份证 -u
unname - 夫人
苹果电脑
机器上创建的文件和目录:
/图书馆/MacOsServices
/图书馆/MacOsServices/updateMacOs
/图书馆/系统网络
/Library/LaunchAgents/com.apple.update.plist
持久性:
通过路径/Library/LaunchAgents/com.apple.update.plist下的 LaunchAgent 创建持久性。
内容:
<?xml 版本=”1.0″ 编码=”UTF-8″?>
<!DOCTYPE plist PUBLIC “-//Apple//DTD PLIST 1.0//EN” “http://www.apple.com/DTDs/PropertyList-1.0.dtd”>
<plist 版本=”1.0″>
<字典>
<key>标签</key>
<string>com.apple.update</string>
<key>LimitLoadToSessionType</key>
<string>水色</string>
<key>程序参数</key>
<数组>
<string>/Library/MacOsServices/updateMacOs</string>
</array>
<key>保活</key>
<字典>
<key>成功退出</key>
<真/>
</dict>
<key>RunAtLoad</key>
<真/>
</dict>
</plist>
您可以在Intezer Analyze中找到有关 SysJoker 的更多信息,它现在已经索引了 Linux 和 Windows 版本。
本文为转载文章,版权归原作者所有,不代表本站立场和观点。