利合信诺 | 反沙箱与杀软对抗双重利用,银狐新变种快速迭代

利合信诺 | 反沙箱与杀软对抗双重利用,银狐新变种快速迭代

转载于:https://www.huorong.cn/document/tech/vir_report/1772

近期,火绒威胁情报中心监测到一批相对更加活跃的“银狐”系列变种木马,火绒安全工程师第一时间提取样本进行分析。分析中发现样本具有检测沙箱和杀毒软件的行为,还会下载 TrueSightKiller 驱动关闭杀软,同时下载创建计划任务的 Shellcode 实现持久化,最终下载后门模块实现远程控制。目前,火绒安全产品可对上述病毒进行拦截查杀,请广大用户及时更新病毒库以提高防御能力。

Image-0.png

火绒查杀图

根据火绒威胁情报中心监测情况显示,该系列木马在 9 月 14 日被截获处理,其传播量在 9 月 18 日达到顶峰,直至 9 月 20 日不再活跃。

Image-1.png

活跃趋势

样本执行流程如下所示:

Image-2.png

流程图

一、样本分析

该样本最初通过分配内存,复制 0x14002EB20 处代码并调用。

Image-3.png

复制内存

随后通过异或算法对 210002E 处代码进行解密。Image-4.png

解密

之后的具体逻辑如图所示,包含检测沙箱、检测安全软件、关闭安全软件、使函数失效、创建互斥体以及判断管理员权限等操作。

Image-5.png

具体逻辑

其中创建互斥体的代码如下,此操作用来检测两个互斥体是否存在,若不存在,则先创建其中之一互斥体,后续创建另一个互斥体。

Image-6.png

创建互斥体

检测管理员权限代码如下,如果没有权限则会重新用管理员权限打开。

Image-7.png

管理员权限启动

反沙箱

该银狐样本中存在大量反沙箱操作。

通过生僻函数 VirtualAllocExNuma 进行分配内存,若成功则直接返回,并继续执行后续操作。

Image-8.png

生僻函数

通过 HeapAlloc 分配相对大的内存—95MB来检测沙箱,并进行 for 循环加。猜测此过程可能是用于检测某些沙箱为了缩短检测时间直接跳过的情况。

Image-9.png

检测沙箱

通过三个函数判断:

  • 时间是否被加速。

  • CPU 速度是否过慢。

  • rdtsc 是否被篡改使 frndint 计算周期数过小。

Image-10.png

反沙箱

判断程序是否处于 Windows Defender 沙箱中:

  • 利用 NtCompressKey 特定句柄传入返回是否成功。

  • 利用 NtIsProcessInJob 传入特定值返回 STATUS_VOLSNAP_HIBERNATE_READY {卷影复制服务}系统现在处于休眠状态。

Image-11.png

检测 Windows Defender 沙箱

如果不成功,则会检测 SxIn.dll 是否被加载。猜测是以此判断程序是否处于隔离沙箱中。

Image-12.png

检测隔离沙箱

检测 CPU 核数大于等于 2 个以上。

Image-13.png

CPU 数量

安全软件对抗

样本会通过 VirtualProtect 函数更改内存权限,然后将该函数第一个指令替换为 retn ,使 AmsiScanBuffer 和 NtTraceEvent 函数失效。

Image-14.png

Hook 函数

检测是否存在 360tray.exe、360sd.exe、360safe.exe 进程名,若不存在,则进一步搜索相关窗口类名为 Q360SafeMonClass 的窗口。

Image-15.png

检测安全软件

如果检测到类名为 Q360SafeMonClass 的窗口,则会利用 PostMessageA 函数将其关闭。

Image-16.png

关闭窗口

其中 EnumWindow 遍历窗口时,通过 ChangeWindowMessageFilterEx 函数使该窗口允许接收 WM_QUIT 指令,随后利用发送消息的方式关闭该窗口。

Image-17.png

关闭窗口

如果安全软件不存在,则会将 ‘C:\\’,’C:\\ProgramData’,’C:\\Users’,’C:\\Program Files (x86)’ 路径添加到 Windows Defender 白名单中,以躲避检测。

Image-18.png

添加白名单

下载 PACqpC.exe

完成上述一系列检查后,该样本会下载一些文件和 Shellcode ,比如:TrueSightKiller 驱动程序和用于创建计划任务的 Shellcode 等。

大致流程如下:解密链接,利用链接下载内容,并使用流密码进行解密,之后创建文件夹并隐藏文件夹。

Image-19.png

具体流程

样本在此流程中,利用 InternetReadFile API 函数下载数据。

Image-20.png

下载数据

其中,下载链接和下载的数据分别利用凯撒密码和简单流密码进行解密。

Image-21.png

解密算法

解密后的 URL 数据如图所示,包含下载链接和相对应的文件名。

Image-22.png

URL 数据

随后检查是否有安全软件。

Image-23.png

检查安全软件是否存在

如果检查到安全软件,将保持之后下载到的数据解密并写入文件后的文件句柄处于开启状态,以此阻止安全软件的读取。

