查看: 2956|回复: 21
收起左侧

[讨论] 成熟后门身披商业外衣,对抗杀软实现远控

[复制链接]
火绒工程师
发表于 2024-7-18 18:00:10 | 显示全部楼层 |阅读模式
本帖最后由 火绒工程师 于 2024-7-18 15:00 编辑

近期,火绒威胁情报中心监测到一个名为“企业智能化服务平台” 网页上托管的文件存在恶意行为,火绒安全工程师第一时间提取样本进行分析。分析中发现样本为易语言编写的成熟后门,能根据 C2 指令实现对受害者机器的完全控制。除此之外,它还会检测受害者机器中杀软的安装情况进行对抗,上传受害者系统中相关信息,并设立开机启动项进行持久化驻留等。目前,火绒安全产品可对上述病毒进行拦截查杀,请广大用户及时更新病毒库以提高防御能力。

火绒 6.0 查杀图

观察到样本来源页面如下图所示。打开该网页后会自动下载一个名为 "合同.rar" 的文件到本地。解压运行该文件后,会从内存中解密多个子文件进行加载和释放,最终运行易语言远控代码,实现对受害者机器的完全访问控制。此外,根据火绒威胁情报系统显示,该后门还会伪装成其它商业文件进行传播,观察到的其伪装的文件名有 “supe-告知函.exe”、“电子合同.xls” 等。

网页界面

样本执行流程如下所示:

样本执行流程图

一、样本分析
从 “合同.rar” 中解压出来 “合同.exe” ,该程序为易语言编写的引导程序:

易语言入口点

“合同.exe” 执行时,会先检查 “tomcat.exe” 进程是否存在。“tomcat.exe” 进程实际上是下一阶段恶意代码的执行文件。如果存在,则直接结束该进程:

检查 tomcat.exe 进程

接着解密出 “360tray.exe” 字符串,并继续查看“tomcat.exe” 进程是否存在。如果不存在,就直接释放下一阶段 payload;如果存在,则进一步解密密文,检测杀软数量,当只有 “360tary.exe” 一个杀软时,继续释放 payload:

检测 360tray.exe 并释放 payload
密文对应的杀软列表

但当杀软数量不止一个时,“合同.exe” 程序则会进一步执行驱动对抗操作。该程序首先会获取本地网络适配器信息以禁用无线网卡:
获取网络适配器信息

接着检查 "ZhuDongfangYu.exe" 进程是否存在。如果存在,则解密并释放 "C:\g.sys"、"C:\y.sys"、"C:\all.exe" 3 个文件运行以进行驱动对抗操作,然后继续释放并执行下一阶段 payload:

驱动对抗操作

释放文件信息

其中,释放文件中的"all.exe" 程序,根据字符串信息可以确认其来自于开源项目 RealBlindingEDR ,该开源项目以分享对抗 AV/EDR 的技术为主。此外,文件中的 "g.sys" 和 "y.sys" 也是该项目相关文件,在此不做详细分析:

all.exe 界面信息
RealBlindingEDR 项目截图

释放下一阶段 payload 行为分析:
释放的下一阶段 payload 文件有两个。首先释放的是 conf.ini 文件,该文件中会写入由当前执行文件路径转换而成的密文:

释放 conf.ini
conf.ini 内容展示

接着解密出另一个可执行文件 "tomcat.exe",第一次解密得到的字节码还要通过内存遍历,用指定的密文替换 tomcat.exe 中作为占位符的 "kkk" 字符串:(根据后面的分析可知,该指定密文为要连接的 C2 IP)

解密字节码并替换

替换内容

最后启动 "tomcat.exe" 进程,开启下一阶段操作:

启动 "tomcat.exe" 进程

释放文件列表

tomcat.exe :
"tomcat.exe" 也是由易语言编写的程序,但由黑月编译器进行编译:

入口点截图

该程序会在前期初始化阶段解密出 E_Loader.dll和 HP-Socket 等dll用于内部加载以实现第三方功能。根据 HP-Socket 官网介绍,其中的 HP-Socket 为高性能网络通信框架,同时它为易语言的编程语言提供接口。

github 项目图

软件简介

在执行过程中 "tomcat.exe" 会开启 3 个主要线程:
第一个线程用于获取父文件释放的 "conf.ini" 中的路径密文,此线程对密文进行解密后删除文件以销毁痕迹:

读取 conf.ini 配置

