[HTB] 靶机学习(十四)Puppy
字数 1632 2025-08-29 22:41:32
HTB靶机Puppy渗透测试教学文档
1. 初始信息收集
1.1 端口扫描
使用Nmap进行初始扫描:
nmap -sC -sV 10.10.11.70
1.2 服务枚举
- 尝试使用evil-winrm登录失败
- 枚举SMB共享目录,发现主机名为DC
- 发现DEV目录但无访问权限
2. 域信息收集与分析
2.1 AS-REP Roasting攻击
尝试AS-REP roasting爆破,未找到突破点
2.2 BloodHound域分析
使用bloodhound-python收集域信息:
bloodhound-python -d puppy.htb -u <username> -p <password> -c All -ns 10.10.11.70
分析发现:
- LEVI.JAMES用户对DEVELOPERS组有GenericWrite权限
- DEVELOPERS组可能拥有DEV目录的访问权限
3. 权限提升
3.1 滥用GenericWrite权限
将当前用户添加到DEVELOPERS组:
# PowerShell命令添加用户到组
Add-ADGroupMember -Identity DEVELOPERS -Members <current_user>
3.2 访问DEV共享
成功获取DEV目录访问权限后,下载文件
4. KeePass密码破解
4.1 破解KeePass数据库
发现recovery.kdbx文件,使用KeePass4Brute工具破解:
python keepass4brute.py -f recovery.kdbx -w <wordlist>
成功获取密码:liverpool
4.2 提取凭证
使用KeePassXC打开数据库,获取以下凭证:
- ant.edwards@puppy.htb:Antman2025!
- 注意到adam.silver用户被禁用
5. 用户权限滥用
5.1 分析用户权限
- ant.edwards属于SENIOR DEVS组
- SENIOR DEVS组对adam.silver用户有GenericAll权限
- adam.silver属于Remote Management Users组
5.2 启用并控制adam.silver用户
- 启用被禁用的adam.silver用户
- 修改用户所有者
- 尝试修改密码时遇到"密码最短修改周期"限制
5.3 绕过密码策略
使用脚本修改pwdLastSet时间戳:
python pwdlastsetChange.py
然后成功修改adam.silver用户的密码
6. 获取初始访问权限
6.1 使用evil-winrm登录
evil-winrm -i 10.10.11.70 -u adam.silver -p <new_password>
在桌面获取第一个flag:f92b167a96a599e4678cacc5faf8a2d4
7. DPAPI凭证提取
7.1 运行winPEAS收集信息
发现DPAPI主密钥和相关凭证
7.2 设置FTP传输
- 编辑vsftpd配置文件:
vim /etc/vsftpd.conf
- 通过FTP传输DPAPI相关文件
7.3 解密DPAPI凭证
- 解密masterkey
- 尝试解密桌面DPAPI文件和CREDHIST文件
注意:环境问题可能导致解密失败,可能需要重启环境
8. 最终提权
8.1 发现备份文件
在根目录找到backup文件夹,内含压缩包,解压后获取凭证
8.2 正确解密DPAPI
- 确认正确的SID目录:
S-1-5-21-1487982659-1829050783-2281216199-1107 - 成功破解masterkey
- 获取具有system权限的用户凭证
8.3 获取管理员权限
使用获取的凭证登录,在Administrator桌面找到第二个flag:740f431b22d42c687aac3be56b9eaec5
9. 关键工具总结
- BloodHound:用于分析域内权限关系
- KeePass4Brute:破解KeePass数据库
- evil-winrm:Windows远程管理工具
- winPEAS:Windows权限提升评估脚本
- DPAPI解密工具:提取Windows保存的凭证
10. 技术要点总结
- 通过BloodHound发现GenericWrite权限滥用路径
- 利用组权限关系横向移动
- 绕过Active Directory密码策略限制
- DPAPI凭证提取技术
- 从备份文件中发现敏感信息
11. 防御建议
- 限制GenericWrite等敏感权限的分配
- 实施严格的密码策略并监控异常修改
- 保护KeePass等密码数据库文件
- 定期审计域内权限关系
- 妥善保管DPAPI相关密钥
- 避免在备份中包含明文凭证