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