春秋云境 MagicRelay WP
字数 2196 2025-08-29 08:30:24
Redis DLL劫持与域渗透实战:从Redis未授权到域控提权
1. 知识点概述
本实战案例涉及以下关键知识点:
- Redis DLL劫持攻击
- 向日葵远程代码执行(RCE)
- Pass the Certificate攻击技术
- CVE-2022-26923 (Certifried)域权限提升漏洞
- 内网渗透中的信息收集与横向移动
2. 工具准备
- Certipy: 用于AD CS攻击 GitHub - ly4k/Certipy
- 向日葵RCE工具: GitHub - Mr-xn/sunloginrce
- SweetPotato: 本地提权工具
- Stowaway: 内网代理工具
- Fscan: 内网扫描工具
- SharpHound: 域信息收集工具
3. Flag01获取:Redis DLL劫持
3.1 信息收集与Redis未授权访问
- 发现Redis 3.x版本运行在Windows Server 2019上
- 确认Redis未授权访问漏洞存在
- 尝试常见利用方式:
- 主从同步:Redis 3.x不支持
- 写计划任务/公钥:Linux特有方式
- 写webshell:80端口未开放
- 写启动项:需要重启服务器
- 写入MOF:仅适用于Win2003
3.2 DLL劫持攻击实施
-
获取Redis安装路径:
info返回路径:
C:\Program Files\Redis\redis.windows-service.conf -
准备恶意DLL:
- 从本地system32提取
dbghelp.dll(建议使用WinServer 2019 build 17763版本) - 使用修改版的dllHijack脚本生成Visual Studio项目文件
- 使用VS2019打开项目(VS2022兼容性未测试)
- 从本地system32提取
-
生成CS Payload:
- 在Cobalt Strike中生成C格式的shellcode
- 替换VS项目中的
dllmain.cpp内容为生成的shellcode - 选择
Release x64配置生成DLL文件
-
上传并执行攻击:
- 将生成的DLL和
RedisWriteFile.py上传到VPS - 开放VPS的16379端口
- 执行脚本将恶意DLL写入目标Redis服务器
- 将生成的DLL和
-
获取Flag:
- 成功上线CS后,直接以本地管理员权限获取flag01
4. Flag02获取:内网横向移动
4.1 权限提升与内网代理
-
SweetPotato提权:
- 检查当前权限:
whoami /priv - 确认有
SeImpersonatePrivilege权限 - 上传并执行SweetPotato进行提权
- 检查当前权限:
-
内网代理搭建:
- 使用Stowaway建立内网代理通道
- 通过代理进行内网扫描和信息收集
4.2 向日葵RCE利用
-
内网扫描发现:
- 使用Fscan扫描发现172.22.12.31主机安装向日葵
- 确认向日葵版本较低,存在RCE漏洞
-
执行攻击:
- 使用
sunloginrce工具直接获取flag02 - 注意:该主机未加入域,无需上线CS
- 使用
5. Flag03获取:域渗透与权限提升
5.1 域信息收集
-
SharpHound收集:
- 以系统权限执行SharpHound收集域信息
- 重点关注CA服务器和域控信息
-
BloodHound分析:
- 上传收集的数据到BloodHound
- 分析发现CA服务器:172.22.12.12
- 确认CA名称为:
xiaorang-WIN-AUTHORITY-CA
5.2 CVE-2022-26923 (Certifried)利用
-
漏洞原理:
- 通过AD CS请求具有任意DNS主机名的计算机证书
- 使任何计算机帐户可模拟域控制器
- 实现完全的域接管
-
攻击步骤:
- 使用抓取的机器账号hash(WIN-YUYAOX9Q$)
- 创建新的机器账号用于冒充域管
- 申请伪造的计算机证书
-
遇到的问题:
- 报错"KDC_ERR_PADATA_TYPE_NOSUPP"
- 原因:获取的证书缺少智能卡登录EKU
5.3 Pass the Certificate攻击
-
提取密钥与证书:
- 从失败的Certifried攻击中提取有效部分
-
配置RBCD:
- 将证书配置到域控的基于资源的约束委派(RBCD)
-
申请服务票据:
- 申请cifs服务的服务票据(ST)
- 导入票据进行传递票据攻击(PTT)
5.4 最终权限获取
-
SAM转储:
- 获取域控的SAM数据库
-
密码喷涂:
- 对收集的哈希进行密码喷射攻击
-
SMB访问:
- 使用获取的凭证通过SMB访问域控
- 最终获取flag03
6. 关键注意事项
-
DLL版本匹配:
- 确保使用的dbghelp.dll与目标系统版本匹配
- 不同Windows版本可能导致攻击失败
-
Certipy使用技巧:
- 注意证书的EKU属性
- 准备好备用方案如Pass the Certificate
-
内网代理稳定性:
- 确保代理通道稳定,避免扫描过程中断
-
时间同步问题:
- 域渗透中确保所有机器时间同步
- Kerberos攻击对时间敏感
-
日志清理:
- 渗透完成后注意清理痕迹
- 特别是AD CS和域控上的操作日志
本教学文档详细记录了从Redis未授权访问到最终域控提权的完整过程,涵盖了Windows DLL劫持、内网横向移动和高级域渗透技术。实施时请确保获得合法授权,并注意操作的隐蔽性和日志清理。