高等域渗入手艺之再谈Kerberoast进击 | 申博官网
登录
  • 欢迎进入申博官网!
  • 如果您觉得申博官网对你有帮助,那么赶紧使用Ctrl+D 收藏申博官网并分享出去吧
  • 这里是申博官方网!
  • 申博官网是菲律宾sunbet官网品牌平台!
  • 申博开户专业品牌平台!

高等域渗入手艺之再谈Kerberoast进击

申博_安全防护 申博 90次浏览 未收录 0个评论

申博网络安全巴士站

申博-网络安全巴士站是一个专注于网络安全、系统安全、互联网安全、信息安全,全新视界的互联网安全新媒体。

————————————-

Rebeus是一个用C#编写Kerberos 滥用东西包,末了是由@gentilkiwi 编写的 Kekeo 东西包中的一个端口,这个东西包从那时起就在不断发展。要相识更多关于 Rubeus 的信息,请检察”从 Kekeo 到 Rubeus”这篇文章后续的”Rubeus ——Now With More keo”或近来订正的 Rubeus README.md。

我近来对 Rubeus 做了一些革新,个中包罗从新检察了它的 kerberos 完成。 这致使了对 Rubeus 的 Kerberoast 要领的一些修正,也诠释了我们之前在这个范畴看到的一些”新鲜”的行动。 由于 kerberos 是一种云云经常运用的手艺,如今我们已对它的细微差别有了更好的明白,因而我想深入研讨细节。

若是你不熟悉 Kerberoast,现有的大批信息可供你查阅,个中一些我在这篇文章的开首做过一些议论。 若是你对 Kerberos (或 Kerberos)的事情道理没有一个基础的相识,那末这篇文章的大局部内容对你来讲就没有甚么意义,以是若是你对这些观点觉得不舒服的话,我强烈推荐你多读一些相干的文章。 然则这里有一个关于 kerberos 实行历程的简短总结:

1. 进击者对一个域举行身份验证,然后从域掌握器效劳器取得一个票证授与票证(TGT) ,该票证授与票证用于今后的票证请求

2. 进击者运用他们的 TGT发出效劳票证请求(TGS-REQ) 猎取特定情势(sname/host)的 servicePrincipalName (SPN), 比方,MSSqlSvc/SQL.domain.com。此SPN在域中应当是独一的,并且在用户或计算机帐户的servicePrincipalName字段中注册。 在效劳票证请求(TGS-REQ)历程当中,进击者能够指定它们支撑的Kerberos加密范例(RC4_HMAC,AES256_CTS_HMAC_SHA1_96等等)。

3. 若是进击者的 TGT 是有用的,则 DC 将从 TGT 中提取信息并填充到效劳票证中。 然后,域掌握器查找哪一个帐户在 servicedprincipalname 字段中注册了所请求的 SPN。 效劳票证运用注册了所请求的 SPN 的帐户的哈希举行加密, 并运用了进击者和效劳帐户都支撑的第一流其余加密密钥。 票证以效劳票证复兴(TGS-REP)的情势发送回进击者。

4. 进击者从 TGS-REP 中提取加密的效劳票证。 由于效劳票证是用链接到请求 SPN 的帐户的哈希加密的,以是进击者能够离线破解这个加密块,规复帐户的明文暗码。

本文中我们将要提到的三种主要加密密钥范例分别是RC4_HMAC_MD5 (ARCFOUR-HMAC-MD5,个中帐户的 NTLM 散列函数作为密钥)、 AES128_CTS_HMAC_SHA1_96和 AES256_CTS_HMAC_SHA1_96。 为了简朴起见,我将它们称为 RC4、 AES128和 AES256。

别的,这里一切的例子都是在 Windows 10客户端上运转的,而Server 2012域掌握器是一个2012 R2的域功用级别。

Kerberoast 要领

Kerberos 一般接纳两种通用的要领:

· Kerberos 协定的一个自力完成,经由过程连接到收集上的装备运用,或许经由过程 SOCKS 署理将精心设计的流量作为输入。 比方 Meterpreter 或许Impacket。这须要一个域帐户的凭据来实行roasting,由于须要请求一个 TGT 在今后的效劳票证请求中运用。

· 在域连接的主机上运用内置的 Windows 功用(如.NET KerberosRequestorSecurityToken . Net kerberos / requestorsecuritytoken类)请求票证,然后运用Mimikatz 或Rubeus  从以后登录会话中提取票。别的一种可供挑选的要领是几年前@machosec 意想到GetRequest() 要领能够用来从 KerberosRequestorSecurityToken 中挖掘出效劳票证字节,这意味着我们能够摒弃运用 Mimikatz 来提取票证。 这类要领的另一个长处是,现有用户的 TGT 可用于请求效劳票证,这意味着我们不须要明文凭据或用户的散列来实行 kerberos 播送。

