ESET自2013年以来一直在准备InvisiMole间谍软件

躲在树荫下,跟踪高级受害者。 这是InvisiMole的两个恶意组件的操作原理。 他们将受感染的计算机变成攻击者的摄像机,使您可以查看和听到办公室或设备所在的任何其他地方发生的一切。 InvisiMole操作员可以轻松连接到系统,监视受害者的行为并窃取她的秘密。


根据ESET遥测,此间谍软件背后的攻击者至少从2013年开始就处于活动状态。 但是,不仅没有研究过这种网络间谍工具,而且直到ESET产品在俄罗斯和乌克兰的受感染计算机上检测到该工具后,才对其进行检测。

该活动具有很高的针对性,这说明感染水平很低-只有几十台计算机。

InvisiMole具有模块化体系结构,从包装DLL(包装DLL)开始其旅程,然后在其资源中内置了两个模块。 这两个模块都是多功能后门,允许Malvari收集有关目标的最大信息。

为了将用户的注意力从受感染的计算机转移出去,可以采取其他措施。 这使恶意程序可以在系统上保留很长时间。 我们尚未建立感染的媒介-目前,所有选项都是可行的,包括通过物理方式访问计算机的手动安装。

安装和持久性


研究中的恶意软件的第一部分是使用Free Pascal编译器编译的DLL包装器。 根据我们的遥测数据,该DLL放置在Windows文件夹中,并伪装成带有伪造版本信息的合法mpr.dllmpr.dll


图1. DLL包装器伪装成合法的mpr.dll库文件,复制了名称和版本信息

尽管在DLL代码中有迹象表明该文件也可能称为fxsst.dllwinmm.dll ,但我们没有看到带有其他包装器名称的winmm.dll

启动malvari的第一种方法是替换DLL(DLL劫持)的技术。 DLL包装器与explorer.exe放在同一文件夹中,并在Windows启动时随Windows资源管理器进程一起加载,而不是位于%windir%\system32中的合法库。

我们发现了Malvari的32位和64位版本,它们在两种体系结构中都具有持久性。

作为欺骗DLL的替代方法,其他加载和持久性方法也是可能的。 包装DLL导出GetDataLength函数。 调用此函数时,DLL会检查它是否由rundll32.exe进程使用explorer.exesvchost.exe作为父进程加载,然后才启动有效负载。 这建议了确保持久性的其他可能方法-将任务添加到调度程序(父进程为svchost.exe )或写入注册表中的自动运行键(父进程为explorer.exe )。

无论如何保持持久性,恶意软​​件的行为和有效负载本身在所有情况下都是相同的。 DLL包装器将存储在资源中的模块RC2FMRC2CL ,并且将合法库(如果使用DLL替代)加载到explorer.exe进程中,以免打扰应用程序的正常运行而不会引起注意。


图2.导出的包装器功能

技术分析


恶意软件编译的确切日期是未知的-作者更改了最新的DLL包装示例,将PE时间戳手动重置为零。 但是,在研究过程中,我们发现了日期为2013年10月13日的早期版本,因此新版本将在以后清晰地进行编译。


图3.在所有以后的示例中,时间戳都设置为零

加密与解密


为了掩盖病毒分析人员和系统管理员的身份,恶意程序的作者使用字符串,内部文件,配置数据和网络通信的加密。 尽管RC2FM模块使用自定义密码,但DLL包装器和RC2CL模块出于所有目的使用一种特定的过程,包括解密DLL包装器中内置的其他恶意模块。

可以从DLL包装器中提取内置RC2FMRC2CL的脚本在GitHub上的ESET存储库中提供


图4.各种示例中的解密过程(反编译和反汇编)

RC2FM模块


第一个较小的RC2FM模块包含支持15个命令的后门。 它们按照攻击者的指示在受感染的计算机上执行。 该模块可以对系统进行各种更改,还包括用于网络间谍的工具。

这些文件可以选择记录日志,但是样本中未指定系统日志的名称。 这表明该功能仅在开发阶段使用。

网络通讯


此模块与C&C服务器通信,这些服务器在示例中进行了硬编码,或者随后被攻击者添加。

此外,即使在受感染机器上配置了代理,该模块也能够访问C&C服务器。 如果无法建立直接连接,该模块将尝试使用本地配置的代理或为不同浏览器(Firefox,Pale Moon和Opera)配置的代理连接到其任何C&C服务器。
RC2FM甚至可以检查最近使用的应用程序列表,并尝试查找可移植的浏览器可执行文件:

FirefoxPortable.exe
OperaPortable.exe
运行waterfox.exe
OperaAC.exe
Palemoon-Portable.exe