第二个线程用于开启网络连接,此线程解密父文件替换进来的密文为IP,调用 HP-Socket 组件中 HP_Client_Start 接口进行网络开启连接:

开启连接

第三个进程用于检测杀软、设立开机启动的快捷键,同时检测系统是否进入锁屏状态,如果是的话则不进行其它操作:
锁屏检测

其中,包含的检测本地杀软和设立快捷键的具体逻辑如下。首先根据指定密文解密出杀软列表,后续操作过程中会遍历列表中的杀软进程,当杀软进程数量小于等于 4 时,该进程就会在启动目录下创建 WPS.lnk 链接进行驻留:

获取杀软列表

进程遍历
释放快捷方式

另外,除了前面提到的设立 3 个主要线程外,在操作 HP-Socket 库时,“tomcat.exe”还会传入函数和是否启动的 flag 标志位,然后根据逻辑条件将flag标志位作为 HP-Socket 的回调函数进行执行:

回调函数设置

第一主要的回调函数是用于 HP_Set_FN_Client_OnHandShake 的,该函数在收集用户本地杀软及系统信息后,将信息进行上传:

获取系统信息

第二个主要回调函数是用于 HP_Set_FN_Server_OnReceive 的,该函数是成熟的后门模块,会根据服务端回传指令实现具体控制,具体行为类别如下图所示:


后门行为分类

二、附录
C&C:

HASH:



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?快速注册

x
nmyh
发表于 2024-7-18 19:29:04 | 显示全部楼层
本帖最后由 nmyh 于 2024-7-18 19:30 编辑

不隐藏(显示)文件扩展名就很重要了吧,显示为exe程序文件还双击就是自己的问题了。

不过中招的大概不会考虑这么多。。。
00006666
发表于 2024-7-18 20:09:37 | 显示全部楼层
大概又是用驱动来移除杀软钩子、回调
00006666
发表于 2024-7-18 20:14:49 | 显示全部楼层
nmyh 发表于 2024-7-18 19:29
不隐藏(显示)文件扩展名就很重要了吧,显示为exe程序文件还双击就是自己的问题了。

不过中招的大概不 ...

现在很多杀软会直接报毒这种伪装扩展名文件,本身就是一种特征……
wowocock
发表于 2024-7-19 10:09:15 | 显示全部楼层
00006666 发表于 2024-7-18 20:09
大概又是用驱动来移除杀软钩子、回调

RealBlindingEDR
注: 从v1.5版本开始,只会发布Releases,不会再更新源代码(Bug 修复除外)。有任何致盲需要或问题可联系:bXl6LnhjZ0BnbWFpbC5jb20=

利用带签名驱动的任意地址读/写实现:完全致盲、或杀死、或永久关闭 AV/EDR。

如果你想了解实现原理可以参考分析文章:AV/EDR 完全致盲 - 清除6大内核回调实现 [欢迎关注此公众号]

支持致盲/永久关闭:360 安全卫士、360 企业版、天擎V10、腾讯电脑管家、火绒/火绒企业版、卡巴斯基企业版、亚信EDR、Windows Defender、安天智甲

当前已在64位的 Windows 7/10/11、Windows Server 2008R2/2012R2/2016/2019/2022 完成测试。如果你发现在某个版本有问题,可通过issue 反馈。

简介
本项目实现了以下内核回调的清除:

删除 CmRegisterCallback(Ex) 注册的回调
删除 MiniFilter微过滤器驱动注册的回调
删除 ObRegisterCallbacks() 注册的回调
删除 PsSetCreateProcessNotifyRoutine(Ex) 注册的回调
删除 PsSetCreateThreadNotifyRoutine(Ex) 注册的回调
删除 PsSetLoadImageNotifyRoutine(Ex) 注册的回调
删除内核回调后,最终可实现以下3点效果:

致盲 AV/EDR

在保持AV/EDR 进程正常运行的情况下,使其无法监控任何进程/线程活动、任何文件落地、注册表删改、高权限句柄获取等众多敏感行为。(不直接Kill 是为了保证EDR 与总控保持通信,避免掉线导致被发现)

永久关闭或禁用 AV/EDR

由于删除了注册表和微过滤器内核通知回调,可以修改注册表或直接删除AV/EDR 文件的方式永久关闭AV/EDR(即使系统重启)。

Kill AV/EDR 进程

