朝鲜APT37组织利用Windows快捷方式(LNK)文件发起攻击,并使用了一系列新发现的工具。
这些工具包括 RESTLEAF 、 SNAKEDROPPER 、 THUMBSBD和 VIRUSTASK ,它们会下载一个包含 FOOTWINE和 BLUELIGHT的有效载荷,从而对受害者的系统进行监视。

由于黑鸟仅对其物理隔离网络所使用的技术点比较感兴趣,因此下面主要对涉及该部分进行讲解。
这套针对物理隔离网络的攻击体系,并非直接突破隔离环境,而是先以目标组织的联网边界主机为突破口,搭建完整的攻击桥头堡,为后续的渗透动作筑牢基础。
整个攻击的起点,是攻击者精心构造的恶意 Windows 快捷方式(LNK)文件,受害者一旦点击触发,就会静默执行内嵌的 PowerShell 脚本,释放出初始植入体 RESTLEAF。
这个初始植入体首次滥用了 Zoho WorkDrive 云存储服务搭建 C2 通信通道,完成身份认证后,就会从云端拉取下一阶段的攻击载荷,完成边界主机的初步沦陷。
在边界主机完成初步入侵后,攻击者投放的第二阶段载荷 SNAKEDROPPER 会接管后续的攻击流程,它会在目标系统中释放完整的 Ruby 3.3.0 运行环境,为了规避检测,还会把核心的 Ruby 解释器程序 rubyw.exe 重命名为 usbspeed.exe,伪装成一款和 USB 设备相关的正常系统工具。
同时,它会篡改 RubyGems 组件默认自动加载的 operating_system.rb 文件,把恶意代码注入其中,再创建名为 rubyupdatecheck 的计划任务,设置每 5 分钟执行一次伪装后的 Ruby 解释器,以此实现恶意程序在目标主机上的持久化驻留。
在完成运行环境的搭建后,SNAKEDROPPER 会最终释放出两个针对物理隔离网络攻击的核心组件,分别是伪装成 ascii.rb 文件的 THUMBSBD 后门程序,以及伪装成 bundler_index_client.rb 文件的 VIRUSTASK 传播工具,这两个组件相互配合,构成了完整的物理隔离网络攻击闭环。
THUMBSBD 是整个攻击体系中,实现跨物理隔离网络双向通信的核心载体,它最核心的能力,就是把日常使用的可移动存储介质,转化为物理隔离环境下的隐蔽 C2 中继通道,既能把攻击者的控制指令从联网环境传递到完全断网的物理隔离系统中,也能把隔离系统里窃取到的敏感数据回传到攻击者控制的服务器,彻底打通了网络物理隔离边界的双向数据流转。
THUMBSBD 在目标主机启动后,会先完成自身的运行环境初始化,首先通过读取 HKCU\\SOFTWARE\\Microsoft\\TnGtp 注册表键值,锁定自身的运行状态,避免多实例同时运行导致的系统异常,也能减少攻击行为被安全设备检测到的风险。
随后,它会基于目标主机的磁盘卷序列号和 UUID,生成唯一的 SHA256 受害者标识符,这个标识符会成为后续指令分发的核心校验依据,确保攻击者下发的指令只会在指定的目标主机上执行,最大程度避免攻击痕迹的意外扩散。
同时,它会在 % LOCALAPPDATA%\\TnGtp\\TN.dat 路径下生成加密的配置文件,用异或加密算法存储目标主机的用户名、计算机名、系统版本、工作路径等核心环境信息,为后续的攻击动作提供基础支撑。
为了实现攻击流程的标准化管理,THUMBSBD 还会在目标系统中创建一套专用的工作目录体系,不同的目录分别承担指令暂存、载荷存放、数据回传、临时运算等不同功能,让整个跨隔离网络的指令和数据流转,都能在固定的路径下有序完成。
整个跨物理隔离网络的指令投递,完全依托可移动存储介质的物理插拔完成。
当带有恶意指令的可移动介质插入已经被攻陷的联网边界主机时,THUMBSBD 会立即识别到设备接入,首先在介质的根目录创建一个名为 $RECYCLE.BIN 的隐藏目录,这个目录伪装成 Windows 系统默认的回收站目录,在系统资源管理器的默认设置下完全不可见,能最大程度规避用户的察觉。
随后,THUMBSBD 会把攻击者下发的加密控制指令、后续攻击需要用到的载荷文件,全部复制到这个隐藏目录中,所有写入的文件都会经过 1 字节 0x83 XOR 算法加密,规避常规的静态恶意代码检测。
当用户把这个写入了恶意指令的可移动介质,插入到物理隔离网络内的目标主机时,早已部署在隔离主机上的 THUMBSBD 会实时监测到设备接入,自动枚举介质隐藏目录内的文件,完成解密后,先提取文件固定偏移位置的命令 ID,再校验文件内携带的受害者标识符,只有当标识符和当前主机的唯一标识完全匹配时,才会把对应的指令文件放入专用的有效指令目录,等待后续执行。
完成校验后,THUMBSBD 会根据指令内容,在隔离主机上执行对应的恶意操作,包括系统目录枚举、敏感文件窃取、任意系统命令执行、攻击配置更新、新载荷加载执行等,以此实现攻击者对物理隔离主机的完全控制。
在隔离主机上完成指令执行后,THUMBSBD 会把所有的执行结果、从系统中窃取的敏感数据、前期收集的系统侦查信息,全部汇总到专用的回传数据目录中。
当用户再次把可移动介质插入这台隔离主机时,THUMBSBD 会把汇总好的待回传数据加密后,写入介质的隐藏目录中。
等到用户把这个携带了窃取数据的介质,插回已经联网的边界主机时,THUMBSBD 会自动读取介质隐藏目录内的回传数据,存入本地的回传目录,最终通过攻击者预先搭建的 C2 通信通道,把物理隔离网络内的敏感数据完整回传到攻击者手中,完成一次完整的、跨物理隔离边界的数据窃取闭环。