如果受害者使用配置了代理服务器的便携式浏览器之一,则恶意软件可以在用户设置中检测到该恶意软件,并使用其与C&C服务器通信。

与C&C服务器的通信是一系列HTTP GET和POST请求,如图5所示。加密的请求包含PC ID和时间戳以及一些其他信息(可选)。 需要特别注意的是,与其他InvisiMole组件不同, RC2FM模块使用多种加密方法(简单XOR加密的变体)。


图5. RC2FM模块发送到C&C服务器的请求的示例

在C&C服务器上成功注册受害者之后,其他信息将加载到系统中,这将由后门命令解释。

功能性


RC2FM支持列出基本系统信息和对系统进行简单更改的命令,以及一些间谍软件功能。 应攻击者的要求,该模块可以远程打开受感染计算机上的麦克风并记录音频。 该记录使用合法的库lame.dll以MP3格式编码,该库lame.dll恶意软件下载和使用。

窃取数据的另一个工具是屏幕截图。 后门命令之一旨在获取屏幕截图。

恶意程序监视本地系统上显示的所有内部和外部磁盘。 连接新驱动器后,它将创建一个包含所有文件的列表,并将其以加密形式存储。

发送适当的命令后,收集到的信息将被传输给攻击者。

后门团队


以下是支持的命令的ID和说明。 解释器中后门功能的可视化如图6所示。

0-列出显示的磁盘,文件夹中的文件,网络共享的列表
2-创建,移动,重命名,执行或删除文件,使用指定路径删除目录
4-打开文件,将指针设置为文件的开头
5-关闭先前打开的文件
6-将数据写入先前打开的文件
7-更改时间的文件属性/删除文件
8-打开文件,将指针设置到文件末尾
10-更改时间的文件属性/删除文件
12-通过指定目录中的指定文件掩码查找文件
13-截图
14-使用内部数据上传或修改文件
15-使用连接的音频设备录制声音,列出可用设备,发送录音,更改配置
16-检查模块中的打开文件
17-刷新C&C服务器列表
19-创建,安装,复制,列出或删除指定的注册表项或值


图6.解释器中的后门功能(原始分析后,使用IDA Pro中的“组节点”功能进行修改以提高可读性)

RC2CL模块


RC2CL模块也是带有大量间谍工具的后门。 它由DLL包装器与RC2FM模块同时启动。 这是一个更复杂的模块,其功能更有可能针对最大程度的信息收集,而不是针对系统进行更改。

有趣的是, RC2CL模块可以选择关闭后门功能并充当代理。 在这种情况下,恶意软件会关闭Windows防火墙并创建一个服务器,该服务器支持客户端与C&C服务器或两个客户端之间的通信。

网络通讯


恶意软件通过TCP套接字与C&C服务器通信。 客户端发送的消息在HTTP协议下被屏蔽,但是在图7的示例中,您应该注意无效的HTTP方法“ HIDE”。

这些请求包含受感染软件的标识符,请求的类型以及攻击者必须发送的加密信息,即执行后门命令或请求新指令的结果。


图7. RC2CL模块发送到命令服务器的请求示例

功能性


根据收到的命令,后门可以在受感染的系统上执行各种操作。 常规后门使用文件系统和注册表项执行操作,支持文件执行和远程外壳程序激活。 这个spivar支持所有这些团队,甚至更多-84个团队允许攻击者收集有关受害者的全面信息。

恶意程序扫描受感染的计算机,并将各种数据传输给攻击者:系统信息(活动进程,运行中的服务,已加载的驱动程序或可用磁盘的列表),网络信息(IP地址表,Internet连接速度)。

InvisiMole可以扫描受感染系统上的可用无线网络。 Spivar记录诸如检测到的Wi-Fi接入点的SSID和MAC地址之类的信息。 然后可以使用公共数据库验证此数据,攻击者可以利用该数据库跟踪受害者的地理位置。

其他命令提供有关受感染计算机的用户,其帐户和以前的会话的信息。

特别令人感兴趣的是安装在受感染计算机上的软件。 系统中安装了什么程序? 其中哪个自动在系统启动或用户登录时启动? 特定用户使用什么程序? 如果攻击者对某些东西感兴趣,只需输入一个命令即可获取必要的数据。

恶意软件可以获取命令来搜索最近打开的文档和其他有趣的文件。 它可以查看特定的目录和外部设备,报告更改并提取攻击者选择的文件。

