导语:RC2CL模块也是一个功能强大的后门,在DLL启动后,它会与RC2FM模块同时启动。不过相比RC2FM模块,它的功能更复杂,这从它可以收集更多的有关受感染计算机数据的功能就可以看出。
上一篇文章,我们介绍了RC2FM模块,今天我们来介绍一下RC2CL模块。
对RC2CL模块的分析
RC2CL模块也是一个功能强大的后门,在DLL启动后,它会与RC2FM模块同时启动。不过相比RC2FM模块,它的功能更复杂,这从它可以收集更多的有关受感染计算机数据的功能就可以看出,不过,他不能用于篡改系统。
有趣的是,RC2CL模块中的一个选项,攻击者可以用它关闭后门功能并充当代理。如果后门功能被关闭,RC2CL模块则会关闭Windows防火墙,并成为一个服务器,在客户端与C&C服务器之间或两个客户端之间进行通信。
对网络通信的功能分析
RC2CL模块通过TCP套接字与C&C服务器进行通信,这是为了将通信内容伪装成HTTP协议,但请注意下图示例中的无效“HIDE”HTTP动词。
这些通信请求包括是否要盗取受害者的PC标识符、请求类型以及加密数据,以便进行后期的攻击。
发送到C&C服务器的RC2CL模块请求
其他攻击功能
RC2CL模块根据收到的命令,可以在受感染计算机上执行各种操作。常见的后门程序通常支持诸如文件系统操作、文件执行、注册表键操作或远程shell激活之类的命令。不过,除了支持这些常规的命令外,RC2CL模块还包含了84条其他的命令,这些命令足以攻击者监控并发动一切攻击。
另外,RC2CL模块还可以检查被感染的计算机并收集各种数据,比如活动进程信息、运行服务信息、加载驱动程序信息或可用驱动器的信息,包括IP转发表和上网速度的网络基本信息。
有了这些信息,RC2CL模块可以让InvisiMole在受感染的设备中,自动启用受害者的无线网络,并记录无线网络的信息,例如Wi-Fi接入点的SSID和MAC地址等。攻击者通过将这些数据进行定位分析,就可以得出受害者的具体位置。
还有一些其他命令可以提供用户登录的各种帐户和以前的会话信息。如果攻击者对这些感兴趣,他们只需要发送其中一条命令,即可了解受害者系统上的安装应用程序列表;哪些应用程序是在系统启动或用户登录时自动执行的;哪些程序被特定用户使用等。更厉害的是攻击者可以命令RC2CL模块搜索受害者最近使用的文档或其他感兴趣的文档。同时,RC2CL模块也可以被用来监控特定目录和可移动设备,报告任何更改的设置或者窃取攻击者感兴趣的文件。
另外,RC2CL模块还可以启用或禁用用户帐户控制(User Account Control,UAC)),甚至是绕过UAC,这样做,是为了在没有管理员权限的情况下,在安全位置对盗取的文件进行处理。如果RC2CL模块在自动升级的explorer.exe进程下运行,它可以创建一个提升的COM对象,并使用它来删除或移动一些文件,而这些文件正常情况下是需要管理员权限的。
除此之外,它也有着间谍功能,可以远程激活摄像头和麦克风,通过拍摄视频和录制声音来监控受害者,另外,它还可以通过屏幕截图来实施监控。InvisiMole的特别之处在于,不仅可以进行通常的“全屏显示”屏幕截图,而且将监控画面分为许多侦,对每一帧进行截图,这有助于攻击者获得更多受害者的信息。
此外,具有以下名称的驱动程序会被其中一个后门命令使用:
· blbdrive.sys
· compbatt.sys
· secdrv.sys
不过截止目前,ESET的研究人员还没有观察到攻击者实际使用过这个命令,但可以推测这样做是为了在32位系统上实现额外的持久攻击效果。
虽然RC2CL模块可以对正常的系统操作进行篡改,比如注销用户、终止进程或关闭系统,但显然这些会让受害者起疑,所以一般情况下,它都会将这些功能尽可能隐藏,不露出马脚。
除了不随便干扰系统的进程外,该模块还不会随便修改文件,比如RC2CL模块会随时监控到新出现的文件,如果愿意,它可以进行移动,复制都能操作,但很明显,出于隐藏的目的,它不会这样做,以免引起受害者的怀疑,因为这些活动都会留下访问时间的痕迹。就算对文件做过手脚,RC2CL模块总是会将文件访问或修改最初的时间,以便受害者起疑。
除此之外,RC2CL模块会收集大量的敏感数据,这些数据被暂时存储在文件中,最后在成功上传至C&C服务器,不过这个过程也会被InvisiMole的攻击者删除,只要把留在磁盘上的痕迹擦除即可。最厉害的是,攻击者还会恢复那些被用户删除的文件,因为即使删除了文件,一些数据仍然存在于磁盘上。为了防止用户删除文件的情况发生,InvisiMole会用0或随机字节覆盖文件中的数据,让用户以为文件真的删除了。
内部存储功能的分析
攻击者通常会将后门命令和收集的数据存储在工作目录和工作注册表项,具体存储在哪一个?则由其中一部分后门命令决定,它们被专门用于决定存储位置及其存放的内容。
工作目录用于临时存储文件,其中就包含有关受感染设备的数据,这些临时文件的命名规则是统一的、加密算法和结构也还是一样的。InvisiMole模块中使用的是简单异或加密的变种加密方式,存储的文件类型可以从位于文件开头的4字节控制序列中派生出来。
除了临时存储文件外,工作目录还可以存储合法的WinRAR.exe应用程序副本,它被用来压缩收集的数据。
工作注册表项用于存储配置数据,以及工作目录中的文件列表。存储在其中的数据会使用在InvisiMole二进制文件中实现的Zlib例程进行压缩,并使用与内部文件相同的密码进行加密。
后门命令
RC2CL模块提供了80多条命令,这些命令是用来专门指示工作目录和注册表项工作的。
大约三分之一的命令专门用于读取和更新存储在注册表项中的配置数据,下表是其余的命令。
命令ID及相关命令说明
4:列出有关目录中文件的信息
6:上传文件
20:列出有关活动进程的信息
22:通过ID终止进程
24:执行一个文件
26:删除文件
28:获取IP转发表
30:将数据写入文件
31:睡眠
38:列出帐户信息
40:列出有关系统服务的信息
42:列出关于加载的驱动程序
43:收集基本系统信息(计算机名称、操作系统版本、内存状态、本地时间、驱动器信息、配置的代理信息、系统和进程DEP策略……)
44:列出安装的软件
46:列出本地用户和会话信息
48:列出用户访问的应用程序
52:创建一个目录结构
78:创建一个远程shell
81:通过远程shell执行命令
91:启用/禁用UAC
93:注销用户/关机/重新启动系统
101:监视并记录指定目录中的更改
103:删除目录
109:打开/关闭显示器到待机状态
120:捕获显示/活动窗口的屏幕截图
126:捕获显示/活动窗口的屏幕截图并更新配置数据
130:列出有关未映射驱动器上资源的信息
132:重命名/移动文件,将文件的创建/访问/写入次数修改为给定值
134:列出有关最近打开的文件的信息
152:断开(以前连接的)远程驱动器
155:创建/删除注册表项,设置/删除注册表项值或枚举注册表值/键/数据
159:161禁用路由/防火墙,在指定的端口上创建代理服务器
172:重复显示一个对话框,要求用户重新启动计算机
175:绕过UAC来操作文件
177:创建并写入文件,设置创建/访问/修改时间
181:删除所有系统还原点
183:放弃(合法)WinRAR组件
185:将文件添加到受密码保护的存档(密码为“12KsNh92Dwd”)
187:解密,解压缩和加载DLL,从其资源RC2CL,RC2FM加载可执行文件
189:创建系统还原点
191:提取受密码保护的存档(12KsNh92Dwd)
193:修改加密文件
195:主进程完成后重新启动
197:在样本中发送198个字节的硬编码数据
199:重命名/移动文件
206:解密,解压缩并加载DLL,从其资源RC2CL,RC2FM加载可执行文件
211:上传收集到的信息(截取屏幕截图、录音等)
213:列出有关活动窗口的信息
218:API用于录制输入音频设备
220:API捕捉摄像头照片
224:每个系统启动时执行的列表文件
226:列出有关启用的无线网络的信息(MAC地址,SSID,信标间隔)
228:删除Zlib压缩包
总结
InvisiMole是我见过的最强大,最隐蔽的间谍软件,它的功能详细到了令人瞠目结舌的地步。就凭以上的分析,InvisiMole也不是一个普通的黑客组织研发出来的,其真正的使用者也肯定有雄厚的财力。
不过目前,ESET还不清楚InvisiMole的两个功能模块是同时使用还是一前一后配合使用?比如,先用较小的RC2FM模块进行侦察,再用较大的RC2CL模块攻击者感兴趣的目标。不过,两个模块也可以同时使用。不过还有另外一种可能,就是这些模块可能是由不同的开发者开发的,然后被攻击者放在了同一个恶意软件中。
虽然InvisiMole只使用了少数几种技术来逃避检测和分析,然而由于它的精细化处理却非常高,只针对了极少数目标进行攻击。
IoCs
你在GitHub上可以找到完整和全面的IoC,C&C服务器列表以及注册表项和值。