站内搜索:
当前位置: 首页 > 网信安全 > 正文

网信安全

网信安全

挖矿病毒持续活跃,通过 ssh "强行" 登录

来源: 日期:2024-04-02 14:24 点击:

信息来源:火绒安全

近期,火绒安全实验室收到用户反馈称自己电脑运行异常,火绒安全工程师第一时间为用户提供技术支持。经排查,确认异常为挖矿病毒事件导致且提取到相关病毒源头xbash。xbash是Coinminer家族开发的恶意脚本,去年开始就被发现大规模传播,近期动作不断且频繁更新,在国内以其投放的xmrig挖矿病毒变种libgcc_a闻名,又称libgcc_a挖矿病毒。
该病毒主要通过SSH口令爆破来获得初始访问权,通过各种技术手段来运行、隐藏和传播,其中包括预加载劫持、杀软对抗、流量代理,内网横向等。目前,火绒安全产品已支持对该类病毒进行拦截和查杀,请广大用户及时更新病毒库以提高防御能力。


Image-0.png
火绒查杀图


一、样本分析
xbash分析:
起始样本为一个xbash脚本文件,通过查看其开头的描述可以确认其使用了Makeself打包工具:


Image-1.png
前置描述截图


Makeself是一个自提取压缩工具,打包后的程序前半段是相关解压函数,后半段是被压缩的二进制数据:

Image-2.png
开源项目简介


这里使用 --noexec --noexec-cleanup --confirm --keep --chown 参数来解压,发现里面包含一个cronman脚本,其为主要执行脚本:


Image-3.png
解压截图


引导脚本分析:
cronman 是主引导脚本,主要行为包括:下载payload、持久化、清除痕迹、清除杀软、内网代理、内网横向、运行挖矿程序等,具体分析如下:
cronman 首先通过run_cmd函数,以传参的方式执行安装xinetd守护进程:用于后续配置代理转发服务,包括 smtp、http、https 等,以供后续攻陷主机无法回连恶意域名及 C2 地址时通过内网横向代理下载 payload:

Image-4.png
设置转发代理

调用 clean 函数清理杀毒软件及其它挖矿程序:通过终止进程、停止服务、删除自保护驱动、调用自带的卸载脚本等操作,移除包括 360、sangfor 在内的安全软件并终止其它同类挖矿程序:

Image-5.png
清除杀软

Image-6.png
清理挖矿病毒

依据SKIPUPDATE变量的值和data文件进行配置更新,通过get_remote_file函数下载文件并写入计划任务中实现自启动:

Image-7.png
自身配置更新

通过修改/etc/ld.so.preload内容以劫持程序启动后加载的动态库从而实现hook行为,写入的文件适配具体架构,具体分析见“预加载劫持分析”:

Image-8.png
预加载劫持

通过checkfrw和addportfrw检查iptables、firewalld安装情况,并开放特定端口:

Image-9.png
修改防火墙配置

修改SSH配置文件,实现持久化:

Image-10.png
修改 ssh 配置

通过下载开源网络探测工具spirit,通过crontab命令创建周期任务来执行ssh爆破,以实现内网横向移动:

Image-11.png
创建计划任务

依据不同的架构下载对应的程序xfitaarch.sh、xfit.sh,在后续发现均为xmrig挖矿程序的变种:

Image-12.png
下载挖矿程序

清除系统日志和历史记录,消除痕迹:

Image-13.png
清理记录

预加载劫持分析:
对相关库进行逆向分析发现,sshkit.so库文件会hook掉readdir函数,获取原始返回结果并过滤掉ssh进程文件,pkit.so隐藏libgcc_a,skit.so隐藏spirit,sshpkit.so隐藏sshpass:

Image-14.png
隐藏相关进程

fkit.so则是隐藏相关恶意文件:

Image-14.png
隐藏相关恶意文件

readdir函数是c语言libc库在用户层提供用于读取目录内容的函数,在该函数内部的实现中,会调用系统getdents64函数,所以hook readdir函数就间接hook了使用getdents64函数的命令,包括常用的ls、ps、top命令等:

Image-14.png
函数追踪

隐藏进程分析:
被隐藏的进程中spirit.sh是一个开源渗透测试工具(https://github.com/theaog/spirit),用于linux下内网主机存活探测及横向移动:

Image-17.png
开源项目简介

Spirit会加载sshpass组件,用于内网主机ssh的暴力破解,加载ip.txt中的ip序列进行探测,对于活跃的内网ip则会调用 sshpass进行ssh密码爆破。其中,已破解的口令会存储到/usr/spirit/password.txt中,用于后续继续爆破利用:

Image-17.png
sshpass 运行命令

被隐藏的另一个程序libgcc_a根据相关字符串可以确定是XMrig挖矿程序的变种,其由前面cronman下载的xfitaarch.sh、xfit.sh重命名而来,用于挖矿牟利:

Image-19.png
开源项目简介

Image-20.png
xmrig 字符串


二、附录
HASH:

Image-21.png


C&C:


Image-21.png