恶意软件可以打开或关闭帐户管理系统(UAC),也可以绕过该恶意软件,并在没有管理员权限的情况下使用受保护目录中的文件(更多信息,请参见链接 )。 如果恶意软件在自动获取提升权限的进程explorer.exe下运行,则它可以创建一个COM对象,并使用它来删除和移动需要管理员权限的区域中的文件。

此外,InvisiMole可以通过拍照或录制声音来远程打开受害者的网络摄像头和麦克风,进行监视。 攻击者可以通过截屏来监视设备上的活动。 尤其有趣的是,InvisiMole允许您不仅截取整个屏幕的截图,而且还截取每个打开的窗口的截图。 即使窗口彼此关闭,这也使攻击者可以收集信息。

后门命令之一允许您使用以下名称替换驱动程序的内容:

blbdrive.sys
compbatt.sys
secdrv.sys


我们没有观察到攻击者对该命令的使用,但是我们可以假定它用于在32位系统上提供额外的持久性。

后门能够干扰系统(例如,以用户身份登录,完成过程或关闭系统),但是主要提供被动操作。 该程序将尽可能隐藏其活动。

因此,spivar会探索系统中有趣的地方,研究最近打开的文档或更改某些文件。 这些操作会留下痕迹,并可能引起受害者的怀疑,因为在每次这样的操作之后,文件的最后修改和/或访问的时间都会改变。 为了防止检测,该恶意软件会恢复上一次更改或打开文件的日期,以向用户隐藏其操作。

spayvari作者试图避免检测的另一个示例是处理磁盘上留下的跟踪。 恶意程序会收集大量存储在文件中一段时间​​的机密数据,并在成功上传到C&C服务器后将其删除。 问题在于,经验丰富的系统管理员可以恢复已删除的文件,这将在受害者找到危害后帮助调查攻击。 这是可能的,因为即使删除文件后某些信息仍保留在磁盘上。 为防止这种情况,InvisiMole可以选择安全删除所有文件。 这意味着首先用零或随机字节覆盖数据,然后才删除文件。

内建记忆体


后门配置和收集的数据存储在两个地址-这是工作目录和注册表项。 后门命令的重要部分旨在处理这些数据存储位置及其内容。

使用来自远程服务器的命令确定工作目录的位置。 该目录用作文件的临时存储,其中包含从受感染计算机收集的信息。 这些文件具有通用的命名方法,加密算法和结构。 它们使用XOR密码的简单版本进行加密,该版本在malvari的组件中使用。 可以从文件开头的4字节控制序列中获取文件类型。

除了存储收集的数据外,该目录还用作合法WinRAR.exe应用程序副本的主目录。 Malvar复制它并将其用于存档被盗数据。

注册表存储配置数据以及工作目录中的文件列表。 数据使用二进制文件malvari中实现的Zlib过程打包,并使用与内部文件相同的密码进行加密。



后门团队


超过80个后门命令使用工作目录和注册表项来存储中间结果和配置数据。 解释器中带有后门的图形如图8所示。

所有命令中的大约三分之一与读取和更新存储在注册表中的配置数据有关。 下面列出了其余命令的ID和说明。

4-在目录中列出文件信息
6-下载文件
20-列出活动进程
22-通过ID结束流程
24-执行文件
26-删除文件
28-获取IP转发表
30-将数据写入文件
31-无所作为
38-制作帐户清单
40-列出系统中的服务
42-列出已加载的驱动程序
43-收集基本系统信息(计算机名称,操作系统版本,内存状态,本地时间,磁盘信息,有关已配置代理的信息,系统和进程的当前数据执行保护策略等)
44-列出已安装的软件
46-列出本地用户和会话信息
48-列出用户使用的应用程序
52-创建目录结构
78-创建远程外壳
81-通过远程外壳运行命令
91-启用/禁用用户帐户控制
93-最终用户会话/关闭/重新启动系统
101-跟踪并记录对指定目录的更改
103-删除目录
109-打开/关闭显示器/启用待机
120-拍摄显示屏幕/活动窗口的屏幕截图
126-拍摄显示/活动窗口的屏幕快照并更新配置数据
130-未分配磁盘上的资源信息列表
132-重命名/移动文件,将文件的创建/打开/写入时间更改为指定的时间
134-列出最近打开的文件
152-断开(先前连接的)可移动驱动器
155-创建/删除注册表项,设置/删除注册表项值或列出注册表值/项/数据
159、161-关闭路由/防火墙,在特定端口上创建代理服务器
172-重复对话框要求重启计算机
175-绕过用于文件操作的用户帐户控制
177-创建和写入文件,在创建/打开/更改时设置数据
181-删除所有系统还原点
183-WinRAR应用程序的重置(合法)组件
185-将文件添加到受密码保护的存档中(密码=“ 12KsNh92Dwd”)
187-解密,解压缩并加载DLL,从RC2CL,RC2FM资源加载exe文件
189-建立系统还原点
191-提取受密码保护的归档文件(12KsNh92Dwd)
193-更改加密的文件
195-完成主要过程后重新启动
197-以某种模式发送198字节的硬编码数据
199-重命名/移动文件
206-解密,解压缩并下载DLL,从RC2CL,RC2FM资源加载exe文件
211-下载收集的信息(屏幕截图,录音等)
213-列出活动窗口
218-用于记录来自输入设备的音频的API
220-用于从网络摄像头拍照的API
224-列出每次系统启动时执行的文件
226-列出启用的无线网络(MAC地址,SSID,信令间隔)
228-重置压缩的Zlib数据包


