> Linux安全 >

记录一次清除Linux挖矿病毒的经历(sysupdate, networkservice进程)

起因
闲来无事准备用服务器搭建个环境玩玩,连上服务器之后发现命令行卡的飞起,使用top看看cpu占用率,这里上前三截图。



 
sysupdate 系统更新??
networkservice 网络服务???
 
上阿里云管理控制台看看CPU占用率,占用率直接100%,再看看CPU以及内存的记录,已经被占领两三天了,阿里云也没有告警。
 


 
清除的过程
使用top已经知道了进程号,接下来看看位置,命令ls -l proc/{进程号}/exe

 
sysupdate、networkservice都在/etc/目录下
 
到etc下,除了sysupdate、networkservice 同时还有sysguard、update.sh,除了update.sh其余的都是二进制文件,应该就是挖矿的主程序以及守护程序了。
 
找到了源头update.sh,接下来分析下这个脚本。
 
。。。
 
 
恩。。。我们有时间再写分析过程,这里先直接给出解决方案。
 
删除定时任务
rm /var/spool/cron/root 或crontab -r

 
杀掉进程 删除文件
首先杀进程,kill -9 {进程号},然后删除文件
直接删除sysupdate你会发现无法删除,因为一般病毒会使用chattr +i命令,我们使用chattr -i sysupdate,然后再 rm -f sysupdate 即可正常删除。
同理删除networkservice、sysguard、update.sh、config.json。
/root/.ssh/authorized_keys 删除或修复
如果你被攻破的是root用户(或者被攻破的用户权限较大),你可能还需要
 
修复SELinux
病毒脚本首先就会尝试关闭SELinux子系统,我们可以使用getenforce命令查看SELinux状态。
如果你想要重新打开,可以修改/etc/selinux/config文件将SELINUX=disabled改为SELINUX=enforcing,然后重新启动服务器。
wget命令和curl命令会被改为wge和cur,这样用着很变扭,改回来
mv /bin/wge /bin/wget
mv /bin/cur /bin/curl
mv /usr/bin/wge /usr/bin/wget
mv /usr/bin/cur /usr/bin/curl
 

 
恢复防火墙配置
这里给出病毒脚本修改的iptables配置的语句,方便读者修复
iptables -F
iptables -X
iptables -A OUTPUT -p tcp --dport 3333 -j DROP
iptables -A OUTPUT -p tcp --dport 5555 -j DROP
iptables -A OUTPUT -p tcp --dport 7777 -j DROP
iptables -A OUTPUT -p tcp --dport 9999 -j DROP
iptables -I INPUT -s 43.245.222.57 -j DROP
service iptables reload
 

 
如果你的iptables策略确定被清除并且修改了,那直接清空并重新配置即可。

(责任编辑:IT)