吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 6270|回复: 62
收起左侧

[PC样本分析] 又一种后门病毒针对Linux系统,火绒可拦截

   关闭 [复制链接]
火绒安全实验室 发表于 2023-11-29 17:22
使用论坛附件上传样本压缩包时必须使用压缩密码保护,压缩密码:52pojie,否则会导致论坛被杀毒软件等误报,论坛有权随时删除相关附件和帖子!
病毒分析分区附件样本、网址谨慎下载点击,可能对计算机产生破坏,仅供安全人员在法律允许范围内研究,禁止非法用途!
禁止求非法渗透测试、非法网络攻击、获取隐私等违法内容,即使对方是非法内容,也应向警方求助!
本帖最后由 火绒安全实验室 于 2023-11-29 17:25 编辑

近期,火绒威胁情报系统监测到一种针对Linux系统的后门型病毒,经排查分析后,确定其与HelloBot家族有关。HelloBot是一个针对Linux系统的恶意软件家族,执行远程控制受害者计算机等恶意活动,因其配置测试中输出“hello world”而得名。 该病毒自2019年被披露后,被多个犯罪团伙和APT组织使用,对用户构成较大的威胁。目前,火绒安全产品可对上述病毒进行拦截查杀,请企业用户及时更新病毒库以进行防御。

Image-0.png

病毒查杀图

该病毒被激活后,会释放“worker”文件并为其进行配置,后者在受害者电脑上执行关键操作。不同的配置会导致不同的恶意行为,包括进程伪装、备份文件、防火墙设置和远程控制等。该病毒执行流程,如下图所示:
Image-1.png

病毒执行流程图

一、样本分析

该类病毒是一个由配置主导的成熟复杂的后门程序,不同的配置有不同的执行结果,这里仅以当前样本配置的执行过程进行阐述:

Image-2.png

配置查看

在观察中发现样本有四个启动参数: --builder、--test、--shell、--dump。--builder 需要传入指定的配置和要更新的样本文件名 filename,用于重新构建服务。

--test 只是简单地测试样本执行输出。--shell 开启一个 shell 进行连接,需要输入密码进行 md5 校验,md5 解出来的值为 "tk_shell"。--dump 后接要导出配置的样本名,用于显示当前样本的配置信息

Image-3.png

参数设置

前期操作:通用执行部分

由于样本执行阶段主要分为“释放器”和“工作者”两个部分,两者执行流程因配置修改而异,但在根据配置进行“分流”之前,有着共同的初始化部分,梳理如下:1:重置 shell 相关历史记录。

Image-4.png

历史清除

2:校验输入参数,并进行相应处理。如果没有输入参数,就进行后续处理。

Image-5.png


校验参数


3:从自身获取配置

Image-6.png

提取配置

4:忽略所有信号并重新注册 SIGCHLD 信号。(重置 mgr_pid 和 monitor_pid 为 -1)

Image-7.png

注册信号

5:根据配置将自身进程替换成虚假进程名。

Image-8.png

进程替换

释放器分析:


启动程序运行前会先查看一下系统环境,主要检查 /tmp 目录是否存在,tmp_start_dir 配置对应的 /var/tmp 是否存在等,为后续副本投放执行作铺垫:(auto_start 也会先设置为 0)

Image-9.png

路径查看

样本会遍历运行中的进程获取要伪装的文件(这里只开启了 firefox),然后将重命名的副本释放到 /var/tmp/ (tmp_start_dir)目录下并设置好对应的执行权限:

Image-10.png

进程路径获取

Image-11.png

系统函数调用图

随后释放器会设置 is_worker 为 1 用于更新副本 firefox 的配置,is_worker 标志表示该样本将要用于正式执行阶段:

Image-12.png

配置更新

最后,释放器通过 fork 分支执行 "/bin/sh -c /var/tmp/firefox" 并将其设置成后台进程。释放器结束任务,剩下操作移交到 firefox 代表的 worker 中:

Image-13.png

开启 "worker"

工作者执行:

由于该样本属于后门程序的设定,所以后续操作围绕着“上线”展开。且由于 is_worker 值的设置,该样本在执行时跳过了前面释放器提到的流程。

工作者先是删除文件自身,以内存加载的方式执行:

Image-14.png

删除自身

Image-15.png

进程图展示

配置中 lock_file 对应的文件起一个类似“互斥体”的作用,通过判断该文件占用情况来确定 worker 是否重复执行:

Image-16.png

“互斥体”设置

fork 的进程:


样本后续通过 fork 分支了多个子进程,子进程之间互相关联且涉及到配置中的 mgr_pid 和 monitor_pid 进程,梳理如下:

Image-17.png

流程图

子进程1:监控全局最先分支出来的子进程 1 被设立成脱离终端的独立进程,用于后台运行:

Image-18.png

后台执行

接着 fork 出子进程 2,并设其为 mgr_pid 值,用于管理“上线”的操作。并接着在 start_monitor_child 函数中开启子进程 3,用于执行监控操作。在开启子进程 2、3 之后,子进程 1 进入到监听消息的循环当中,通过指定的消息执行不同的操作。