图8.解释器中的后门功能(原始和使用IDA Pro中的“组节点”功能进行修改以提高可读性)

结论


InvisiMole是功能齐全的间谍软件,具有广泛的功能,可以与其他知名的网络间谍工具竞争。

只能猜测为什么作者使用两个具有重复功能的模块。可以假定较小的模块RC2FM用于侦察的第一阶段,而较大的模块RC2CL仅在操作员感兴趣的机器上运行。但这不是-两个模块同时启动。第二种可能的解释是:模块由不同的作者组装,然后组合起来为操作员提供最多的工具。

InvisiMole仅使用一些技术来避免检测和分析。但是,由于间谍软件被用于对少量高级目标的攻击,因此她设法避免至少五年被发现。

危害指标(IoC)


ESET检测


Win32/InvisiMole.A trojan
Win32/InvisiMole.B trojan
Win32/InvisiMole.C trojan
Win32/InvisiMole.D trojan
Win64/InvisiMole.B trojan
Win64/InvisiMole.C trojan
Win64/InvisiMole.D trojan


SHA-1哈希


5EE6E0410052029EAFA10D1669AE3AA04B508BF9
2FCC87AB226F4A1CC713B13A12421468C82CD586
B6BA65A48FFEB800C29822265190B8EAEA3935B1
C8C4B6BCB4B583BA69663EC3AED8E1E01F310F9F
A5A20BC333F22FD89C34A532680173CBCD287FF8


C&C服务器域名


activationstate.sytes[.]net
advstatecheck.sytes[.]net
akamai.sytes[.]net
statbfnl.sytes[.]net
updchecking.sytes[.]net


C&C服务器的IP地址和活动时间


2013-2014 - 46.165.231.85
2013-2014 - 213.239.220.41
2014-2017 - 46.165.241.129
2014-2016 - 46.165.241.153
2014-2018 - 78.46.35.74
2016-2016 - 95.215.111.109
2016-2018 - 185.118.66.163
2017-2017 - 185.118.67.233
2017-2018 - 185.156.173.92
2018-2018 - 46.165.230.241
2018-2018 - 194.187.249.157


注册表项和值


RC2FM


[HKEY_CURRENT_USER\Software\Microsoft\IE\Cache]
"Index"


RC2CL


[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Console]
or [HKEY_CURRENT_USER\Software\Microsoft\Direct3D]
"Settings"
"Type"
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\OLE]
or [HKEY_CURRENT_USER\Software\Microsoft\Direct3D]
"Common"
"Current"
"ENC"
"FFLT"
"Flag1"
"FlagLF"
"FlagLF2"
"IfData"
"INFO"
"InstallA"
"InstallB"
"LegacyImpersonationNumber"
"LM"
"MachineAccessStateData"
"MachineState 0"
"RPT"
"SP2"
"SP3"
"SettingsMC"
"SettingsSR1"
"SettingsSR2"


文件和文件夹


RC2FM


%APPDATA%\Microsoft\Internet Explorer\Cache\AMB6HER8\
%volumeSerialNumber%.dat
content.dat
cache.dat
index.dat
%APPDATA%\Microsoft\Internet Explorer\Cache\MX0ROSB1\
content.dat
index.dat
%random%.%ext%
%APPDATA%\Microsoft\Internet Explorer\Cache\index0.dat


RC2CL


Winrar\
comment.txt
descript.ion
Default.SFX
WinRAR.exe
main.ico
fl_%timestamp%\strcn%num%\
fdata.dat
index.dat
~mrc_%random%.tmp
~src_%random%.tmp
~wbc_%random%.tmp
sc\~sc%random%.tmp
~zlp\zdf_%random%.data
~lcf\tfl_%random%

Source: https://habr.com/ru/post/zh-CN414419/


All Articles