要应用Kerberoast,我们就真的须要 RC4加密范例的效劳票证相应,由于这比其他的 AES 加密范例更轻易被破解。若是我们在进击者一方完成了协定,我们就能够挑选在效劳票证请求历程当中指定我们只支撑 RC4,从而更轻易破遣散列花样。 在主机端,我曩昔认为 KerberosRequestorSecurityToken要领默许请求的是 RC4加密的票证,由于一般返回的就是这个,但实际上”一般”票证请求行动发作在一切支撑的暗码都获得支撑的状况下才会发作。 那末为何这类要领一般会返回 RC4哈希呢?

是时刻疾速绕道了。

msDS-SupportedEncryptionTypes

我们曩昔议论过的一个防备目的是”加密降级运动”。 由于古代域(功用级别在2008及以上)和计算机(vista / 2008 +)默许支撑在 Kerberos 交流中运用 AES 密钥,因而在任何 Kerberos 票证授与票证(TGT)请求或效劳票证请求中运用 RC4都应当黑白常的。 肖恩 · 梅特卡夫有一篇名为”检测 Kerberoast 进击运动”的优异文章,个中涵盖了怎样处置惩罚 DC 事宜来检测这类范例的进击行动,只管他指出”能够会涌现误报”。

为何这类要领会涌现误报的题目,这个题目的完全谜底也诠释了我多年来看到的一些运用 Kerberoast的”新鲜”行动。

为了申明这一点,假定我们有一个在其 servicePrincipalName (SPN)属性中注册了 MSSQLSvc/SQL.testlab.local 的用户帐户sqlservice 。 我们能够运用

powershell -C ”Add-Type -AssemblyName System.IdentityModel; $Null=New-Object System.IdentityModel.Tokens.KerberosRequestorSecurityToken -ArgumentList ‘MSSQLSvc/SQL.testlab.local”

为此 SPN 请求效劳票证。 但是,应用于以后登录会话的效果效劳票证指定运用 RC4,只管请求用户的(harmj0y) TGT 运用的是 AES256。

 高等域渗入手艺之再谈Kerberoast进击

如前所述,由于某种缘由,长期以来我认为 KerberosRequestorSecurityToken要领迥殊须要 RC4。 但是,看一下 Wireshark 从客户端捕捉的 TGS-REQ (Kerberos 效劳票证请求) ,我们能够看到一切恰当的加密范例(包罗 AES)都被指定为支撑:

高等域渗入手艺之再谈Kerberoast进击

正如我们所希冀的那样,返回的 TGS-REP (效劳票证应对)中的enc-part局部运用提议请求的客户端的 AES256密钥举行了恰当的加密。 但是,我们体贴的用于 Kerberoast 的 enc-part 局部(包罗在返回的效劳票证中)是用sqlservice帐户的 RC4密钥(而不是 AES 密钥)加密的:

高等域渗入手艺之再谈Kerberoast进击

究竟发作了甚么?

事实证明,这与 KerberosRequestorSecurityToken要领无关。 这个要领请求了一个由供应的 SPN 指定的效劳票证,如许它就能够构建一个包罗 SOAP 请求的效劳票证的 AP-REQ,我们能够在上面看到它实行的”一般”请求并声明它支撑 AES 加密范例。

这类行动是由于 msDS-SupportedEncryptionTypes 域对象属性引发的,Jim Shaver 和 Mitchell Hennigan 在他们的 DerbyCon——”Return From The Underworld: The Future Of Red Team Kerberos”演讲中谈到了这一点。 此属性是在[ MS-KILE ]2.2.7中界说的一个32位无标记整数,透露表现具有以下能够值的位字段:

高等域渗入手艺之再谈Kerberoast进击

依据微软的[ MS-ADA2]申明 ,”密钥分发中间(KDC)运用这些信息[ msDS-SupportedEncryptionTypes ]同时为这个帐户天生效劳票证。” 因而,纵然域支撑 AES 加密(即域功用在2008及以上) ,在请求的 SPN 注册的帐户上,msDS-SupportedEncryptionTypes 字段的值决议了 Kerberoast 流程中返回的效劳票证的加密级别。

依据 MS-KILE 3.1.1.5的申明,该字段在 Windows 7+ 和 Server 2008R2+上默许值分别是0x1C (RC4_HMAC_MD5 | AES128_CTS_HMAC_SHA1_96 | AES256_CTS_HMAC_SHA1_96 = 28)。 这就是为何机械的效劳票证险些老是运用 AES256的缘由,由于最高的且相互支撑的加密范例将用于 Kerberos 票证交流。 我们能够经由过程在Rubeus.exe klist 后实行dir \\primary.testlab.local\C$来确认这一效果:

