服务器被植入挖矿程序

在阿里云管控台看到有两台服务器cpu使用率一直在100左右,而平时只有不到1

解决1:

连到服务器,top命令发现wipefs进程占用大量cpu资源,先kill掉该进程,再删除一些文件,具体参考https://www.cnblogs.com/liuchuyu/p/7490338.html,删除时可能遇到Operation not permitted,一般是文件属性为 —i———-,先chattr -i 文件名,再删除(https://www.linuxidc.com/Linux/2007-12/10102.htm
3台linux服务器,被植入的这台装了redis,猜测可能是redis端口存在安全,修改redis.conf里的端口(port),密码(requirepass),这里我拷贝了原redis.conf文件,修改端口为5867并命名为redis5867.conf。启动时src> ./redis-server ../redis5867.conf ,启动后连接时若出现DENIED Redis is running in protected mode because protected mode is enabled…, src> ./redis-cli, config set requirepass 密码(注意:更换端口,之前的数据会不可用,需提前备份)

解决2:

一、通过top命令找不到占用大量cpu资源的进程, 将 cpu 占用率高的线程找出来:
ps H -eo user,pid,ppid,tid,time,%cpu,cmd –sort=%cpu(cpu使用率从低到高排列)
这里写图片描述

二、Linux在启动一个进程时,系统会在/proc下创建一个以PID命名的文件夹,在该文件夹下会有我们的进程的信息,其中包括一个名为exe的文件即记录了绝对路径,通过ll或ls –l命令即可查看。

ll /proc/PID

cwd符号链接的是进程运行目录;

exe符号连接就是执行程序的绝对路径;

cmdline就是程序运行时输入的命令行命令;

environ记录了进程运行时的环境变量;

fd目录下是进程打开或使用的文件的符号连接。
这里写图片描述

三、cd /usr/lib
这里写图片描述
挖矿程序无疑了,直接删除
这个是redis改端口密码后发生的,百度了一下,黑客利用了redis的一个漏洞获得了服务器的访问权限,http://blog.jobbole.com/94518/,然后就注入了病毒

下面是解决办法和清除工作

1. 修复 redis 的后门,

  1. 配置bind选项, 限定可以连接Redis服务器的IP, 并修改redis的默认端口6379(见上)。实际操作中发现bind只要启用,redis启动不起来,有人说是bind ip不对https://blog.csdn.net/kang123488/article/details/78498278,redis bind表示的是指定本机可以接受连接的网卡地址,redis.conf中的bind功能并不是想象中的限制IP访问,而是绑定本机IP:端口,bind设置了监听哪个IP,所以,client 与 server不在同一内网的话,无法通过bind配置项来实现安全连接(最终未配置bind
  2. 配置AUTH, 设置密码, 密码会以明文方式保存在redis配置文件中。conf中设置requirepass
  3. 配置rename-command CONFIG “RENAME_CONFIG”, 这样即使存在未授权访问, 也能够给攻击者使用config指令加大难。对redis命令改名,如 rename-command set sets,那么设置string key的命令就变成sets xx,在上面链接中发现黑客会使用config命令,项目中用不上该命令,可以改名,rename command CONFIG mhfgmksfbhksjbfkdjnf234892hiukjbhnkj。
  4. 好消息是Redis作者表示将会开发”real user”,区分普通用户和admin权限,普通用户将会被禁止运行某些命令,如conf

2. 打开 ~/.ssh/authorized_keys, 删除你不认识的账号。

下图该hostname并不是三台服务器中的一台,其他两台未被挖矿的服务器authorized_keys文件里是空,所以也清空
这里写图片描述

3. 查看你的用户列表

,是不是有你不认识的用户添加进来。 如果有就删除掉.cat /etc/passwd。看不懂,不知道创建时间不知道哪个是被挖矿前后创建的,aureport -au|grep 用户名
这里写图片描述

自己再对iptables进行了远程登录ip白名单限制。

1.service iptables status 查看服务状态,下面显示的端口开放情况
这里写图片描述
2.设置白名单,vim /etc/hosts.allow ,增加如下内容 sshd:183.14.*.*:allow (公司的外网ip后两位经常改变)
3.设置限制名单,vim /etc/hosts.deny ,增加如下内容 sshd: ALL(即限制全部,当有ip尝试远程连接时,该ip若在allow中,则直接登录,如不在,查看deny,若在deny中,拒绝登录)
4.重启sshd服务: service sshd restart
**

改完后三周多了,没有再发生类似挖矿植入事件

**

猜你喜欢

转载自blog.csdn.net/Fight_Rain/article/details/80652254