如果说 THUMBSBD 解决了物理隔离主机被攻陷后的持续控制和数据窃取问题,那么 VIRUSTASK 的核心作用,就是解决物理隔离网络的初始入侵难题。
毕竟 THUMBSBD 的所有功能,都建立在隔离主机已经被攻陷的前提下,而 VIRUSTASK 就是专门针对物理隔离环境设计的初始突破工具,它通过对可移动介质的武器化改造,能在完全没有网络连接的情况下,实现对物理隔离主机的入侵,和 THUMBSBD 形成完整的攻击闭环。
VIRUSTASK 在目标主机启动后,
会通过 HKCU\\Software\\Microsoft\\ActiveUSBPolicies 注册表键跟踪自身的运行状态,把模块路径和进程 ID 分别写入对应的键值中,避免多实例运行带来的风险,同时会持续监听系统的设备接入事件,实时识别新插入的可移动存储介质。
当可移动介质接入已经被攻陷的主机后,VIRUSTASK 会先完成前置的感染条件校验,只有当介质的剩余存储空间大于等于 2GB 时,才会启动后续的感染流程,避免因为存储空间不足导致感染失败,引起用户的察觉。
完成校验后,VIRUSTASK 会先在介质的根目录创建名为 $RECYCLE.BIN.USER 的隐藏文件夹,同样伪装成和 Windows 回收站相关的系统目录,在默认设置下对用户完全不可见,随后会把核心的攻击文件,包括重命名后的 Ruby 解释器程序、更新程序、持久化恶意脚本,全部复制到这个隐藏目录中,完成攻击载荷的隐蔽部署。
完成载荷部署后,VIRUSTASK 会启动核心的文件劫持流程,这也是它能实现物理隔离主机感染的关键。
它会完整扫描可移动介质上的所有用户文件和原有快捷方式,排除系统文件夹和自身的隐藏目录后,先把用户原本的正常文件全部设置为隐藏属性,让这些文件在系统资源管理器的默认设置下完全消失,随后会生成和原文件完全同名的恶意 LNK 快捷方式,这些快捷方式会复刻原文件的图标和名称,在用户眼中和原本的正常文件没有任何区别,具备极强的欺骗性。
当用户把这个被感染的可移动介质,插入到物理隔离网络内的主机时,大概率会因为看到熟悉的文件名,双击试图打开对应的文件,而这个操作并不会启动正常的文件程序,只会静默执行介质隐藏目录内的 Ruby 解释器程序。
Ruby 解释器启动后,会自动加载被篡改的恶意脚本,这个脚本会先检测目标主机的本地路径,判断当前主机是否已经被攻陷,如果检测到对应的程序目录不存在,就说明这是一台全新的、未被感染的物理隔离主机,脚本就会自动加载并执行对应的 shellcode,在这台隔离主机中部署完整的 Ruby 运行环境,以及 THUMBSBD 和 VIRUSTASK 全套攻击组件,完成对物理隔离主机的初始攻陷。
而一旦物理隔离网络内的主机被攻陷,主机上的 VIRUSTASK 就会继续感染后续插入的所有可移动介质,让攻击载荷随着用户日常的文件传输行为,在整个物理隔离网络内部横向扩散,逐步渗透多层隔离的网络环境,不断扩大攻击的覆盖范围。
这套针对物理隔离网络的攻击体系,最突出的特点就是全链路的隐蔽化设计,从攻击组件的命名、目录的伪装,到文件的替换方式,都完全贴合用户的日常使用场景和 Windows 系统的默认特征,普通用户几乎无法察觉异常。
同时,攻击全流程使用的所有 shellcode、可执行程序、配置文件和传输数据,都采用了异或加密,没有明显的恶意代码特征,常规的静态查杀工具很难有效识别,再加上核心的恶意操作大多通过 shellcode 注入的方式在内存中执行,很少有敏感文件落地,进一步降低了被终端防护软件捕获的概率。
原报告:
https://www.zscaler.com/blogs/security-research/apt37-adds-new-capabilities-air-gapped-networks
声明:本文来自黑鸟,版权归作者所有。文章内容仅代表作者独立观点,不代表安全内参立场,转载目的在于传递更多信息。如有侵权,请联系 anquanneican@163.com。