高等域渗入手艺之再谈Kerberoast进击

然则,此属性仅在默许状况下设置在计算机帐户上,而不是在用户帐户上。 若是该属性没有界说,或许设置为0,[MS-KILE]3.3.5.7通知我们默许运用的值是0x7,这意味着将运用 RC4对效劳票证举行加密。 因而,在前面的例子中,注册到用户帐户 sqlservice的MSSQLSvc/SQL.testlab.local SPN中,我们收到的是运用 RC4加密的票证。

允许攻击者访问视频流:D-Link摄像头漏洞分析

概述 对于许多人来说,都希望通过安装“智能”摄像头,来提高家庭或办公室的安全性。一旦这些设备直接连接到互联网,只需点击几下,用户就可以轻松查看他们的监控视频流。然而,如果摄像头受到安全漏洞的影响,那么这种“便利性”将很快变成薄弱点,会给未经授权的攻击者打开大门。正如ESET智能家居研究团队的研究结果所显示的,D-Link DCS-2132L云端摄像头就正在面临这样的情况。该摄像头存在一系列安全漏洞,允许攻击者可以拦截并查看录制的视频,甚至还允许攻击者操纵设备的固件。 D-Link DCS-2132L云端摄像头最严重的问题在于视频流的

若是我们在运动目次的用户账户和计算机账户中挑选”This account supports AES [128/256] bit encryption”,那末 msDS-SupportedEncryptionTypes 就会被设置为24,并且指定只支撑 AES 128/256加密。

高等域渗入手艺之再谈Kerberoast进击

高等域渗入手艺之再谈Kerberoast进击

当我第一次研讨这个题目时,我假定这意味着既然 msDS-SupportedEncryptionTypes 值黑白空的,并且 RC4的标记位其实不存在,那末若是在为一个帐户请求效劳票证时(经由过程 /tgtdeleg 标记)只指定为 RC4,交流票证的时刻就会涌现毛病。

然则你猜怎么着? 我们依然获得一个 RC4(范例是23)加密的票证,我们能够破解这个票证!

高等域渗入手艺之再谈Kerberoast进击

经由过程Wireshark 抓包确认 RC4是请求中独一受支撑的 etype值,并且票证的 enc-part 实际上是用 RC4加密的。

¯\_(ツ)_/¯

我假定这是出于故障安全向后兼容的缘由,并且我在多个测试域中运转了这个场景,获得了雷同的效果。 但是,当我请求其他人复现时却没法做到这一点,以是我不确定我是不是遗漏了甚么,或许这是不是准确地反应了一般的域的行动。 若是任何人有更多关于这个的信息,或许不克不及复现,请通知我!

为何上述题目很主要? 由于若是那是真的的话,这就意味着在用户账户上禁用 RC4_HMAC 好像不是一个简朴的要领。 这意味着,纵然你运用 servicePrincipalName 字段设置了对用户帐户启用 AES 加密,这些帐户依然会运用对黑客友爱的 RC4举行加密,从而能够继承实行 Kerberoast进击!

经由一些测试,好像若是你运用这篇文章里形貌的要领在域或域掌握器级别禁用 RC4 ,那末为任何帐户请求 RC4效劳票证都将失利。 但是,TGT 请求也不再适用于 RC4。 由于这能够会致使许多器械涌现题目,以是在消费状况中做任何转变之前,一定要先在实验室状况中先实验举行相似的测试。

旁注: 还能够为透露表现域信托的 trustedDomain 对象设置 msDS-SupportedEncryptionTypes 属性,但它末了也是未界说的。 这就是为何内部域的信托票证终究默许运用的是 RC4:

高等域渗入手艺之再谈Kerberoast进击

但是,与用户对象一样,这类行动能够经由过程修正可托域对象的属性来转变,指定外部域支撑 AES:

高等域渗入手艺之再谈Kerberoast进击

这将可托域对象上的 msDS-SupportedEncryptionTypes 的值设置为24(AES128_CTS_HMAC_SHA1_96 | AES256_CTS_HMAC_SHA1_96) ,这意味着内部域将默许发出AES256加密的信托票证:

高等域渗入手艺之再谈Kerberoast进击

实验竖立一个更好的 Kerberoast

由于我们倾向于实行商定的体式格局,因而,我们经常会倾向于滥用基于主机的功用,而不是在来自进击者效劳器上的我们本身的协定完成中的管道。 我们经常在高耽误的敕令和掌握效劳器(C2)上操纵,以是关于像 Kerberos 如许庞杂的多方交流,我们的小我偏好传统上老是在运用 KerberosRequestorSecurityToken 要领。 然则正如我在第一个章节中提到的,这个要领在请求效劳票证时会请求最高支撑的加密范例。 关于启用了 AES 的用户帐户,此默许要领将返回加密范例为 AES256的票证(哈希中的范例是18) :

