操作TA505,第二部分:使用NetSupport RAT学习ServHelper后门



在2019年7月底,我们发现了一个有趣的TA505恶意软件样本。 在2019年7月22日,它被上传到ANY.RUN进行动态分析。 我们注意到以下事实:除了TA505 Servhelper常用的标签外,在暴露的标签中还出现了netsupport标签,并且在网络签名触发中,还标识了相同的名称NetSupport RAT。



1. ANY.RUN在线分析仪中设置的恶意软件和标签的下载日期



2. ANY.RUN沙箱中的NetSupport RAT上的网络签名触发

乍一看,这似乎很奇怪:毕竟,ServHelper组的后门本身具有令人印象深刻的功能,可以控制受害人的PC。 现在是时候详细考虑恶意软件的工作了。

NSIS和PowerShell滴管


我们的分析从其开始的可执行PE文件是基于Nullsoft可脚本安装系统(NSIS)平台的安装程序。 执行安装过程的NSIS脚本提取并运行嵌入式PowerShell脚本:



3. NSIS脚本说明

启动的PowerShell脚本包含一个Base64编码的缓冲区(为清楚起见,在下图中将其截断),在解码之后,该缓冲区由CDES模式下的Triple DES(3DES)解密:



4.在PowerShell脚本中解密数据

该脚本的第一部分是一个具有语音名称heller的函数,负责增加系统中的特权并绕过UAC保护。 为此使用了两种技术:

方法1:在任务计划程序中使用SilentCleanup任务:

  • 该任务可以由用户启动,但可以使用更高的特权。 任务属性使用%windir%环境变量包含可执行文件的路径。 您可以更改环境变量的值(例如,指定启动PowerShell脚本),然后启动任务将导致以管理员权限执行PowerShell脚本,而不会警告UAC。
  • 攻击者在Windows 8和Windows 10系统上使用此技术。
  • 执行此技术的代码与Metasploit框架模块实现相同。



5.部分脚本具有绕过SilentCleanup任务的技术

方法2:使用sysprep.exe系统实用程序和侧面加载DLL技术

  • 首先,创建一个帮助程序脚本以重新启动C:\ Windows \ Temp目录中的PowerShell脚本。 然后形成一个CAB归档文件 ,其中包含辅助DLL库CRYPTBASE.dll(PowerShell脚本同时包含该库的x86版本和x64版本)。 使用wusa.exe系统实用程序,将此存档解压缩到C:\ Windows \ System32 \ Sysprep目录中。 然后,启动系统实用程序sysprep.exe,它将加载先前解压缩的DLL库,然后依次执行辅助脚本。 因此,PowerShell脚本将以管理员权限重新启动,而不会警告UAC。
  • 攻击者在Windows 7系统上使用此技术。
  • 可以在本文中找到详细说明,并在例如Github上的项目中找到实现示例。



6.部分脚本具有绕过sysprep.exe实用程序的技术

脚本中有很多注释,未使用的Test-Administrator函数,一些变量未经初始化就使用:所有这些都是借入代码的标志,而没有仔细检查其简洁性。

使用必需的特权运行脚本后,将执行脚本的第二部分。 在这一阶段,目标有效载荷被解码:

  • 该字符串由Base64解码,
  • 使用Deflate扩展缓冲区
  • 该字符串由Base64重新解码。



7.有效载荷解码算法

  • 结果,将在系统中创建以下文件:
  • %systemroot%\ help \ hlp11.dat- RDP包装程序库的 x86 / x64版本。 它用于扩展RDP服务的功能,包括几个同时连接的可能性。 重要的是要注意,库已被修改:在执行开始时,行c:\ windows \ help \ hlp12.dat被线性XOR解码,然后将DLL库加载到接收的路径上:



8.解密DLL库的路径及其加载

  • %systemroot%\ help \ hlp12.dat是ServHelper后门的x86 / x64版本,将在下一节中讨论;
  • %systemroot%\ help \ hlp13.dat-RDP包装器库的配置文件,
  • %systemroot%\ system32 \ rdpclip.exe-RDP服务的组件,用于交换剪贴板数据;
  • %systemroot%\ system32 \ rfxvmt.dll是用于使用RemoteFX技术传输数据的RDP服务组件。

在提取并记录了有效负载之后,脚本将设置其组件的正确操作:

  • 将rfxvmt.dll组件的所有者更改为NT SERVICE \ TrustedInstaller并授予必要的权限;
  • 将RDP连接的端口值从标准3389更改为7201。
  • 将网络服务帐户添加到本地管理员组
  • 将hlp11.dat注册为RDP服务并重新启动该服务;
  • 删除创建的临时文件。

ServHelper RAT→滴管


删除程序的结果之一是hlp12.dat DLL,它是ServHelper恶意软件。 可以根据操作系统的位大小来创建库的x86版本和x64版本(它们之间没有根本区别)。 这两个版本都是用Delphi编写的,与UPX 3.95 (x64)和PeCompact 2.20 (x86)打包在一起。 Proofpoint趋势科技的同事之前曾对这个后门的分布和操作进行了分析。 我们的示例的功能库在许多方面都与已知的方法趋同:特别是,用于解密使用的字符串的算法( Vigenere cipher )没有改变:



9.使用Vigenere密码解密字符串的伪代码

有趣的是,并未对所有字符串实施加密:例如,控制域的地址和带有其他组件的Web链接保持打开状态:



10.未加密的域和Web链接

访问这些链接之一(hxxp://letitbe.icu/2.txt)时,将下载一个加密文件(MD5:0528104f496dd13438dd764e747d0778)。 在十六进制编辑器中分析文件末尾时,您会注意到字节0x09的值经常重复:



11.在下载的文件中重复字节0x09

字节值重复是使用单字节XOR进行加密的常见标志。 在这种情况下,该理论可以通过以下代码得到证实:



12.单字节异或加密功能



13.将单字节值作为参数传递给XOR函数

解密的结果是,我们将收到包含以下内容的ZIP归档文件:



14.解密的ZIP存档的内容

所有文件都是用于NetSupport Manager PC远程控制的合法软件,各个组的攻击者都反复使用过这些文件。



15. NetSupport Manager软件说明

其中一个文件(client32.ini)是配置文件,其中包含受害人的PC通过其连接到攻击者的中间网关的地址:



16.攻击者充当NetSupport Manager网关

如果受害者位于防火墙后面,并且Internet访问受端口限制,则此选项才有意义。 要在Internet上正常工作,必须打开对至少两个端口的访问权限:80(HTTP)和443(HTTPS),以便增加成功连接的可能性。

在2019年9月,我们发现了几个类似的ServHelper示例,但选项范围非常有限。 以其中之一为例(MD5:5b79a0c06aec6126364ce1d5cbfedf66):在可执行PE文件的资源中,具有重复字节形式的具有相似特征的加密数据:



17. ServHelper资源中的加密数据
这是一个用一个字节再次“阻塞”的ZIP归档文件,其中包含NetSupport Manager的相同组件,尽管这次具有不同的中间网关:179 [。] 43.146.90:443。

结论


在本文中,我们研究了TA505后门的交付和使用选项之一-ServHelper。 除了主要组件操作之前的奇怪功能(例如,绕过UAC和提升权限)之外,我们还注意到了主要后门的有趣变形:基本功能(数据盗窃,间谍和命令执行)通过嵌入另一种PC远程控制工具NetSupport RAT进行了补充。 此外,新版本的ServHelper不再具有使其成为完整后门的关键功能:现在,它仅用作安装NetSupport RAT的中间工具。 攻击者可能发现此方法在开发和检测能力方面均更为有效。 但是,我们感兴趣的分组工具列表并不止于此。

正向技术公司的Alexey Vishnyakov 发表
国际奥委会
hxxp://185.225.17.175/wrkn157.exe-从中加载NSIS滴管的Web链接
d2a062ca772fa3ace7c7edadbd95eaf7-原始的NSIS滴管
0cacea3329f35e88a4f9619190e3746f-PowerShell删除程序shipkat.ps1
fb609b00e29689db74c853ca7d69f440-CRYPTBASE.dll(x86)
843288a35906aa90b2d1cc6179588a26-CRYPTBASE.dll(x64)
445cd6df302610bb640baf2d06438704-hlp11.dat(x86)
083f66cc0e0f626bbcc36c7f143561bd-hlp11.dat(x64)
40bae264ea08b0fa115829c5d74bf3c1-hlp12.dat(x86)
ac72ab230608f2dca1da1140e70c92ad-hlp12.dat(x64)
07f1dc2a9af208e88cb8d5140b54e35e-hlp13.dat
1690e3004f712c75a2c9ff6bcde49461-rdpclip.exe
dc39d23e4c0e681fad7a3e1342a2843c-rfxvmt.dll
ServHelper C2:
179 [。] 43.156.32
185 [。] 163.45.124
185 [。] 163.45.175
185 [。] 225.17.150
185 [。] 225.17.169
185 [。] 225.17.175
185 [。] 225.17.98
195 [。] 123.221.66
195 [。] 123.246.192
37 [。] 252.8.63
94 [。] 158.245.123
94 [。] 158.245.154
94 [。] 158.245.232
fdguyt5ggs [。] pw
foxlnklnk [。] xyz
gidjshrvz [。] xyz
letitbe [。] icu
pofasfafha [。] xyz
0528104f496dd13438dd764e747d0778-使用NetSupport RAT的加密ZIP存档
NetSupport Manager组件:
953896600dfb86750506706f1599d415-cksini.exe
8d9709ff7d9c83bd376e01912c734f0a-client32.exe
2d3b207c8a48148296156e5725426c7f-HTCTL32.DLL
0e37fbfa79d349d672456923ec5fbbe3-msvcr100.dll
26e28c01461f7e65c402bdf09923d435-nskbfltr.inf
88b1dab8f4fd1ae879685995c90bd902-NSM.ini
7067af414215ee4c50bfcd3ea43c84f0-NSM.LIC
dcde2248d19c778a41aa165866dd52d0-pcicapi.dll
a0b9388c5f18e27266a31f8c5765b263-PCICHEK.DLL
00587238d16012152c2e951a087f2cc9-PCICL32.DLL
2a77875b08d4d2bb7b654db33a88f16c-remcmdstub.exe
eab603d12705752e3d268d86dff74ed4-TCCTL32.DLL
185 [。] 225.17.66:443-NetSupport RAT网关地址
5b79a0c06aec6126364ce1d5cbfedf66-带有NetSupport RAT存档的ServHelper
179 [。] 43.146.90:443-NetSupport RAT网关地址

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


All Articles