根据网上的文章,并结合自身服务器状况,得知这次入侵是因为redis端口对外开放,且空密码,致使了Kworkerd,sustse恶意入侵LINUX挖矿,原本想着调试方便(都是个人锅),如今惟有吸收教训。Let's start!php
事情开始于一个平凡而又伟大下午的平常编码中,突然发现某服务数据库链接拒绝,遂上服务器上查看mysql服务状态,居然是关闭状态,当我开启服务后不久又自动关闭了,也就是从这个时候开始,全部的服务链接请求阻塞变慢,页面没法访问或加载超时,开始排查问题(当时慌得一比).html
TOP -c
查看当前服务器状况,奇怪的是CPU跑满99%左右,但却无占用CPU高的进程,看了很久的Linux 系统情况后,发现时而有sustse、kworkerd等陌生进程字眼,快马加鞭地搜索一下。
/var/tmp
目录,并清理这几个病毒脚本
http://192.99.142.246:8220/mr.sh
,输入crontab -e
修改删除此脚本,但定时任务的请求仍然会进行写入netstat -anp
查看当前网络链接时,发现有多个异常链接,与定时任务的地址相同,试着输入ps aux|grep 8220
找到并kill
掉进程,一会后仍是会写入进程,看来有多处脚本写入定时任务
虽然一时间没法完全根治,脚本无限刷,文件又一直请求,但日子总要过下去不是,因而一边提交了工单给阿里云,一边分析当前的恶意脚本。mysql
根据工程师的建议作了一份快照备份,以备未来不得以的状况下回滚备份.git
然后经过分析http://192.99.142.246:8220/mr.sh
SHELL脚本,发现脚本会不断删除并新增进程与脚本,经过此记录下脚本内容,将'删除脚本'一次性执行,发现执行成功且再无恶意进程.github
chattr +i /usr/bin/wget
chmod 700 /usr/bin/wget
chattr +i /usr/bin/curl
chmod 700 /usr/bin/curl
/etc/init.d/iptables stop
service iptables stop
SuSEfirewall2 stop
reSuSEfirewall2 stop
pkill -f sysxlj
pkill -f jourxlv
pkill -f sustes
rm -rf /etc/ld.so.preload
rm -rf /usr/lib/void.so
rm -rf /etc/voidonce.sh
rm -rf /usr/local/lib/libjdk.so
rm -rf /usr/local/lib/libntp.so
ps aux|grep "I2NvZGluZzogdXRmLTg"|grep -v grep|awk '{print $2}'|xargs kill -9
rm -rf /lib64/library1.so
rm -rf /usr/lib64/library1.so
rm -rf /lib64/library1.so
rm -rf /usr/lib64/library1.so
iptables -I OUTPUT -s 167.99.166.61 -j DROP
iptables -I INPUT -s 167.99.166.61 -j DROP
iptables -I OUTPUT -p tcp -m string --string "pastebin" --algo bm -j DROP
...
复制代码
解决问题后发现基本没有什么异常状况了,真正解决问题还要作一些安全防御相关的工做:web
这实在是一个不起眼的疏忽,却也是一次致命的错误,谁都不能想到我第一次接触虚拟货币竟是由于REDIS端口入侵,网络安全重要如斯,有理有据,使人信服。redis
共勉sql