Image-24.png

写入文件

下载后开始分析数据,并提取出异或秘钥和数据开头地址。

Image-25.png

分析数据

开始下载 a.gif、b.gif、c.gif、d.gif ,它们分别对应 install.exe(即随机名 PACqpC.exe )、hccutils.dll、1.gif、2.jpg 。这些文件中的最后一个字节用作异或解密的秘钥,倒数第五个字节至倒数第二个字节用于计算出数据开头偏移,其中 b.gif 的最后四位会写入随机数。

Image-26.png

整体逻辑

Image-27.png

异或、随机数、获取秘钥和偏移

随后会读取自身内容,并利用 */& 定位,将 32 位随机数+*/&之后的 36 位数据写入到 C:\Users\InstallUP.ini 文件中。这些数据是被加密的 IP 和端口,用于下载后门模块后的动态替换 IP 和端口。

Image-28.png

InstallUP.ini 文件

接着通过链接 https://197oss.oss-cn-beijing.aliyuncs.com/s.dat 下载 TrueSightKiller 驱动,并将此驱动写入到 C:\Users\TTruespanl.sys 中,同时保持文件句柄处于开启状态。该驱动用于关闭杀毒软件。

Image-29.png

下载驱动

之后通过链接 https://197oss.oss-cn-beijing.aliyuncs.com/s.jpg 下载 Shellcode ,通过利用 VirtualProtect 设置执行权限并执行。

Image-30.png

下载执行 Shellcode 

Shellcode 中存在被压缩的 Dll ,对其进行解压缩后手动加载,并从中获取 RegisterTask 函数地址。

Image-31.png

获取 RegisterTask 函数地址

随后调用 RegisterTask 函数,创建计划任务。具体方法是创建并配置一个 RPC 绑定句柄,利用 NdrClientCall3 函数进行客户端 RPC 调用来创建计划任务,其中 XML 数据是计划任务的配置信息。

Image-32.png

创建计划任务

计划任务配置信息如图所示,它将实现登录、创建和修改功能,并且每分钟都会自动触发启动。此外,该任务的工作目录被设置为 C:\Users 目录。

Image-33.png

计划任务配置信息

PACqpC.exe

PACqpC.exe 文件为白文件,会加载 hccutils.dll,该文件为 VMP 壳。

Image-34.png

DLL 文件信息

加载 hccutils.dll 时,会先读取 1.gif 文件,对其进行解密,然后将解密后的内容写入到 PACqpC.exe 的入口点地址。接着读取 2.jpg 文件进行解密后手动加载并执行其中的KMDrvFaxGetJobStatusType 导出函数。

Image-35.png

执行 KMDrvFaxGetJobStatusType 函数

之后开始遍历进程,查看是否存在安全软件。

Image-36.png

进程名列表

随后通过 RPC 调用实现安装 TTruespanl.sys 驱动(实为 TrueSightKiller 驱动)。在管道通信过程中,有一次传入了驱动名和驱动文件路径,猜测这是用于加载驱动的。

Image-37.png

管道通信

Image-38.png

TTruespanl.sys 驱动

如果存在安全软件,则会利用 DeviceIoControl 函数传入进程 ID 关闭进程。

Image-39.png

DeviceIoControl 函数

其中 0x22E044 是驱动中终止进程的指令。

Image-40.png

终止进程

后门模块

完成上述操作后,该样本从 https://m39m.oss-cn-hangzhou.aliyuncs.com/drops.jpg 中下载 Shellcode ,该 Shellcode 用于下载后门模块加载器。这个 Shellcode 跟先前下载的相似,它会先下载 https://m39m.oss-cn-hangzhou.aliyuncs.com/f.dat ,这是 URL 数据,用于下载后门模块加载器的链接组合的数据。

Image-41.png

下载 URL 数据

Image-42.png

解密后的 URL 数据

之后该样本通过 URL 链接下载后门模块加载器,并将四个文件设置为隐藏的系统文件。然后会读取先前创建的 InstallUP.ini 文件并提取 IP 和端口( 47.76.238.83:8143 和 umxunw.net:8143 )写入 utils.vcxproj 文件,最后执行 wR0jS2.exe 。

Image-43.png

下载后门模块加载器并执行

执行后,该样本将加载 tbcore3U.dll 。此时,它会读取 utils.vcxproj 和 log.src 并解密出其他代码和后门模块。其他代码中包含通过设置注册表 ConsentPromptBehaviorAdmin 绕过 UAC 、检测安全软件等操作。最后执行后门模块 Edge 导出函数。

Image-44.png

Edge 函数

经对比分析,发现该模块执行逻辑与今年3月份火绒安全实验室发布的《成熟后门在野外“泛滥”,加载Rootkit对抗杀软》文章中提到的后门模块逻辑相同,具体细节可查看往期分析报告。

Image-45.png

相似度

二、附录

C&C:

Image-46.png

HASH:

Image-47.png

© 版权声明
THE END
你的支持是我们在网空安全路上的驱动力!
点赞14 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码

    暂无评论内容