激战电竞网

样本分析|非官方火绒剑存在后门风险,谨慎下载使用

admin 185

近期,火绒安全实验室在某论坛中发现一名用户发帖上传了被篡改过的火绒剑程序,该事件详细经过可参考《情况说明|非官方火绒剑存在后门风险,请用户谨慎下载使用》,在此不做赘述,本文为该样本的内容分析。经火绒工程师确认,该“盗版火绒剑”中的文件被篡改,在其DLL加载时会解密出恶意DLL数据并加载执行,最后实现后门操作。目前,火绒安全产品可对上述被篡改的病毒样本进行拦截查杀,请广大用户及时更新病毒库以提高防御能力。同时我们也希望广大用户在官方渠道下载软件,避免企业或个人信息及财产存在被泄露的风险。

查杀图

样本执行流程图如下图所示:

流程图

从下图可以看出被篡改文件没有数字签名。

对比图

一、样本分析

样本中被篡改的会解密出加载器,随后加载器再解密加载后门模块并执行后门逻辑。

后门功能具体如下:

进程管理:进程遍历、进程终止、模块遍历、权限获取、安全标识符获取等。

文件管理:创建文件、删除文件、移动文件、写入文件、执行程序、获取文件信息等。

鼠标键盘模拟:实现远程控制鼠标和键盘。

管道后门:创建管道、写入管道执行远程命令。

插件管理:客户端通过下载插件执行恶意代码。

其他功能:设置配置以及下载DLL利用执行。

系统信息获取:获取主机名、系统版本、杀毒软件列表、进程名、安装软件列表等。

本文将以加载阶段、通信阶段、后门功能、发送系统信息四个环节为主进行详细分析。

1.1加载阶段

该动态链接库入口函数dllmain_dispatch中的_SEH_prolog4函数被恶意重定向,作为病毒入口执行病毒代码。

重定向

随后利用fs:34h获取上一个错误号2,并基于此错误号进行计算,最后计算出解密函数的地址并调用解密函数,解密函数会解密出加载器代码。

调用解密函数

解密加载器代码

在加载器中解密恶意DLL数据,获取到DLL并调用DLL入口点函数。

解密出恶意DLL数据

加载器函数

手动加载细节

1.2通信阶段

检查互斥体Global\{950DD698-EB8C-469E-A50B-F76D0283392E}是否存在,如存在则循环至不存在为止。

检查互斥体

随后读取C:\ProgramData\MicrosoftOneDrive\文件并解析成字典格式,如不存在则会初始化字典并创建该文件,同时在创建之后修改该文件的时间戳。

初始化时:
mc值是固定头9X3eR2p加上21位随机数组成的,后续请求远程服务器时将会附带该值,用来识别客户端;
ts值是Sleep的秒数,初始化时赋予值为28。

读取或写入文件

初始化字典

写入.dat文件

之后读取字典中的disable值,如果为true则不会继续执行。

检测disable值

检测disable值后通过异或0x1F解密出远程服务器地址20.2.66.39,并设置为ICMP协议。

获取IP地址并设置ICMP协议

睡眠{ts}秒后利用ICMP协议发送数据包,数据包中包含mc值,其前后分别填充了0xC681和0x1101。之后利用recvfrom函数接收回复的数据,通过回复的数据部分偏移为2的字节并减掉0x65为标准来判断要执行哪个函数。其中管道后门和插件管理都可以远程执行恶意代码。

功能号

根据指令执行相应函数

接收ICMP数据

WireShark监测到的数据

其中进程管理函数会主动连接远程服务器443端口,随后获取指令,通过指令分别执行特定的恶意操作,同时会发送系统信息。

下图是进程管理接收指令的代码,其他后门功能运行机制与此相同。

进程管理主逻辑(其他后门功能也相同)

接收指令并执行函数(其他后门功能也相同)

1.3后门功能

执行后门功能后会回复log或者打包数据发送至远程服务器中。

发送信息

1.3.1进程管理

进程管理有以下功能:

功能号

遍历进程:遍历进程时获取进程名、进程ID、父进程ID、进程路径等,最后加密压缩发送至远程服务器。

遍历进程

压缩发送

终止进程:通过进程ID终止指定进程。

终止进程

遍历模块:遍历指定PID进程获取模块信息,并压缩发送。

遍历模块

获取进程权限:

获取权限名

1.3.2文件管理

文件管理有以下功能:

功能表

其中部分函数截图:通过指定路径删除文件、移动文件,还可以通过传递过来的时间参数设置文件时间。

文件管理部分截图

1.3.3模拟键鼠

鼠标部分功能

模拟键盘:利用SInput函数实现键盘按下后弹起的操作。

模拟按键

1.3.4管道后门

创建管道:创建管道以及创建无界面或者等。

创建管道

写入管道:用于远程执行指令。

写入管道

1.3.5插件管理

插件管理有以下功能:

功能表

加载插件代码图:

加载插件

1.3.6其他功能

除上述功能以外还有以下功能号相对应的功能:主要是用于更新配置相关。

功能表

设置禁用:可以通过将disable设置为true来使该客户端不再与远程服务器交互。

设置禁用

下载DLL执行导出函数Entry:先下载,同时下载或,随后利用程序执行导出函数Entry。

执行导出函数

1.4发送系统信息

每次执行后门功能函数时都会发送一次系统信息。发送的信息包含主机名、系统版本、杀毒软件列表、指定注册表、当前进程ID和进程名、检查互斥体Global\\{54902E83-9AA7-4DB5-977C-A1EBC760CAAE}、遍历安装包注册表。

获取主机名和系统版本:

获取主机名和系统版本

杀毒软件列表:通过遍历进程获取进程信息,并比对进程名确认进程是否存在,如果存在则将杀软名添加到列表中。如果没有杀软存在则回复“无”字符串。

下图是杀软名和进程名对照表:

对照表

检测以及添加到列表中

安装包列表:遍历Uninstall注册表并提取其中的DisplayName值添加到列表中,从而获取安装包列表。

获取安装软件列表

获取指定注册表路径的值:

Directory\shellex\CopyHookHandlers\Files

SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers\DarkTheme

Directory\shellex\ContextMenuHandlers\Files

二、附录

CC:

HASH:

讲点大白话:有的小伙伴表示没有学过计算机知识,看不太懂这篇文章,那么你可以参考如下说明。

假如你有一个动物园,动物园里有很多你喜欢并珍藏的动物,但也有坏猴子偷偷翻进动物园住下干扰动物们生活(没有说所有猴子都坏的意思),偶尔也有小偷光顾你的动物园偷走用来喂动物的苹果。你很生气,决定为你的动物园安装一个监控。但是出于种种原因,比如找不到卖监控的店家、喜欢的那一款过于昂贵等等,你最终找了一个二手贩子。二手贩子交给你的监控看起来十分好用,你认为可以对动物园放心了,但其实你不知道,监控被注入了隐藏的程序,可以偷偷转移你的信息,也告诉了幕后黑手动物园几点没人,甚至他还知道住着珍贵动物的房间密码是多少,他借着病毒,操控着动物园的一切。或许有一天,你发现你进不去自己的动物园了。

而动物园就是你的电脑,二手贩子的监控是被注入后门的非官方火绒剑,希望你永远有给动物园开门的自由[震惊]。

目前火绒安全产品已支持对该“非官方火绒剑”进行查杀,在这里也再次提醒广大用户,认准官方渠道,非官方渠道软件安全性无法保证,各平台下载需谨慎!