04-19-2024, 05:54 AM
[font=微软雅黑, Tahoma, Helvetica, SimSun, sans-serif]近期,火绒安全实验室收到用户反馈称自己电脑运行异常,火绒安全工程师第一时间为用户提供技术支持。经排查,确认异常为挖矿病毒事件导致且提取到相关病毒源头xbash。xbash是Coinminer家族开发的恶意脚本,去年开始就被发现大规模传播,近期动作不断且频繁更新,在国内以其投放的xmrig挖矿病毒变种libgcc_a闻名,又称libgcc_a挖矿病毒。[/font]
[font=微软雅黑, Tahoma, Helvetica, SimSun, sans-serif]该病毒主要通过SSH口令爆破来获得初始访问权,通过各种技术手段来运行、隐藏和传播,其中包括预加载劫持、杀软对抗、流量代理,内网横向等。目前,火绒安全产品已支持对该类病毒进行拦截和查杀,请广大用户及时更新病毒库以提高防御能力。
[/font]
[font=微软雅黑, Tahoma, Helvetica, SimSun, sans-serif]一、样本分析[/font][font=微软雅黑, Tahoma, Helvetica, SimSun, sans-serif]
xbash分析:
起始样本为一个xbash脚本文件,通过查看其开头的描述可以确认其使用了Makeself打包工具:
[/font]
[/font]
[/font]
[font=微软雅黑, Tahoma, Helvetica, SimSun, sans-serif]引导脚本分析:
cronman 是主引导脚本,主要行为包括:下载payload、持久化、清除痕迹、清除杀软、内网代理、内网横向、运行挖矿程序等,具体分析如下:
cronman 首先通过run_cmd函数,以传参的方式执行安装xinetd守护进程:用于后续配置代理转发服务,包括 smtp、http、https 等,以供后续攻陷主机无法回连恶意域名及 C2 地址时通过内网横向代理下载 payload:
[/font]
[/font]
[/font]
[/font]
[/font]
[/font]
[/font]
[/font]
[/font]
[font=微软雅黑, Tahoma, Helvetica, SimSun, sans-serif]预加载劫持分析:
对相关库进行逆向分析发现,sshkit.so库文件会hook掉readdir函数,获取原始返回结果并过滤掉ssh进程文件,pkit.so隐藏libgcc_a,skit.so隐藏spirit,sshpkit.so隐藏sshpass:
[/font]
[/font]
[/font]
隐藏进程分析:
被隐藏的进程中spirit.sh是一个开源渗透测试工具(https://github.com/theaog/spirit),用于linux下内网主机存活探测及横向移动:
[/font]
[/font]
[/font]
[font=微软雅黑, Tahoma, Helvetica, SimSun, sans-serif]二、附录[/font][font=微软雅黑, Tahoma, Helvetica, SimSun, sans-serif]
HASH:
[/font]
[/font]
[font=微软雅黑, Tahoma, Helvetica, SimSun, sans-serif][/font]
[font=微软雅黑, Tahoma, Helvetica, SimSun, sans-serif]该病毒主要通过SSH口令爆破来获得初始访问权,通过各种技术手段来运行、隐藏和传播,其中包括预加载劫持、杀软对抗、流量代理,内网横向等。目前,火绒安全产品已支持对该类病毒进行拦截和查杀,请广大用户及时更新病毒库以提高防御能力。
[/font]
[font=微软雅黑, Tahoma, Helvetica, SimSun, sans-serif]
火绒查杀图[/font]
火绒查杀图[/font]
[font=微软雅黑, Tahoma, Helvetica, SimSun, sans-serif]一、样本分析[/font][font=微软雅黑, Tahoma, Helvetica, SimSun, sans-serif]
xbash分析:
起始样本为一个xbash脚本文件,通过查看其开头的描述可以确认其使用了Makeself打包工具:
[/font]
[font=微软雅黑, Tahoma, Helvetica, SimSun, sans-serif]
前置描述截图[/font]
[font=微软雅黑, Tahoma, Helvetica, SimSun, sans-serif]Makeself是一个自提取压缩工具,打包后的程序前半段是相关解压函数,后半段是被压缩的二进制数据:前置描述截图[/font]
[/font]
[font=微软雅黑, Tahoma, Helvetica, SimSun, sans-serif]
开源项目简介[/font]
[font=微软雅黑, Tahoma, Helvetica, SimSun, sans-serif]这里使用 --noexec --noexec-cleanup --confirm --keep --chown 参数来解压,发现里面包含一个cronman脚本,其为主要执行脚本:开源项目简介[/font]
[/font]
[font=微软雅黑, Tahoma, Helvetica, SimSun, sans-serif]
解压截图[/font]
解压截图[/font]
[font=微软雅黑, Tahoma, Helvetica, SimSun, sans-serif]引导脚本分析:
cronman 是主引导脚本,主要行为包括:下载payload、持久化、清除痕迹、清除杀软、内网代理、内网横向、运行挖矿程序等,具体分析如下:
cronman 首先通过run_cmd函数,以传参的方式执行安装xinetd守护进程:用于后续配置代理转发服务,包括 smtp、http、https 等,以供后续攻陷主机无法回连恶意域名及 C2 地址时通过内网横向代理下载 payload:
[/font]
[font=微软雅黑, Tahoma, Helvetica, SimSun, sans-serif]
设置转发代理[/font]
[font=微软雅黑, Tahoma, Helvetica, SimSun, sans-serif]调用 clean 函数清理杀毒软件及其它挖矿程序:通过终止进程、停止服务、删除自保护驱动、调用自带的卸载脚本等操作,移除包括 360、sangfor 在内的安全软件并终止其它同类挖矿程序:设置转发代理[/font]
[/font]
[font=微软雅黑, Tahoma, Helvetica, SimSun, sans-serif]
清除杀软[/font]
清除杀软[/font]
[font=微软雅黑, Tahoma, Helvetica, SimSun, sans-serif]
清理挖矿病毒[/font]
[font=微软雅黑, Tahoma, Helvetica, SimSun, sans-serif]依据SKIPUPDATE变量的值和data文件进行配置更新,通过get_remote_file函数下载文件并写入计划任务中实现自启动:清理挖矿病毒[/font]
[/font]
[font=微软雅黑, Tahoma, Helvetica, SimSun, sans-serif]
自身配置更新[/font]
[font=微软雅黑, Tahoma, Helvetica, SimSun, sans-serif]通过修改/etc/ld.so.preload内容以劫持程序启动后加载的动态库从而实现hook行为,写入的文件适配具体架构,具体分析见“预加载劫持分析”:自身配置更新[/font]
[/font]
[font=微软雅黑, Tahoma, Helvetica, SimSun, sans-serif]
预加载劫持[/font]
[font=微软雅黑, Tahoma, Helvetica, SimSun, sans-serif]通过checkfrw和addportfrw检查iptables、firewalld安装情况,并开放特定端口:预加载劫持[/font]
[/font]
[font=微软雅黑, Tahoma, Helvetica, SimSun, sans-serif]
修改防火墙配置[/font]
[font=微软雅黑, Tahoma, Helvetica, SimSun, sans-serif]修改SSH配置文件,实现持久化:修改防火墙配置[/font]
[/font]
[font=微软雅黑, Tahoma, Helvetica, SimSun, sans-serif]
修改 ssh 配置[/font]
[font=微软雅黑, Tahoma, Helvetica, SimSun, sans-serif]通过下载开源网络探测工具spirit,通过crontab命令创建周期任务来执行ssh爆破,以实现内网横向移动:修改 ssh 配置[/font]
[/font]
[font=微软雅黑, Tahoma, Helvetica, SimSun, sans-serif]
创建计划任务[/font]
[font=微软雅黑, Tahoma, Helvetica, SimSun, sans-serif]依据不同的架构下载对应的程序xfitaarch.sh、xfit.sh,在后续发现均为xmrig挖矿程序的变种:创建计划任务[/font]
[/font]
[font=微软雅黑, Tahoma, Helvetica, SimSun, sans-serif]
下载挖矿程序[/font]
[font=微软雅黑, Tahoma, Helvetica, SimSun, sans-serif]清除系统日志和历史记录,消除痕迹:下载挖矿程序[/font]
[/font]
[font=微软雅黑, Tahoma, Helvetica, SimSun, sans-serif]
清理记录[/font]
清理记录[/font]
[font=微软雅黑, Tahoma, Helvetica, SimSun, sans-serif]预加载劫持分析:
对相关库进行逆向分析发现,sshkit.so库文件会hook掉readdir函数,获取原始返回结果并过滤掉ssh进程文件,pkit.so隐藏libgcc_a,skit.so隐藏spirit,sshpkit.so隐藏sshpass:
[/font]
[font=微软雅黑, Tahoma, Helvetica, SimSun, sans-serif]
隐藏相关进程[/font]
[font=微软雅黑, Tahoma, Helvetica, SimSun, sans-serif]fkit.so则是隐藏相关恶意文件:隐藏相关进程[/font]
[/font]
[font=微软雅黑, Tahoma, Helvetica, SimSun, sans-serif]
隐藏相关恶意文件[/font]
[font=微软雅黑, Tahoma, Helvetica, SimSun, sans-serif]readdir函数是c语言libc库在用户层提供用于读取目录内容的函数,在该函数内部的实现中,会调用系统getdents64函数,所以hook readdir函数就间接hook了使用getdents64函数的命令,包括常用的ls、ps、top命令等:隐藏相关恶意文件[/font]
[/font]
[font=微软雅黑, Tahoma, Helvetica, SimSun, sans-serif]
函数追踪[/font]
[font=微软雅黑, Tahoma, Helvetica, SimSun, sans-serif]函数追踪[/font]
隐藏进程分析:
被隐藏的进程中spirit.sh是一个开源渗透测试工具(https://github.com/theaog/spirit),用于linux下内网主机存活探测及横向移动:
[/font]
[font=微软雅黑, Tahoma, Helvetica, SimSun, sans-serif]
开源项目简介[/font]
[font=微软雅黑, Tahoma, Helvetica, SimSun, sans-serif]Spirit会加载sshpass组件,用于内网主机ssh的暴力破解,加载ip.txt中的ip序列进行探测,对于活跃的内网ip则会调用 sshpass进行ssh密码爆破。其中,已破解的口令会存储到/usr/spirit/password.txt中,用于后续继续爆破利用:开源项目简介[/font]
[/font]
[font=微软雅黑, Tahoma, Helvetica, SimSun, sans-serif]
sshpass 运行命令[/font]
[font=微软雅黑, Tahoma, Helvetica, SimSun, sans-serif]被隐藏的另一个程序libgcc_a根据相关字符串可以确定是XMrig挖矿程序的变种,其由前面cronman下载的xfitaarch.sh、xfit.sh重命名而来,用于挖矿牟利:sshpass 运行命令[/font]
[/font]
[font=微软雅黑, Tahoma, Helvetica, SimSun, sans-serif]
开源项目简介[/font]
开源项目简介[/font]
[font=微软雅黑, Tahoma, Helvetica, SimSun, sans-serif]
xmrig 字符串[/font]
xmrig 字符串[/font]
[font=微软雅黑, Tahoma, Helvetica, SimSun, sans-serif]二、附录[/font][font=微软雅黑, Tahoma, Helvetica, SimSun, sans-serif]
HASH:
[/font]
[font=微软雅黑, Tahoma, Helvetica, SimSun, sans-serif][/font]
[font=微软雅黑, Tahoma, Helvetica, SimSun, sans-serif]C&C:[/font]
[font=微软雅黑, Tahoma, Helvetica, SimSun, sans-serif][/font]