【待做】【整理】【域渗透系列】跨森林:Extra SID攻击

news/2024/9/12 23:21:13/文章来源:https://www.cnblogs.com/o-O-oO/p/18373518

本文选自《内网安全攻防:红队之路》

由于微软将森林信任设计为安全边界,在默认情况下,即使我们完全控制了当前森林,也可能无法入侵其他受信任的森林(trusted forest)。

下面介绍在非默认条件下(但也比较常见),如何入侵一个受信任的森林。

在《内网安全攻防:渗透测试实战指南》(第1版)里面介绍过如何利用域信任密钥入侵另一个域。
同样,这个技术也可以应用到森林信任。

但是需要注意的是,森林信任引入的SID filtering(SID过滤的概念)。在森林信任里面,ExtraSIDs字段的内容被过滤掉了。

例如,我们可以重复先前的攻击,在ms08067.cn创建一个TGT,在ExtraSIDs声明我们是ms08067.hk的企业管理员组成员。

当TGT(由森林间的信任密钥签名)到达ms08067.hk的域控时,会将ExtraSID记录移除,然后返回我们一个TGS。所以之前的攻击方法无效。

我们可以先测试一下。

登录ms08067.cn的域的主机,然后以域管理员权限打开一个cmd,利用获取krbtgt的hash:

lsadump::dcsync /domain:ms08067.cn /user:ms08067\krbtgt

【图】获取krbtgt hash

然后我们使用PowerView获取源域和目的域的SID:

Get-DomainSID -Domain ms08067.cn
Get-DomainSID -Domain ms08067.hk

【图】获取域SID

接下来我们创建一个黄金票据,在ExtraSID里面声明我们是企业管理员组:

kerberos::golden /user:hack /domain:ms08067.cn /sid:S-1-5-21-3754008493-3899165825-827219704 /krbtgt:caedeb0d26c68286514242359f780ad1 /sids:S-1-5-21-187469462-2874609549-2714275389-519 /ptt

【图】创建黄金票据

验证票据的有效性,可以看到因为SID过滤,黄金票据没有起作用:

【图】验证票据有效性

虽然在Active Directory Domains and Trusts管理图形界面没有显示,但我们实际上可以放松SID过滤保护。
但是,在实际生产环境,为什么会降低安全级别,使得一个森林被入侵可能影响另一个森林❓

我们假设"ms08067.cn"企业收购了" ms08067.hk"企业。两个企业都有活动目录基础设施,现在需要合并。
一种方法是将ms08067.hk的所有用户和服务都移到ms08067.cn。

用户帐户可能相对容易移动,但是服务器和服务可能存在一些问题。因此,可能有必要允许被迁移的用户访问其旧森林中的服务。SID history被设计来解决这个问题,在迁移期间,ms08067.hk将禁用SID过滤功能。

此外,在现实环境中,这种迁移往往需要很多年的时间,或者可能永远都不会完成,使森林信任在很长一段时间内都启用SID历史。

在未启用SID历史之前,我们看看信任对象的属性:

Get-DomainTrust -Domain ms08067.hk

【图】启用SID历史前对象属性

在启用SID history后,TrustAttributes的值将会改变。
要启用SID history,我们首先需要以administrator登录ms08067.hk的域控,然后使用netdom的trust子命令启用SID历史:

netdom trust ms08067.hk /d:ms08067.cn /enablesidhistory:yes

【图】启用SID历史

当启用后,我们再次查看信任对象的属性:

【图】启用SID历史后对象属性

输出的TREAT_AS_EXTERNAL值,表明森林信任被视为外部信任,但具有正常森林信任的可传递性。

但此时,我们如果重复上述攻击步骤,还是无法成功。即使我们启用SID history,SID过滤仍然有效。微软规定,无论SID历史设置如何,任何RID小于1000的SID都会被过滤掉。

但是,对于外部信任,一个RID等于或者大于1000的SID不会被过滤。我们上面在启用了SID history后,看到森林信任被视为外部信任(external trust)。

非默认组的RID总是等于或者大于1000。如果我们能在ms08067.hk找到一个自定义的组,其组成员能让我们入侵一个账户或者主机,我们就可以把它作为进入另一个森林的入口点。

例如,我们枚举ms08067.hk内置管理员组成员:

Get-DomainGroupMember -Identity "Administrators" -Domain ms08067.hk

【图】内置管理员组成员枚举

从上图输出可以看到,IRTeam组是内置管理员组成员,说明在ms08067.hk的域控上有本地管理员权限。此外,RID(1108)大于1000。

然而,还有一点需要注意。如果我们尝试利用的自定义组是global security group如Domain Admins或者Enterprise Admins,访问也会被过滤。

我们这里的例子中,内置的Administrators组是域本地组,所以我们可以利用获得另一个森林的权限。

修改黄金票据命令包含IRTeam的SID:

kerberos::golden /user:hack /domain:ms08067.cn /sid:S-1-5-21-3754008493-3899165825-827219704 /krbtgt:caedeb0d26c68286514242359f780ad1 /sids:S-1-5-21-187469462-2874609549-2714275389-1108 /ptt

【图】修改黄金票据

将票据注入内存后,我们使用PsExec进行测试,可以看到成功获得ms08067.hk的权限:

【图】PsExec测试跨森林黄金票据

上面的例子比较简单,但说明了整个攻击思路。
虽然依赖于管理员误配置,但是作为渗透测试人员,在存在森林信任的环境中,我们应该始终检查SID过滤。

原创 Ms08067实验室

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

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

相关文章

织梦dedecms主页在哪个文件

DedeCMS的首页模板文件位置:/templets/default/index.html。其中default文件夹是默认的,如果你用的是其他模版,在后台可以查看的,进入后台>系统>系统基本参数>模板默认风格,后面的default就是当前使用的模板,首页文件就在这里面。 织梦内容管理系统(DedeCms) 以…

织梦DedeCMS关键词怎么替换

//高亮专用, 替换多次是可能不能达到最多次 function _highlight($string, $words, $result, $pre) {global $cfg_replace_num;$string = str_replace(", ", $string);uasort($words,create_function($a, $b,return strlen($a)>strlen($b);));扫码添加技术【解决问…

结构开发笔记(五):solidworks软件(四):绘制36x36方块摄像头基座

前言绘制36x36方块摄像头模型中的方块摄像头。  本篇描述详细绘制方法。 摄像头结构 绘制摄像头结构分析结构零件分为三块区域,线绘制固定底座,对应区域2   绘制方块摄像头步骤一:新建零件打开软件  创建零件:  步骤二:绘制固定底座的底座拉伸凸台,选择上视基准面…

RSS 教程完结

完结撒花🎉🎉🎉完结撒花🎉🎉🎉 都到了 4202 年了,居然还有人在用 RSS,甚至还有人在写 RSS 教程,真是不可思议🤔 就先写到这了,当然如果有新学到什么技巧,或看到一些好用的 RSS 阅读器,也还是会更新的。 参考了无数的文章/教程,才有了本系列教程,非常感谢…

【待做】【整理】【横向移动】探测 存活主机篇

免责声明 此文所提供的信息只为网络安全人员对自己所负责的网站、服务器等(包括但不限于)进行检测或维护参考,未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作。利用此文所提供的信息而造成的直接或间接后果和损失,均由使用者本人负责。本文所提供的工具仅用…

Prometheus+Grafana监控Mysql数据库

安装配置 Prometheus是Go语言编写的,所以仅依赖二进制编译库,从官网根据操作系统下载对应的二进制库:https://prometheus.io/download/ 解压到/usr/local/prometheus目录下 tar -xzvf prometheus-2.45.2.linux-amd64.tar.gz mv prometheus-2.45.2.linux-amd64 /usr/local/pr…

1-数据操作数据

torch.cat操作广播机制tensor和numpy的转换对NA数据的处理

SOA架构开发小助手PAVELINK.SOA-Converter V1.4.2新版本发布

PAVELINK.SOA-Converter转换工具,用于衔接基于SOA的控制器设计、开发及测试过程中所常见的各类软件工具。PAVELINK.SOA-Converter能提供IDL及服务矩阵等文件的语法及规则检查,自动化完成多种不同格式IDL文件之间的转换,以及其它常用的各类型格式文件转换。PAVELINK.SOA-Conv…

Mysql锁查看

查看InnoDB的锁情况 SHOW ENGINE INNODB STATUS;命令会返回一个包含详细InnoDB引擎状态的报告,其中包含当前锁的详细信息。在输出的 LATEST DETECTED DEADLOCK 部分找到死锁信息,并在 TRANSACTIONS 部分找到当前的锁等待信息。 查看 MyISAM 锁情况 -- 方法一: 查看表锁 SHOW …

GPT4SM论文阅读笔记

Are GPT Embeddings Useful for Ads and Recommendation?论文阅读笔记 Abstract 现存的问题: ​ 尽管 LLMs 潜力巨大,但关于其文本嵌入是否能帮助广告和推荐服务的讨论却十分有限。 提出方法: ​ 为了探索 GPT 嵌入在广告和推荐中的应用,我们提出了三种策略,将 LLMs 的知…

题解:P10892 SDOI2024

题解:P10892 SDOI2024 题目传送门 题目思路 通过阅读题面,我们可以看出,其实对于每一次纠结,如果交出了 \(\frac{n-1}{2}\) 只猫猫,则剩下的为 \(\frac{n+1}{2}\) 只猫猫;如果交出了 \(\frac{n+1}{2}\) 只猫猫,则剩下的为 \(\frac{n-1}{2}\) 只猫猫。 为了使纠结的次数尽…

转载方法

博客园:搜cnblogsCSDN:搜article_content