DeathStalker组织利用Janicab木马新变种攻击律师事务所
· 2 分钟阅读 · @admin

DeathStalker是一个独特的APT威胁组织,专门针对金融机构和律师事务所进行定向攻击。与传统网络犯罪组织不同,该组织不受直接经济利益驱动,不部署勒索软件,不窃取支付信息进行转售,也不从事网络黑产相关的常规活动。其主要目标是收集高价值的敏感商业信息。
从该组织以往的攻击行为特征来看,DeathStalker更像是一群提供黑客雇佣服务的专业团队,或在金融领域充当信息经纪人的角色。该组织通常通过包含恶意LNK文件的钓鱼邮件进行初始投递,成功入侵后控制受害者设备以窃取敏感商业情报。其主要使用的攻击工具是Janicab木马及其变种。
1. 攻击链分析

2. 技术分析
2.1 SMTP-error.txt.lnk 初始投递文件分析
该文件是Janicab木马的新变种。通过分析其LNK元数据发现,与之前捕获的旧版本Janicab样本存在高度相似性,包括SID、字体设置、屏幕缓冲区大小、窗口大小以及MAC地址等特征。值得注意的是,所有样本的MAC地址均指向VMware虚拟机环境,表明攻击者在该虚拟化环境中构建恶意样本。
LNK文件采用了多阶段载荷嵌入技术,在单个快捷方式文件中隐藏了多个恶意组件。这些嵌入文件在LNK文件中的具体位置分布如下图所示:

当受害者双击该快捷方式文件时,触发以下执行流程:
- LNK文件首先将自身复制到系统临时目录
- 通过
find命令搜索特征字符串#@~^(VBE加密脚本的标识符) - 提取从该标识符到文件末尾的所有数据,并保存为
.vbe文件 - 使用
cscript.exe执行提取的VBE脚本 - 将LNK文件路径作为第一个命令行参数传递给脚本,用于后续解析其他嵌入载荷
具体执行命令如下图所示:

2.2 第一阶段VBE脚本分析
该VBE脚本由LNK文件通过命令行参数调用执行。解密后的VBS脚本主要功能包括:
- 解密并提取第二阶段的VBE脚本
- 将解密内容保存为
2.vbe文件 - 执行第二阶段脚本,并将LNK文件路径作为参数传递
值得注意的是,在执行2.vbe的过程中,脚本会调用cmd.exe或powershell.exe执行相关操作。为了清除执行痕迹,脚本最后会调用killRunningCmdInstances函数终止对应进程,从而降低被安全软件检测的风险。

脚本通过精确的文件偏移量和数据大小从LNK文件中提取嵌入载荷。具体而言,第二阶段VBE脚本位于LNK文件偏移3643处,数据大小为5042字节。攻击者在提取的数据中特意移除了VBE标识符#@~^,这种反取证技术可以有效规避某些自动化分析工具对LNK文件中脚本的提取。
提取文件的核心代码逻辑如下图所示:

在进程终止功能实现中,脚本通过WMI(Windows Management Instrumentation)查询获取所有正在运行的进程列表,然后遍历检查目标进程是否在列表中。如果发现匹配的进程,则调用终止方法结束该进程。

2.3 第二阶段VBE脚本分析
与第一阶段类似,该文件同样是经过加密的VBS脚本。第二阶段脚本的主要功能是提取嵌入在LNK文件中的多个组件,包括:
- 诱饵文件(用于迷惑受害者)
- CAB压缩包
- 第三阶段VBE脚本
脚本执行后,首先检查第一个命令行参数指向的文件是否存在,如果存在则将其复制到系统临时目录。

脚本中硬编码了各个嵌入文件对应的文件偏移量和大小信息。通过调用ExtractEmbeddedFile函数,脚本能够精确定位并提取这些载荷,然后保存到临时目录。提取方法与第一阶段相似,均采用二进制读取和偏移定位技术。

脚本具有操作系统版本检测功能。当检测到在Windows XP系统上运行时,仅执行第三阶段的VBE脚本,跳过其他可能不兼容的操作。这表明攻击者对不同Windows版本的兼容性进行了专门适配。

