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

同时发布:https://notes.daiyuhe.com/clear-linux-mining-virus/

起因

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


cpu

sysupdate 系统更新??
networkservice 网络服务???

上阿里云管理控制台看看CPU占用率,占用率直接100%,再看看CPU以及内存的记录,已经被占领两三天了,阿里云也没有告警。

cpu_used

清除的过程

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


pid

sysupdate、networkservice都在/etc/目录下

到etc下,除了sysupdate、networkservice 同时还有sysguard、update.sh,除了update.sh其余的都是二进制文件,应该就是挖矿的主程序以及守护程序了。

找到了源头update.sh,接下来分析下这个脚本。

。。。
。。。

恩。。。我们有时间再写分析过程,这里先直接给出解决方案。

  1. 删除定时任务
    rm /var/spool/cron/root 或crontab -r
    
  2. 杀掉进程 删除文件
    首先杀进程,kill -9 {进程号},然后删除文件
    直接删除sysupdate你会发现无法删除,因为一般病毒会使用chattr +i命令,我们使用chattr -i sysupdate,然后再 rm -f sysupdate 即可正常删除。
    同理删除networkservice、sysguard、update.sh、config.json。
  3. /root/.ssh/authorized_keys 删除或修复

如果你被攻破的是root用户(或者被攻破的用户权限较大),你可能还需要

  1. 修复SELinux
    病毒脚本首先就会尝试关闭SELinux子系统,我们可以使用getenforce命令查看SELinux状态。
    如果你想要重新打开,可以修改/etc/selinux/config文件将SELINUX=disabled改为SELINUX=enforcing,然后重新启动服务器。
  2. 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
    
  3. 恢复防火墙配置
    这里给出病毒脚本修改的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策略确定被清除并且修改了,那直接清空并重新配置即可。

你可能感兴趣的:(记录一次清除Linux挖矿病毒的经历(sysupdate, networkservice进程))