一
概述
相关样本
经调查分析,本次攻击中的样本主要包括:
•shell类:
·adxintrin_b & cronman
这两个shell文件功能高度相似,且作用于攻击的整个生命周期。其主要行为包括:获取恶意文 件、运行挖矿病毒、持久化、清楚记录、横向移动。
·xbash
该文件是一个Makeself文件,其主要功能是释放"cronman"并执行。
•ELF类
·libgcc_a & xfitaarch.sh
这两个文件为本次攻击的最终payload,其为XMrig挖矿病毒的变种。
·spirit & sshpass
该文件为linux下ssh暴力破解组件,其会对内网中的其他主机进行ssh暴破,以实现横向移动。
二
流程
注:
•获取
·通过wget & curl,从C2服务器(5.133.65.53 & 45.142.212.30)拉取恶意样本及相关组件。
·通过scp,从已失陷主机中获取所需恶意样本及相关组件。
•传播
·利用spirit & sshpass,通过ssh暴破,在内网进行横向移动
·利用xinetd,实现端口转发,重定向至恶意C2服务器
•持久化
·设置计划任务
·修改sshd配置,并配置ssh公钥
•清理痕迹
·删除日志 & 命令行历史记录
·禁用登录日志 & 授权日志
•环境配置
·配置"ld.so.preload"
·自更新
·检查防火墙 & 杀软
·修改DNS
·创建服务"crtend_b"
三
分析
shell文件
adxintrinb & cronman
由于两文件功能完全一致,我们放在一起进行分析。同时还存在一个名为"crtres_c"的文件,其功能主要为利 用"crontab"定时启动"adxintrin_b"。
获取文件
•通过wget & curl,从C2服务器拉取相关文件
•通过ssh,从已失陷主机中获取相关文件
其先利用"tar -zcf"命令,将攻击所需的文件进行打包。
随后,其通过"scp"命令将刚刚打好的压缩包传入目标服务器,随后通过ssh发送命令,将压缩包进行解压,并执行压缩包中"/etc/cron.daily/xbash"这个脚本。
环境配置与检测
•修改"/etc/ld.so.preload"文件
其会根据系统架构,将对应的".so"文件写入"/etc/ld.so.preload",使得后续的ELF文件得以正常运行。
•自更新
其会判断xbash文件的修改时间距现在是否超过100天,若超过100天,则重新获取xbash文件。
•检查防火墙
•检查并关闭杀软
•修改DNS
•创建服务"crtend_b"
SERVICE_NAME为"crtend_b",且会将其添加至开机自启中。
持久化
•修改sshd配置
图中相关参数如下:file="/etc/ssh/sshd_config" param[1]="PermitRootLogin " param[2]="PubkeyAuthentication" param[3]="AuthorizedKeysFile" param[4]="PasswordAuthentication" param[5]="HostKeyAlgorithms" param[6]="PubkeyAcceptedKeyTypes"
•写入ssh公钥
•配置计划任务
在小时计划任务中加入文件"0anacron",该文件功能为运行xbash。
在日计划任务中加入文件xbash。
通过"crontab",为xbash设置定时任务。
通过"crontab",定时启动"crtres_c"。
图中"$FILE_RES"的值为"crtres_c"
"crtres_c"的主要功能为,在"crontab"为"adxintrin_b"添加一个60分钟执行一次的任务计划。
•设置开机自启
传播
•利用spirit & sshpass进行ssh暴破
spirit为开源的渗透工具,其会根据同级目录下的IP地址簿(即"ip.txt"文件)进行存活性探测,以方便后续传播。其同级目录下的sshpass文件为暴力破解组件,会根据同级目录下的密码本(即"alllib"文件)对可以访问到的服务器进行ssh暴破。
下图为目录结构:
同时也利用"crontab"为spirit设置定时计划,定期进行ssh暴破。
•利用利用xinetd,实现端口转发 & 重定向
其会向下载xinetd,随后其向etc/xinetd.d/文件夹写入timesync、http_stream、https_stream、
smtp_forward几个配置文件,实现将80、443、708、757、8080端口的访问转发到远程恶意主机上,通过这样的配置,当有客户端对本机的相应端口访问时,就会重定向至恶意主机实现代理。下面是其中一例:
清理痕迹
•删除日志 & 命令行记录
删除的日志包括:
相关功能实现如下:
•禁用登录日志 & 授权日志 & 命令行记录
相关功能实现如下:
xbash
该脚本是一个"Makeself"文件,其可以自解压并执行上文中提到的cronman文件,是持久化中的重要一环。
ELF文件
libgcca & xfitaarch.sh
libgcc_a & xfitaarch.sh是基于XMrig的基础,进行二次开发得到的挖矿病毒。XMRig是一个可以使用CPU/GPU配合RandomX、KawPow、CryptoNight和AstroBWT等算法进行虚拟货币挖矿的开源、跨平台程序。其二进制文件可以分别用于在Windows、Linux、macOS和FreeBSD平台上进行挖矿。此次攻击的样本在原基础上增加了hwloc模块,hwloc模块主要是解决不同架构中查询硬件资源的问题。
spirit & sshpass
spirit为开源的渗透工具,其同级目录下的sshpass文件为暴力破解组件,目录结构请见"传播"部分。
sshpass参数如下:
四
排查
可以通过排查以下信息,判断服务器是否失陷。
·典型目录:
·/root/gcclib 其中包含挖矿病毒
·/etc/lib 其中包含adxintrin_b
·/usr/lib/local 其中包含crtres_c
·/etc/xbash 其中包含cronman* & xbash
·/usr/spirit 其中包含spirit & sshpass
·/etc/xinetd.d 其中是否包含重定向至恶意C2的配置信息
·计划任务
·/etc/cron.daily 检查其中是否包含xbash
·/etc/cron.hourly 检查其中是否包含0anacron
·/etc/crontab 检查其中是否包含恶意样本相关文件
·开机自启
·检查/etc/init.d 检查其中是否包含xinetd & crtend_b
·服务 & 进程
·查看是否有占用资源过高的进程
·查看是否存在服务"crtend_b"