由于删除了对象句柄通知回调,现在能够以普通管理员用户权限结束AV/EDR 进程。

免责声明
本项目不针对任何AV/EDR 厂商,代码示例仅用于研究学习,不得进行恶意利用,如有恶意利用与本人无关。
aboringman
发表于 2024-7-19 11:25:16 | 显示全部楼层
这种项目私人玩玩还可以,敢公开化就必然要做好被恶意利用的准备,我觉得安全厂商可以毫不留情的拉黑封杀掉相关的文件或做其他针对性的措施(
隔山打空气
发表于 2024-7-19 11:53:34 | 显示全部楼层
aboringman 发表于 2024-7-19 11:25
这种项目私人玩玩还可以,敢公开化就必然要做好被恶意利用的准备,我觉得安全厂商可以毫不留情的拉黑 ...

本身就是利用BYOVD的,一般来说给漏洞驱加小范围通杀措施(为了对抗改hash)就行

其他的通用思路就是检测不正常的驱动加载行为和紧抓提权技术之类的,可以在不依赖对BYOVD的拉黑的情况下构建较为通用的行为检测

BEST最近加入了反篡改-回调保护功能,会监视自己的回调是否被恶意禁用/删除并立即采取响应行动(告警,断网,自动重启),这也是一种相对有效的后置检测机制,不过具备此功能的安全产品相对比较少,B端的多一些

评分

参与人数 2人气 +2 收起 理由
DisaPDB + 1
aboringman + 1 感谢解答: )

查看全部评分

00006666
发表于 2024-7-19 12:24:20 | 显示全部楼层
本帖最后由 00006666 于 2024-7-19 12:28 编辑
隔山打空气 发表于 2024-7-19 11:53
本身就是利用BYOVD的,一般来说给漏洞驱加小范围通杀措施(为了对抗改hash)就行

其他的通用思路就是 ...

技术上不是做不到,检测自己回调没了就直接bsod也不难,但是用户能不能接受就不好说了,用户只知道是杀软导致的关机/重启……

https://bbs.kafan.cn/forum.php?mod=redirect&goto=findpost&ptid=2267250&pid=54322700

不过保护手段确实现在也很成熟了

https://bbs.kanxue.com/thread-279284.htm

评分

参与人数 2人气 +3 收起 理由
aboringman + 1
隔山打空气 + 2

查看全部评分

aboringman
发表于 2024-7-19 12:37:40 | 显示全部楼层
00006666 发表于 2024-7-19 12:24
技术上不是做不到,检测自己回调没了就直接bsod也不难,但是用户能不能接受就不好说了,用户只知道是杀软 ...

尤其是BEST是给企业用户用的,这一强制重启在某些特定的时间用户估计得哭爹喊娘(

不过严控驱动的加载应该还是可以,这不算战斗吧(

拉黑终究不是好手段,顶多算应急,还有很多在野的未知漏洞白驱动在等着嘞,不可能跟黑产拼拉黑的速度,当然ban掉签名就更不行了(
DisaPDB
发表于 2024-7-19 12:45:05 | 显示全部楼层
aboringman 发表于 2024-7-19 12:37
尤其是BEST是给企业用户用的,这一强制重启在某些特定的时间用户估计得哭爹喊娘(

不过严控驱动 ...

暴力拆回调肯定得加驱的,不然根本不可能动到r0的东西
所以理论上确实可以通过严格控制加载驱动的操作来对付,但是白驱动那么多总有不少的数目是能被利用的(
而且驱动加载一堆空子可钻,比如kdmapper就是个很典型的例子
所以不如对所有非白进程链的驱动加载行为统统拦截(
您需要登录后才可以回帖 登录 | 快速注册

本版积分规则

手机版|杀毒软件|软件论坛| 卡饭论坛

Copyright © KaFan  KaFan.cn All Rights Reserved.

Powered by Discuz! X3.4( 沪ICP备2020031077号-2 ) GMT+8, 2024-11-21 18:30 , Processed in 0.126127 second(s), 18 queries .

卡饭网所发布的一切软件、样本、工具、文章等仅限用于学习和研究,不得将上述内容用于商业或者其他非法用途,否则产生的一切后果自负,本站信息来自网络,版权争议问题与本站无关,您必须在下载后的24小时之内从您的电脑中彻底删除上述信息,如有问题请通过邮件与我们联系。

快速回复 客服 返回顶部 返回列表