Image-19.png

监听消息

监听的特定消息应由“上线”后以发出,包括 restart、update、uninstall 3 种管理方式。其中这三种操作的对象都指向进程 3 在 install_path 和 install_path_bak 中存放的最新配置的“启动器”:

Image-20.png

管理分支进程

子进程3:配置更新


start_monitor_child 中开启的子进程 3 负责监控操作,其获取配置中的 mon_interval (10 秒)值作为监控周期,循环执行:

Image-21.png

循环检测

对于配置中设置了的 "cmd%d" 命令,则会在该进程中遍历执行:

Image-22.png

命令执行

该进程最关键的还是对于配置的更新,根据配置中的 install_path 和 install_path_bak 值,把自身复制到对应的目录下并设置 is_worker 为空(相当于启动器),目的是在“上线”后根据交互时刻更新命令配置。

Image-23.png

配置更新


子进程2:维持通信

子进程 2 负责“上线”操作,在通信之前会校验防火墙配置,如果设置了值,则执行 "iptables -F" 清除防火墙规则:

Image-24.png

防火墙设置

随后在循环中遍历配置中的 host%d,获取 C2 域名进行连接:(拽写本文时,C2 已失效)

Image-25.png

C2 连接

在连接前,获取 DNS 解析的 IP 地址进行连接,构造特定的报文发送来获取特定的返回数据:

Image-26.png

报文构造

Image-27.png

流量查看

连接成功后根据配置中的 protocol 来选择要使用的通信协议进行管理:

Image-28.png

协议选择

关于 SIGCHLD 信号:

在前期对信号的处理操作中注册的 SIGCHLD 信号处理函数是对“工作者”的进程 2、3 进行处理的。因为当第一个子进程终结后,SIGCHLD 的处理函数还要等待第二个子进程终结才能进入条件。在该条件句中,执行的操作是重置 mgr_pid 和 monitor_pid 的值。


Image-29.png

SIGCHLD 信号

关于壳与配置:

样本是用常规 upx 壳压缩的,并没有什么修改。但是对于配置部分,程序采取的是将加密后的配置附加在文件末尾,这就导致了自动脱壳失败:

Image-30.png

配置写入

Image-31.png

相关字节码

二、附录:


HASH:

Image-32.png

C&C

Image-33.png

免费评分

参与人数 30吾爱币 +24 热心值 +28 收起 理由
aib0 + 1 我很赞同!
白雾林 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
yyzzy + 1 谢谢@Thanks!
pycah + 1 + 1 谢谢@Thanks!
lgc81034 + 1 谢谢@Thanks!
chinawolf2000 + 1 + 1 热心回复!
内存空间不足 + 1 谢谢@Thanks!
HUAJIEN + 1 + 1 谢谢@Thanks!
朴莱 + 1 + 1 很棒
liangjinwuxin + 1 我很赞同!
SAPLU + 1 + 1 我很赞同!
zlxay + 1 + 1 热心回复!
ljkgpxs + 1 + 1 谢谢@Thanks!
玄觞 + 1 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
soughing + 1 + 1 我很赞同!
MG_0409 + 1 + 1 谢谢@Thanks!
两只小蜜蜂 + 1 + 1 我很赞同!
lsxon + 1 + 1 谢谢@Thanks!
nice12358 + 1 用心讨论,共获提升!
yp17792351859 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
xiete + 1 + 1 我很赞同!
clorisli + 1 谢谢@Thanks!
mayongz2023 + 1 + 1 谢谢@Thanks!
lcjok92021 + 1 + 1 用心讨论,共获提升!
吾爱破解-阿良 + 1 + 1 鼓励转贴优秀软件安全工具和文档!
changbangkun6 + 1 + 1 我很赞同!
gamingnow + 1 + 1 用心讨论,共获提升!
17315044449 + 1 + 1 我很赞同!
Fuzz + 1 + 1 谢谢@Thanks!
ACBur + 1 + 1 好东西

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

x1na0v0 发表于 2023-11-29 20:14
长见识了,好久没见到针对linux的病毒了,看来就是linux也要警惕啊
头像被屏蔽
hackerSQL 发表于 2023-11-29 18:48
andyle 发表于 2023-11-29 18:21
用的人多了,病毒就多起来了,毕竟还算荒地
ytfrdfiw 发表于 2023-11-29 19:26
感谢楼主分享。
luliucheng 发表于 2023-11-29 19:46
这个病毒主要是利用了Linux下删除文件后已运行的进程仍能运行下去,不过由于病毒最终把自身删掉了,所以它应该是无法在重启后存活的吧?顺便问一下,火绒的Linux个人版什么时候出?
shushu666 发表于 2023-11-29 20:42
linux都不安全了,但看不懂
Carnival 发表于 2023-11-29 21:07
很详细,受益匪浅
aboutu 发表于 2023-11-29 21:42
感谢分享了,刚刚升级了病毒库
crhst 发表于 2023-11-29 22:01
x1na0v0 发表于 2023-11-29 20:14
长见识了,好久没见到针对linux的病毒了,看来就是linux也要警惕啊

勒索多的很
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-28 03:22

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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