2.4 第三阶段VBE脚本分析
第三阶段是Janicab木马的核心功能模块,包含了完整的反检测、持久化、信息窃取和C&C通信能力。
2.4.1 安全软件检测
VBE脚本启动后,首先通过WMI查询AntiVirusProduct类,枚举受害者机器上安装的所有安全软件产品。该信息将用于评估目标环境的安全防护水平,并为后续的免杀策略提供决策依据。
2.4.2 禁止CCleaner浏览器自动清理
为了确保恶意载荷的持久性,脚本会针对性地删除CCleaner清理软件的相关注册表项。这样可以防止该工具在自动清理过程中删除临时目录中的恶意程序文件,从而保证木马的长期驻留。

2.4.3 注册表持久化设置
脚本部署了ie.vbe监控脚本,该脚本周期性地检查Internet Explorer浏览器的运行状态。如果检测到IE浏览器正在运行,且使用了-Embedding命令行参数(通常用于COM对象嵌入场景),脚本会立即终止IE进程。该检查操作每5分钟执行一次。

脚本采用了间接写入注册表的方式来实现持久化。具体流程如下:
- 将自启动配置写入临时的
runOnce.reg文件 - 通过
reg.exe导入该注册表文件 - 导入完成后立即删除
.reg文件,清除痕迹

针对Windows Vista系统,脚本会禁用IE浏览器的保护模式横幅提示,降低用户对异常行为的警觉。

此外,脚本还会修改注册表以禁用IE浏览器的扩展功能,可能是为了防止某些安全扩展插件的干扰。

2.4.4 虚拟机和沙箱检测
为了规避安全分析环境,脚本实现了多层次的虚拟化检测机制。
驱动文件检测
脚本检查系统中是否存在VirtualBox、VMware和Parallels虚拟机的特征驱动文件,以判断是否运行在虚拟化环境中。

主板信息检测
通过WMI查询主板制造商和产品名称,检测是否包含虚拟化软件的特征关键字(如“VMware”、“VirtualBox”、“QEMU”等)。

MAC地址检测
脚本获取网络适配器的MAC地址,并与已知的虚拟机厂商OUI(组织唯一标识符)前缀进行比对,识别虚拟网卡。

2.4.5 分析工具检测
脚本遍历当前运行的所有进程,检测是否存在常见的安全分析工具,包括调试器(如OllyDbg、WinDbg)、监控工具(如Process Monitor、Process Explorer)和虚拟机工具等。一旦检测到这些工具,可能会改变执行流程或终止运行。

2.4.6 浏览器数据清理
脚本会删除主流浏览器的Cookie数据,包括Mozilla Firefox、Google Chrome和Internet Explorer。这一操作可能是为了清除某些会话认证信息,或为后续的浏览器劫持攻击做准备。

2.4.7 动态C&C地址解析机制
Janicab采用了极为独特的C&C基础设施隐藏技术。与传统硬编码域名或IP地址的方式不同,该木马从两个合法的公开链接源中动态获取C&C服务器地址。
YouTube视频页面解析
木马访问指定的YouTube视频播放页面,获取网页HTML源代码,然后使用正则表达式从特定文本中提取数字。具体算法如下:
- 从源码中匹配形如
"we need (.*) views"的字符串 - 提取括号中的数字
- 将该数字除以
1337得到整数 - 通过一系列算术运算将整数转换为点分十进制IP地址
- 拼接成完整的C&C URL:
http://{解析出的IP}/B2mV-VzVc-81Az-135J
解析后,木马向路径Status2.php发送GET请求进行存活性检测。如果服务器返回"OKOK",表明该C&C服务器处于活跃状态。

整数转换为IP地址的算法实现如下:

2.4.8 C&C通信协议
环境检测结果上报
如果检测到恶意软件正在虚拟机或沙箱环境中运行,脚本会通过GET请求将计算机名、用户名和检测到的环境特征上报至rit.php。服务器可以根据返回值控制木马行为:如果返回数据不为"skip"且文件xitx不存在,木马将退出执行。

键盘记录数据上传
当键盘记录功能启用且kl文件存在时,脚本会读取该文件中的键盘记录数据,进行Base64编码后上传至rk.php。

屏幕截图数据上传
如果临时文件~PF214C.tmp存在(该文件存储屏幕截图数据),脚本同样会将其进行Base64编码后上传至rs.php。

远程命令执行
木马定期向c.php发送GET请求,服务器可以在响应中嵌入待执行的CMD命令。脚本解析响应内容后,直接通过cmd.exe执行这些命令,实现远程控制。

键盘记录和截图功能实现
脚本通过执行嵌入的kl DLL文件,并调用其导出函数MyDllEntryPoint来启动键盘记录器和屏幕截图功能。

