这两天实验室电脑中度了,无故被占用50%cpu挖矿,且运行任何程序都会killed。
运行原理类似于,自动网上下载挖矿程序,然后rm删除程序,让你无从找到程序,有时候还会用ld.so.preload伪装,使你看不到占用资源的挖矿程序名称,在试了各种办法后,最有效的如下:
一、杜绝恶意IP访问
执行netstat查询外部ip,
1 $ netstat -ant
发现来自于荷兰的一个ip:
1 45.153.184.134
禁用ip:
1 $ iptables -I INPUT -s 45.153.0.0/16 -j DROP 2 # 保存规则 3 $ iptables-save > /etc/sysconfig/iptables 4 # 使规则生效 5 $ iptables -L
这样就禁止了此ip的访问。
有时,黑客会利用自启动程序在开机时对iptables进行修改,所以需要事先对iptables进行清空,在此,记录下重写iptables的过程。
清除所有规则:
1 $ iptables -F 2 $ iptables -X 3 $ iptables -Z
添加一些常用端口:
1 #允许本地回环接口(即运行本机访问本机) 2 $ iptables -A INPUT -i lo -j ACCEPT 3 # 允许已建立的或相关连的通行 4 $ iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT 5 #允许所有本机向外的访问 6 $ iptables -A OUTPUT -j ACCEPT 7 # 允许访问22,21,20,80端口 8 $ iptables -A INPUT -p tcp --dport 22 -j ACCEPT 9 $ iptables -A INPUT -p tcp --dport 21 -j ACCEPT 10 $ iptables -A INPUT -p tcp --dport 20 -j ACCEPT 11 $ iptables -A INPUT -p tcp --dport 80 -j ACCEPT 12 # 允许127.0.0.1 13 $ iptables -A INPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT 14 $ iptables -A OUTPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEP 15 # 16 $ iptables -A OUTPUT -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT 17 $ iptables -A OUTPUT -p tcp --sport 80 -m state --state ESTABLISHED -j ACCEPT 18 #允许ping 19 $ iptables -A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT 20 #运行自己指定的网段 21 $ iptables -A INPUT -p tcp -s 172.16.0.0/16 --dport 22 -j ACCEPT 22 #禁止其他未允许的规则访问 23 $ iptables -A INPUT -j REJECT #(注意:如果22端口未加入允许规则,SSH链接会直接断开。) 24 $ iptables -A FORWARD -j REJECT
查看网络通信,查找异常IP:
1 $ netstat -ant 或者 netstat -antp
禁止挖矿网段:
1 $ iptables -I INPUT -s 198.251.0.0/16 -j DROP 2 $ iptables -I INPUT -s 45.153.0.0/16 -j DROP
3 $ iptables -I INPUT -s 54.38.193.170 -j DROP
只允许内网网段:
1 $ iptables -A INPUT -p tcp -s 172.16.0.0/16 --dport 22 -j ACCEPT
到此,规则就重写完成,记得保存规则生效:
1 $ iptables-save > /etc/sysconfig/iptables 2 $ iptables -L
设置iptables开机启动:
1 $ chkconfig --level 345 iptables on
2 $service iptables save
二、删除挖矿病毒源程序
可以参考https://blog.csdn.net/weixin_45284355/article/details/110728620 这篇博客,跟我遇到的问题几乎一样。
在 /bin/ 下找到 sysdrr 挖矿源病毒程序,并删除!
同时也可以使用 find / -name sysdrr 全盘查找源病毒程序,并删除!
在 /etc/cron.monthly/ , /etc/cron.weekly/ , /etc/cron.daily/ , /etc/cron.hourly/ 这些定时目录里找到sync程序并删除!
用 crontab -l 查看定时任务并删除所有异常定时任务。
上述sysdrr和sync直接删除不了,就需要先用 chattr -R -i /bin/sysdrr 和 chattr -R -i /bin/sync ,在用 rm -f 删除!
这样就解决了挖矿病毒的问题。
至此,我们就成功啦!!