服务器被入侵挖矿处理

 http://www.freebuf.com/column/158065.html

redis 6379默认端口、绑定所有IP(便于远程开发)、没有加密、使用root启动redis,被扫描到那是自然的事。

借助于redis的持久化功能将病毒脚本写入到系统的各个角落并执行,比如定时任务crontab,比如

redis 可以把缓存内容写入本地文件的漏洞,他就可以随便在服务器的 /root/.ssh/authorized_keys

文件中写入公钥,在用本地的私钥去登陆被写入公钥的服务器,就无需密码就可以登陆,登录之后就开始定期执行计划任务,下载脚本,还可以利用
masscan 进行全网扫描redis 服务器 6379 的端口,寻找下一个个肉鸡,如果你的 redis
端口是默认6379,并且还没有密码保护,很容易就被攻破解,最后也就是说这个脚本会迅速在全网裂变式增加。

 

 

 

  masscan 是最快的互联网端口扫描器,最快可以在六分钟内扫遍互联网。

 

解决步骤:

1、清除定时任务

crontab  -r

2、找到minerd程序:

find / -name minerd*

去掉执行权限

chmod -x XXX minerd

杀掉进程,kill或pkill随你喜欢

pkill minerd

pkill AnXqV

清除文件

删除可疑文件:

find / -name pnscan # 查找并删除对应目录

rm -rf /tmp/Aegis-\<Guid5A2C30A2−A87D−490A−9281−6765EDAD7CBA\> 
rm -rf /usr/local/aegis/Aegis-\<Guid5A2C30A2−A87D−490A−9281−6765EDAD7CBA\> 

清除未知的授权

进入 ~/.ssh/目录,发现多个异常文件,包括authorized_keys、known_hosts等,需要移除authorized_keys中的未知授权,这里可以看到有REDIS000…的授权key

rm -rf /var/spool/cron

清除/root/.ssh/目录下的对应密匙

rm -fr /root/.ssh/*

./redis-cli shutdown(关闭redis)

参数:
-f:强制删除,忽略不存在的文件,从不给出提示。
-i:交互模式删除文件,删除文件前给出提示。
-r:递归的删除目录下面文件以及子目录下文件。
-R:递归的删除目录下面文件以及子目录下文件。
-v:显示运行时详细信息

 

 

1.禁止一些高危命令

  • 服务精细化授权

修改 redis.conf 文件,添加

rename-command FLUSHALL ""
rename-command CONFIG   ""
rename-command EVAL     ""

来禁用远程修改 DB 文件地址

2.以低权限运行 Redis 服务

  • 服务运行权限最小化

1.修改Redis服务运行账号 (需要重启redis才能生效)请以较低权限账号运行Redis服务,并禁用该账号的登录权限。以下为创建一个无home目录和无法登陆的普通权限账号:

useradd -M -s /sbin/nologin [username]

 useradd -s /sbin/nologin -M -g redis redis

-s表示指定用户所用的shell,此处为/sbin/nologin,表示不登录。
-M表示不创建用户主目录。
-g表示指定用户的组名为redis
最后的redis表示用户名。

 

为 Redis 服务创建单独的用户和家目录,并且配置禁止登陆

3.为 Redis 添加密码验证

修改 redis.conf 文件,添加

requirepass mypassword

4.禁止外网访问 Redis

修改 redis.conf 文件,添加或修改

bind 127.0.0.1

使得 Redis 服务只在当前主机可用

posted @ 2018-08-14 14:33  南望孤笑  阅读(2940)  评论(0编辑  收藏  举报