2.4.9 C&C指令集
下表总结了Janicab木马实现的完整C&C通信接口:
| PHP路径 | 功能描述 |
|---|---|
| Status2.php | C&C服务器存活性检测 |
| a.php | 接收受害者心跳信标数据 |
| gid.php?action=add | 添加新受害者的注册信息 |
| rit.php | 上报受害者机器上安装的安全软件、虚拟化环境检测结果等环境信息 |
| c.php | 接收并执行远程命令 |
| rs.php | 上传屏幕截图数据 |
| rk.php | 上传键盘记录数据 |
| sm.php | 当检测到安全软件时,C&C服务器提供的备用执行方式(如设置RunOnce注册表项) |
| d.php | 下载额外的恶意载荷并执行 |
3. 威胁情报指标(IOCs)
文件哈希值
SHA1: aacd0752289f3b0c6be3fadba368a9a71e46a228
MD5: F1B5675E1A60049C7CD823EBA93FE977
C&C基础设施
hxxps://youtu.be/aZRJQdwN4-g
hxxps://plus.google.com/108098760042015113400/posts?hl=en
4. MITRE ATT&CK技术映射
下表展示了Janicab木马使用的MITRE ATT&CK攻击技术及其对应的战术阶段:
| 战术(Tactic) | 技术ID | 技术名称(Technique) | 具体描述 |
|---|---|---|---|
| Initial Access | T1566 | Phishing | 通过鱼叉式钓鱼邮件投递恶意LNK文件 |
| Execution | T1204 | User Execution | 诱导受害者双击执行恶意快捷方式文件 |
| T1059 | Command and Scripting Interpreter | 执行VBE/VBS脚本、CMD和PowerShell命令 | |
| T1053 | Scheduled Task/Job | 创建计划任务执行恶意载荷 | |
| Persistence | T1037 | Boot or Logon Initialization Scripts | 通过注册表Run键实现开机自启动 |
| Defense Evasion | T1027 | Obfuscated Files or Information | VBS脚本加密为VBE格式,移除标识符 |
| T1036 | Masquerading | 伪装成Notepad快捷方式诱导用户执行 | |
| T1497 | Virtualization/Sandbox Evasion | 多维度检测虚拟机和沙箱环境 | |
| T1070 | Indicator Removal on Host | 删除临时文件和注册表文件清除执行痕迹 | |
| Discovery | T1057 | Process Discovery | 枚举进程检测调试器、监控工具和安全软件 |
| T1082 | System Information Discovery | 查询操作系统版本、主板信息等系统特征 | |
| Collection | T1056 | Input Capture | 通过键盘记录器捕获用户输入 |
| T1113 | Screen Capture | 定期截取屏幕内容 | |
| Command and Control | T1071 | Application Layer Protocol | 使用HTTP/HTTPS协议与C&C服务器通信 |
| T1102 | Web Service | 利用YouTube和Google+动态解析C&C地址 | |
| T1105 | Ingress Tool Transfer | 从C&C服务器下载额外的恶意载荷 |
5. 总结与防护建议
5.1 攻击特点总结
- 高度定制化:DeathStalker针对金融和法律行业精心设计攻击链,显示出专业的情报收集目标
- 多层混淆:采用LNK嵌套VBE脚本的多阶段加载技术,有效规避静态检测
- 反分析能力强:实现了虚拟机检测、沙箱检测、调试器检测等多重反分析机制
- 隐蔽C&C:利用合法公共服务(YouTube、Google+)隐藏C&C地址,增加溯源难度
- 持久化驻留:通过注册表自启动、禁用清理工具等方式确保长期控制
5.2 防护建议
组织层面
- 加强员工安全意识培训,警惕不明来源的邮件附件
- 部署邮件网关过滤含有LNK、VBE等可疑文件类型的附件
- 实施最小权限原则,限制VBScript、PowerShell等脚本解释器的执行权限
技术层面
- 在端点部署EDR(Endpoint Detection and Response)解决方案,监控异常脚本执行行为
- 配置应用程序白名单,限制从临时目录执行程序
- 监控注册表Run键的修改操作
- 部署网络流量分析系统,检测异常的HTTP通信模式
- 定期审计系统中是否存在未授权的计划任务和自启动项
检测规则
- 监控
cscript.exe执行VBE文件的行为 - 检测从LNK文件复制到临时目录的操作
- 监控通过
reg.exe导入注册表文件的操作 - 告警访问YouTube、Google+等公共服务并提取IP地址的异常行为

