标题 简介 类型 公开时间
关联规则 关联知识 关联工具 关联文档 关联抓包
参考1(官网)
参考2
参考3
详情
[SAFE-ID: JIWO-2024-24]   作者: 闲云野鸡 发表于: [2017-07-07]

本文共 [552] 位读者顶过

通过Nero等刻录软件刻录CD/DVD光盘,是当前我国涉密网与非涉密网进行信息交换的常用手段。此次泄密事件披露的“凿岩机” (HammerDrill)即是一款CD/DVD信息收集工具,它能够收集受感染计算机读取的CD和DVD的内容并保存到指定的文件中,还能够记录CD/DVD插入和弹出的历史。HammerDrill 2.0版增加了一些新的功能,一是增加了跨越隔离的能力,即在Nero软件向光盘中刻录32位的可执行程序文件时,向这些文件中注入Shellcode(一种黑客用于攻击的代码片段);二是增加了状态检查、结束木马程序执行和按需收集信息的能力;三是增加了光盘识别能力,即通过对ISO文件头部的两个数据块进行哈希(hash)来采集光盘的指纹特征,即使在多重区段光盘(Multi-sessions Disc)中添加和删除数据,也能唯一标识这张光盘;四是增加了攻击识别能力,即当在光盘中发现被HammerDrill破坏过的可执行程序时,能够记录下这一事件。该款工具属于机密级,禁止外籍人员知悉。  [出自:jiwo.org]

HammerDrill 2.0突破物理隔离详解

HammerDrill 2.0突破物理隔离是以光盘为介质实现的。当用户通过Nero软件向光盘中刻录可执行程序文件时,HammerDrill能够向这些文件中注入一段Shellcode。当光盘插入到其他计算机并运行光盘中的可执行程序时,这段Shellcode就会自动运行。这一过程如下。

1.HammerDrill首先做的就是监视Windows系统中的创建进程事件,每当有新进程创建时,都会执行一段HammerDrill通过回调函数指定的操作。这是HammerDrill通过Windows的WMI机制实现的,使系统一旦发现有创建Win32_Process对象(Windows系统中用于标识进程的数据结构)的操作就会执行HammerDrill指定的回调函数。

2.回调函数的作用是判断新创建的进程是否为Nero刻录软件。如果新进程所对应可执行程序的文件名为NERO.EXE、NEROPROCESS.EXE或NEROSTARTSMART.EXE,即新进程是Nero刻录软件,HammerDrill就会释放出动态链接库MemoryLoadShimDLL,并将其注入到Nero进程中。

3.MemoryLoadShimDLL会构建木马接下来所必需的运行环境,释放并加载动态链接库NeroHookDLL。

4.NeroHookDLL利用微软的Detours库在ReadFile函数上挂了一个钩子(hook)函数,用于对将要刻录的文件进行筛查。每当Nero进程使用ReadFile函数时,都会触发执行该钩子函数。用户使用Nero刻录光盘时需要首先选择准备刻录的文件,Nero会通过ReadFile函数读取这些文件并放置到缓冲区中。NeroHookDLL设置的钩子函数会检查缓冲区中是否存在完整的可执行程序文件(如EXE可执行程序、DLL动态链接库、SYS驱动程序等)。如果发现目标,钩子函数就会调用TrojanBinary函数进行下一步操作。

5.TrojanBinary函数会对发现的目标进行进一步检查,判断该目标是否满足以下特征:存在DOS头部标识、存在程序文件头部签名、是32位的可执行程序、不是动态链接库、不是.NET或VB程序。如果发现的目标满足以上特征,即完整的32位可执行程序文件,TrojanBinary将尝试向该目标中注入Shellcode

6.TrojanBinary完成相关操作后,挂在ReadFile上的钩子函数也将返回,此时缓冲区中目标程序文件已被注入Shellcode,Nero会将被篡改的文件刻录到光盘中。当用户将该光盘插入光驱并运行这一程序时,这段Shellcode就会开始运行。

需要说明的是,Nero软件中的刻录数据校验功能无法检测出光盘中刻录的文件是否被篡改,因为刻录数据校验功能读取原始文件时同样需要使用ReadFile函数,挂载ReadFile函数上的TrojanBinary函数会同样完成上述操作,Nero在比较缓存空间中被篡改的文件和光盘中已被篡改的文件时无法发现异常。

已披露的材料还介绍了上述Shellcode的底层执行逻辑。从这段执行逻辑来看,该Shellcode的主要功能是从指定的URL下载文件,但报告并没有披露该URL的地址。由于这段逻辑过于底层,这里不再展开介绍。

HammerDrill木马危    害

作为此次被曝光的中央情报局网络武器之一,HammerDrill木马具有很大危害。这些危害体现在以下3方面。

第一,HammerDrill木马具有突破物理隔离的能力。此前,木马主要以U盘为介质突破物理隔离。因此,保密规定要求涉密计算机和非涉密计算机间严禁交叉使用U盘等大容量存储介质,进行数据交换时通常采用光盘刻录等手段。然而从此次披露的资料来看,虽然HammerDrill还不能直接将窃取的数据刻录到光盘中,但是已经存在突破物理隔离传播Shellcode的能力,这需要引起我们的重视。

第二,HammerDrill能够记录光盘的内容和光盘插入/弹出事件,并将这些信息保存到计算机中指定的文件里。在互联网环境下,攻击者不仅能够获得计算机当前存储的信息,还能够获得此前操作光盘时涉及的文件信息。因此,必须严禁在互联网计算机中插入刻录有敏感文件的光盘。与此同时,HammerDrill注入的Shellcode还能够通过网络下载指定的文件,如果下载的文件是木马等恶意程序,还将造成更大的危害。虽然攻击者还不能直接从涉密网络中窃取文件信息,但是涉密网一旦发生违规外联,必然会造成极为严重的危害。

第三,HammerDrill所影响的范围难以追踪,注入的Shellcode也难以清除。操作系统能够记录U盘插拔事件,但是通常无法记录光盘插入/弹出事件。当计算机被发现感染木马后,很难确定因光盘刻录而影响的其他计算机的范围。同时,办公环境中使用的刻录光盘通常都是只读的,即使杀毒软件能够检测到光盘中的程序文件存在Shellcode,也无法直接清除这些恶意代码。

HammerDrill木马应对措施

Nero是当前我国涉密网络中常用的刻录软件之一,如果攻击者利用Nero突破物理隔离,造成的泄密后果将不可估量。结合HammerDrill的特征,笔者认为,可以从以下3方面着手进行防护。

一是针对HammerDrill木马本身,可以根据木马的特征对计算机进行检查,判断是否有该木马的存在。根据披露的信息,HammerDrill木马的特征包括存在HammerDrillStatus.dll、HammerDrillKiller.dll和HammerDrillCollector.dll等动态链接库文件,调用UrlDownloadToCacheFileA接口等。

二是针对HammerDrill所具有的通过Nero刻录软件向刻录的程序文件中注入Shellcode的功能,可以采取一些规避手段,例如,使用除Nero外的其他刻录软件进行刻录;也可以对刻录到光盘中的文件进行完整性校验,例如,利用第三方hash工具计算光盘中文件的MD5、SHA1或SHA256值,并与原始文件比对判断是否一致。

三是针对HammerDrill向程序中注入的Shellcode,可以在计算机或交换机中采集网络数据流,检查是否有可疑的URL或IP访问请求,对发现的可疑情况进行分析并采取必要的措施进行处置。

评论

暂无
发表评论
 返回顶部 
热度(552)
 关注微信