挖矿程序发现
这两天在研究大数据的数据同步工具时,发现数据同步非常慢,数据库数量很小,但是同步了10几分钟都没有同步结束,于是登录虚机查看了下机器状态。
执行top
命令发现有个进程名叫biden1的任务,把CPU占满了。但我影像中应该没有运行这种东西,虚机状态检查也没有病毒和木马,于是怀疑被人植入挖矿程序了。
执行kill -9 9102 命令杀掉,之后几分钟后线程又启动起来了。于是开启了和挖矿程序战斗的路程。
定时任务检查
一般进程定时启动都会放在定时任务上。因此先从虚机的定时任务入手,一般linux定时任务都是通过crontab进行管理、
执行 crontab -e
查看任务进程发现没有任何任务
进入 /var/spool/cron目录查看是否有其他可以的任务,查看也没可疑的任务
查看定时任务启动日志,也没有启动相关任务的信息,因此排除通过定时任务启动
在排查过程中,因为进程占用资源太多,导致我被频繁踢出虚机,因此我临时写了检查任务,检查程序启动就kill掉。保证虚机能正常使用
#!/bin/sh
name="biden1"
ps -efww|grep -w "$name"|grep -v grep|cut -c 9-15|xargs kill -9 || exit 0
将该脚本保存到check.sh中,然后再crontab中添加定时任务,执行crontab -e ,一分钟检查一次任务。
* * * * * /root/check.sh
保证了我可以不受阻断的进行排查问题。
网络漏洞排查
既然定时任务没有,那么就是可能公网被攻破了,通过外部通道检测来进行指令的执行。于是准备检查了下防火墙,看下网络配置。 执行
firewall-cmd --list-all
发现了39000-40000区间端口都被打开了,我使用一般都是按需使用,所以一般不会打开这么多端口。于是查看下有没有使用这几个区间端口的进程 执行
netstat -anp
发现了好多cnhnve进程。因此怀疑是该进程和攻击者建立了连接信道,然后进行挖矿程序的植入和检测。 首先关闭防护墙端口开放,切断外部通道,执行
firewall-cmd --parmanent --remove-port=39000-40000/tcp
然后重启防火墙
firewall-cmd --reload
查看线程信息,杀掉线程启动文件,杀掉进程,之后虚机恢复正常。
但是防火墙开通了额外端口呢?只有管理员才可以操作防火墙的设置,除非我的虚机密码被攻破了。查看了站内信发现了这么一条信息.....阿西吧
原来机器密码被人暴力破解了。因此大伙们,一定要设置一个安全的密码呀!
总结
当遇到机器中毒或者被植入程序了先不要着急,如果是木马记得使用木马查杀,一般云虚机都有木马和病毒查杀的,所以问题不大。如果遇到异常程序,那么可以从下面几个步骤入手
- 如果程序占用满负荷虚机资源则建议先写检测脚本进程,保证虚机不受影响
- 查看进程中是否有异常进程
- 查看定时任务中是否有异常任务
- 查看网络有无开通额外异常端口
- 最重要的一点,密码强度一定要高