利用链的样子
Redis 未授权访问或弱口令被利用后,攻击者常用 CONFIG SET 修改工作目录与文件名,把 SSH 公钥或计划任务写入系统,随后植入挖矿程序维持收益。
处置的三件事
一是清掉被写入的密钥与任务,二是收紧 Redis 配置与网络暴露面,三是确认挖矿进程及其持久化点已彻底清除。只做其中一件都会留下复发条件。
基本信息
| 入口 | 6379 暴露在公网且无认证或弱口令 |
|---|---|
| 利用动作 | CONFIG SET dir 与 dbfilename 写文件、写 authorized_keys |
| 核查命令 | config get dir、config get dbfilename、keys * |
| 加固项 | requirepass、bind 127.0.0.1、protected-mode yes |
| 关联位置 | 被写入的 authorized_keys 与 crontab |
| 版本差异 | 部分版本对危险配置有限制,判断以实际输出为准 |
典型使用场景
- 处置由 Redis 未授权导致的入侵
- 确认被写入了哪些文件与密钥
- 清理挖矿程序与相关持久化
- 加固 Redis 配置与网络访问控制
- 复盘时说明完整的利用链
核查 Redis 状态与落点
核查 Redis 状态与落点
redis-cli ping
redis-cli config get dir; redis-cli config get dbfilename
redis-cli keys '*' | head -n 20
redis-cli info server | head -n 20
cat /root/.ssh/authorized_keys 2>/dev/null
crontab -l 2>/dev/null; cat /etc/cron.d/* 2>/dev/null | head输出逐列读法
| 输出项 | 含义 | 正常/异常 |
|---|---|---|
| ping 响应 | 是否可无认证访问 | 直接返回 PONG 说明认证未启用 |
| dir 与 dbfilename | 写文件的落点 | 指向 .ssh 或 cron 目录即为被利用迹象 |
| keys 内容 | 库中的数据键 | 出现脚本内容或公钥说明被用于写文件 |
| authorized_keys | 授权公钥列表 | 出现未知公钥需立即清理 |
重启或关闭 Redis 之前先记录 config 与 key 内容:这是判断被写入哪些文件的直接依据,事后无法补查。
加固不只是设密码:绑定内网地址、配置访问控制与防火墙限制、必要时改名或禁用危险命令,才能避免同类利用再次成功。
加固后的验证
- 确认认证已启用且口令强度足够
- 确认仅监听内网地址或受信任网段
- 确认防火墙不允许公网直接访问该端口
- 复扫确认没有挖矿进程与新增持久化点
处置顺序
- 记录 Redis 配置与键值内容
- 清理被写入的密钥与计划任务
- 重启 Redis 并加固配置
- 核查挖矿进程与全部持久化点
- 复扫确认无残留并观察一段时间