高等域渗入手艺之再谈Kerberoast进击

如今,Rubeus 的 Kerberoast进击的一个显着的替换要领是许可指定一个现有的 TGT 块或许文件,然后在票证请求中运用它。 若是我们有一个真正的 TGT,并且正在完成原始的 TGS-REQ或TGS-REP历程并手动提掏出准确的加密局部,那末我们能够在发出效劳票证请求时指定须要的支撑的任何加密范例。 因而,若是我们有启用了AES 的帐户,我们依然能够获得一个基于 RC4的票证,然后举行离线破解! 实际上,这类要领如今是在 Rubeus 中运用kerberoast 敕令的 /ticket:<blob/file.kirbi参数完成的。

那末这类做法的瑕玷是甚么呢?起首,你须要一个票证授与票证来构建原始的 TGS-REQ 效劳票证请求,以是你须要: a)在体系上特权晋级后并提掏出另一个用户的 TGT; b)具有一个用户的散列,你能够运用 asktgt模块来请求一个新的 TGT。 若是你猎奇为何用户不克不及在没有特权提拔的状况下提掏出可用的 TGT 版本,请检察”Rubeus — Now With More Kekeo”这篇文章中的诠释。

解决方案是@gentilkiwi的 Kekeo tgtdeleg 技能,它运用 Kerberos GSS-API 为启用了无束缚委派的目的 SPN 请求了一个”假”委派(比方 cifs/DC.domain.com)。 这是之前在 Rubeus 中运用 tgtdeleg 敕令完成的。 这类要领许可我们为以后用户提取可用的 TGT,包罗会话密钥。为何我们不在对”易受进击的”SPN 实行 TGS-REQ 时运用这个”冒充”的委派 TGT,并指定 RC4作为我们支撑的独一加密算法呢?

新的  kerberost /tgtdeleg 选项就是如许做的!

高等域渗入手艺之再谈Kerberoast进击

高等域渗入手艺之再谈Kerberoast进击

在这个字段中,默许的 KerberosRequestorSecurityToken Kerberoast 要领也有失利的时刻——我们愿望 /tgtdeleg选项能够在个中的一些状况下依然能够一般事情。

若是我们想更进一步,制止能够的”加密降级”指示器,我们能够搜刮不支撑 AES 加密范例的帐户,然后声明我们支撑效劳票证请求中的一切加密范例。 由于效果支撑的最高加密范例将是 RC4,我们依然会获得可破解的票证。 kerberoast /rc4opsec 敕令实行 tgtdeleg 技能并过滤掉这些启用了AES的帐户:

高等域渗入手艺之再谈Kerberoast进击

若是我们想要相反的效果,并且只想要启用了 AES 的帐户,/aes 标记将实行相反的 LDAP 过滤器。 虽然我们现在没有东西来破解运用 AES 的票证(纵然我们如许做了,由于 AES 症结的推导算法将使得破解速率会慢上千百倍) ,然则破解的要领正在研讨中。

用于 Kerberoast播送的 /tgtdeleg 要领的另一个长处是,由于我们正在手动构建和剖析 TGS-REQ/TGS-REP流量,效劳票证将不会在我们正在运用的体系上举行缓存。 默许的 KerberosRequestorSecurityToken要领致使在以后登录会话中为我们正在处置惩罚的每一个 SPN 缓存了一个效劳票证。 /tgtdeleg要领致使一个附加的cifs/DC.domain.com 票证被添加到以后的登录会话中,最小化了潜伏的基于主机的指示器(即用户登录会话中的大批效劳票证)。

作为参考,我在 README 中整理了一个对照了在Rubeus中的分歧的kerberost要领的表格:

高等域渗入手艺之再谈Kerberoast进击

末了要申明的是,从这个commit最先,kerberost应当比域信托更有用。 在 README 的 kerberoast 章节中我添加了两个外部可托域的示例。

总结

愿望这篇文章的内容消除一些人(好比我)能够对 kerberoast 的分歧加密支撑发生的一些疑心。 我也盼望人们实验运用新的 Rubeus Kerberoast参数,看看他们在该范畴会怎样事情。

像平常一样,若是我在这篇文章中犯了一些毛病,请让我晓得,我会尽快改正它! 别的,若是有人对 “RC4票证照旧可用于仅支撑AES的账户”这类状况有甚么意见,请给我发电子邮件(will [at] harmj0y. net)或许在 https://bloodhoundgang.herokuapp.com/ 上找我。


申博|网络安全巴士站声明:该文看法仅代表作者自己,与本平台无关。版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明高等域渗入手艺之再谈Kerberoast进击
喜欢 (0)
[]
分享 (0)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址