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

域渗入手艺剖析:Roasting AS-REP

申博_行业观察 申博 148次浏览 已收录 0个评论

客岁11月,我宣布了一篇名为”没有 Mimikatz 的 Kerberoast 进击应用”的文章,细致引见了PowerView和Tim Medin提出的Kerberoasting 进击的最新研讨进展。这使我最先更细致地研讨 Kerberos。 几周前,我的同事Lee Christensen发明Exumbra Operations的Geoff Janjua做了一个风趣的演讲,题为”兵器化 Kerberos 协定破绽(Kerberos Party Tricks: Weaponizing Kerberos Protocol Flaws)”,幻灯片和东西包可以在这里找到。Geoff提到的一个风趣的处所,也是他编写的基于 Python 的”Party Trick”东西包实行的处所,就是滥用不须要 Kerberos 预身份考证的用户帐户。

近来,我对这个话题举行了更深切的研讨,并想与人人分享我所学到的和开辟出的一些东西。这篇文章将给出一些我们正在滥用Kerberos的细致背景和详细的题目是什么,怎样轻松地列举出不须要预身份认证的账户,怎样在这些状况下提取可破解的哈希,以及末了怎样有效地破解这些检索到的哈希。另有一个相干的PowerShell东西包,ASREPRoast,可以在GitHub上找到。

tl;dr ——假如你可以罗列Windows域中不须要Kerberos预身份认证的任何帐户,那末你如今就可以轻松地为这些帐户请求一条加密信息,并有效地离线破解这些账户的哈希,从而拿到用户的明文暗码。

注重: 这并不是什么开创性的东西,明显也没有 Kerberoast 进击那末有效,因为账户必需明白设置DONT_REQ_PREAUTH让其易受进击—— 你依然依赖于暗码复杂性较弱这个弱点来实行进击。 然则,这类设置在某些环境中依然存在,我们只是不肯定这类状况发作的频次,因为它不是我们之前一般要寻觅的东西。我们的猜想是,它多是为较老的帐户而启用的,迥殊是与Unix相干的帐户。 假如你碰巧在”野外”发清楚明了它,我们很愿意收到你的来信;)(在推特上@harmj0y 或许发邮件给 [email protected])。

假如你拿到的目的用户具有GenericWrite/GenericAll权限,你就可以歹意修正他们的userAccountControl属性以使其不须要预身份考证。以后运用ASREPRoast,重置这个属性的值;)

域渗入手艺剖析:Roasting AS-REP

背景

我不盘算细致引见Kerberos的一切方面,因为像肖恩 · 梅特卡夫如许的人已在这方面做了大批的事变。 假如像AS-REQ 和 AS-REP如许的术语对你来说是完全生疏的,那末我发起你先浏览肖恩的文章,以便相识一些基础的背景学问。 我们在这篇文章中关注的是Kerberos 预身份认证这个方面。

在Windows Kerberos环境中的一般操纵下,当你为给定用户启动TGT请求(Kerberos AS-REQ,音讯范例为10)时,必需供应用该用户的密钥或暗码加密的时候戳。 这类组织是PA-ENC-TIMESTAMP,嵌入到AS-REQ的PA-DATA (预受权数据)中——这两种组织在RFC4 120的第60页都有细致的形貌,并在Kerberos版本5中举行了引见。KDC 以后会解密时候戳,以考证建立AS-REQ的主体是不是真的是该用户,然后返回AS-REP并继承实行一般的身份考证历程。

注重: 关于任何不准确的PA-ENC-TIMESTAMP尝试,KDC确切增加了badpwdcount属性,因而我们不能运用这类要领来在线爆破帐户暗码: (

Kerberos预身份考证的缘由是为了防备离线暗码猜想。AS-REP票证自身运用的是效劳密钥(在本例中是 krbtgt hash)加密,而AS-REP”加密部份”则运用客户机的密钥(即我们发送 AS-REQ 的用户的密钥)举行署名。假如没有启用预身份认证,进击者可以向任何没有请求预身份认证的用户发送AS-REQ,并收到一些加密数据块,这些加密的数据可以举行离线破解从而泄漏目的用户的明文暗码。

这是人们早就晓得的事变,毕竟,它是在 Kerberos 中完成预身份认证的缘由! 在当代Windows环境中,一切效户帐户都须要Kerberos预身份认证,但风趣的是,默许状况下Windows尝试 AS-REQ和AS-REP交流,而不是起首举行身份认证,让我们回到在第二次提交时供应加密的时候戳:

域渗入手艺剖析:Roasting AS-REP

我不晓得为何会发作这类行动?!

@munmap 在推特上指出,这类行动是因为客户端事前不晓得支撑的ETYPES,RFC6113的2.2章节中明白细致说清楚明了这一点。

然则,Windows 供应了一种经由过程修正useraccountcontrol手动禁用对特定帐户举行庇护的要领:

域渗入手艺剖析:Roasting AS-REP

假如你已是一个经由身份考证的用户(但在其他方面没有特权) ,你可以运用LDAP过滤器轻松地罗列该域中具有此设置的用户(userAccountControl:1.2.840.113556.1.4.803:=4194304)。 PowerView 的Get-DomainUser已运用 -PreauthNotRequired  参数完成了这个功用:

域渗入手艺剖析:Roasting AS-REP

所以如今我们晓得了题目所在,以及怎样辨认易受进击的用户。 虽然十多年来已涌现了对Kerberos交流中的AS-REQ的PA-ENC-TIMESTAMP组件举行暴力破解的体式格局(哈希花样甚至在 Hashcat 已存在, -m 7500/ ‘Kerberos 5 AS-REQ Pre-Auth’) ,但我所见过的唯一进击RC4的东西集是 Geoff 的 Python 东西包。 我们须要一些基于Windows的东西,这些东西也不须要机械上的治理特权来许可我们在进击事变流程中坚持灵活性。 我们还愿望有一种更快的要领来破解这些哈希。

ASREPRoast

Outlaw黑客组织通过僵尸网络传播挖矿机和木马

TrendMicro研究人员检测到一个传播含有门罗币挖矿机和Perl后门组件的僵尸网络的URL。研究人员发现这与Outlaw黑客组织之前攻击活动中使用的方法一样。 研究人员在分析中发现攻击者使用了一个可执行的SSH后门,而且这些组件以服务的形式安装来为恶意软件提供驻留。基于Perl的后门组件可以启动DDoS攻击,允许犯罪分子通过提供DDoS即服务和加密货币挖矿机来利用僵尸网络获利。 但研究人员认为该攻击活动背后的攻击者可能在测试和开发过程,因为还有shell脚本组件在TAR文件中没有执行。 截至目前,研究人员监测到了来自中国的感染活动。 攻击方法 数据显示恶意软件通过SSH暴力破解攻击来获取系统的访问权限,并执行两个可能的命令文件。文件组件和方法与之前的分析是一直的,分析的样本中执行了.x15cache,bash脚本会下载恶意软件。 图 1.通过SSH暴力破解攻击机器 Shell脚本会下载、提取和执

我的第一个愿望是在 .NET 中找到一些已公然的相似于Kerberoast 进击要领的AS-REP原始字节。我花了一段时候寻觅相干的.NET要领,愿望有某个要领可以接见AS-REP的原始字节响应,但不幸涌现。虽然我不能肯定这是不是是不能够做到的,但我的直觉告诉我这多是一个非常有深度的笼统层,我们没法随意马虎抵达。纵然.NET有如许的要领,我们依然有一个困难要处理,因为当代 Windows Kerberos环境在AS-REP中默许运用AES256-CTS-HMAC-SHA1-96举行加密,而不是用更快的ARCFOUR-HMAC-MD5/RC4要领。RC4-HMAC的破解速率要快很多,所以假如能够的话,我们更喜好它。

我末了采纳的要领是手工组织AS-REQ以掌握必要的参数,并剖析KDC的AS-REP响应以肯定胜利或失利并提取加密数据。 这里有另一个停滞——Kerberos运用的是ASN. 1举行编码组织。.NET没有内置的编码器或解码器。荣幸的是,有一个开源的 C# 版本的Bouncy Castle加密库,其特性之一是具有壮大的ASN. 1编码和解码才。

不幸的是,我没有时候给出一个完全的ASN. 1运用教程,然则我将分享一些在开辟这个东西时协助我的几个点。 关于AS-REQ 我们所体贴的范例在RFC1510的第55页和RFC4120的第74页已列出。Benjamin Delpy 也在他的Kekeo 项目中记录了一切这些ASN. 1组织。 下面是组织形貌:

AS-REQ ::=         [APPLICATION 10] KDC-REQ
KDC-REQ ::=        SEQUENCE {
           pvno[1]               INTEGER,
           msg-type[2]           INTEGER,
           padata[3]             SEQUENCE OF PA-DATA OPTIONAL,
           req-body[4]           KDC-REQ-BODY
}
PA-DATA ::=        SEQUENCE {
           padata-type[1]        INTEGER,
           padata-value[2]       OCTET STRING,
                         -- might be encoded AP-REQ
}
KDC-REQ-BODY ::=   SEQUENCE {
            kdc-options[0]       KDCOptions,
            cname[1]             PrincipalName OPTIONAL,
                         -- Used only in AS-REQ
            realm[2]             Realm, -- Server's realm
                         -- Also client's in AS-REQ
            sname[3]             PrincipalName OPTIONAL,
            from[4]              KerberosTime OPTIONAL,
            till[5]              KerberosTime,
            rtime[6]             KerberosTime OPTIONAL,
            nonce[7]             INTEGER,
            etype[8]             SEQUENCE OF INTEGER, -- EncryptionType,
                         -- in preference order
            addresses[9]         HostAddresses OPTIONAL,
            enc-authorization-data[10]   EncryptedData OPTIONAL,
                         -- Encrypted AuthorizationData encoding
            additional-tickets[11]       SEQUENCE OF Ticket OPTIONAL
}

另一件对我协助很大的事变是Wireshark中正当的Kerberos交流数据,导出Kerberos数据包字节,并运用这个JavaScript ASN. 1解码器实行数据可视化:

域渗入手艺剖析:Roasting AS-REP

接下来要说的内容鄙人一部份迥殊有协助,那就是进修怎样经由过程PowerShell运用Bouncy Castle来构建一个准确的经由过程ASN. 1编码的AS-REQ。但经由频频勤奋,我终究找到了New-ASReq,它吸收一个用户名或域称号,构建准确嵌套的组件,并返回请求的原始字节。

因为我们是本身手动开辟的,所以我们可以包括或省略任何我们想要的内容。 因而,我们可以只包括ARCFOUR-HMAC-MD5加密范例,而不是一切支撑的加密范例。 在RFC4757 中细致诠释了这类范例及其在Windows Kerberos身份认证中的运用。迥殊好的是,第3章节中包括了算法的差别用处的音讯范例。虽然AS-REP票证运用的是范例2,和TGS-REP票证一样(即 kerberoast进击) ,但响应的这个组件是用效劳密钥加密的,在这类状况下,效劳密钥是krbtgt哈希,因而不可破解。 然则,AS-REP的加密部份,也就是我们可以”降级”到RC4-HMAC的部份,运用了雷同的算法,但音讯范例为8。 这将在本文稍后的“破解哈希”章节中举行论述。

在ASREPRoast中的第二个函数Get-ASREPHash经由过程封装New-ASReq为特定用户或域天生恰当的AS-REQ,罗列指定域的域掌握器,发送经心组织设想的AS-REQ,并吸收响应字节。Bouncy Castle用于解码响应,搜检它是KRB-ERROR响应照样准确的AS-REP。 假如请求胜利,我们可以提取出运用指定用户的哈希加密的RC4-HMAC的enc-part部份,并以一种可读性优越的花样返回:

域渗入手艺剖析:Roasting AS-REP

在ASREPRoast中末了一个有效的功用是Invoke-ASREPRoast。 假如在Windows Kerberos 环境中从经由身份考证但没有特权的域用户的高低文中运转,该函数将起首运用LDAP过滤器(userAccountControl: 1.2.840.113556.1.4.803:4194304)罗列在其用户帐户掌握设置中设置了”不须要Kerberos预身份考证”的一切效户。关于每一个返回的用户,Get-ASREPHash会返回一个可破解的哈希:

域渗入手艺剖析:Roasting AS-REP

破解哈希

我们已如今有了一个很好的RC4-HMAC AS-REP哈希数据集,个中的每一个都运用响应的用户暗码举行加密。我们如今应当可以实行Kerberost进击离线破解这些哈希(John the Ripper 中的 krb5tgs 花样) ,然则请记着,只管运用了与现有的TGS-REP花样雷同的算法和要领,然则这里的音讯范例是8而不是2。

不幸的是,现有的插件没法事变,不过荣幸的是,我们所要做的就是将这一行改成8而不是2,删除一些特定的TGS ASN. 1加快版本,并转变花样定名。 我有一个包括了修正过版本的 krb5_asrep_fmt_plug.c插件的ASREPRoast project项目。 只需将其放入Magnumripper的源文件夹,运转一般的构建指令,就可以破解ASREPRoast.ps1输出的加密数据:

域渗入手艺剖析:Roasting AS-REP

我置信以相似的体式格局修正Hashcat中现有的TGS-REP花样应当也很简单,但我还没有尝试过。而且,因为与Kerberoast进击中krb5tgs的花样运用了雷同的算法,只是在症结内容上举行了调解,所以机能应当与现有的模块差不了太多。

末了的主意

正如我在一最先提到的,本文所论述的进击要领明显不如Kerberoast 进击有效,因为帐户必需明白设置了DONT_REQ_PREAUTH才应用,你依然依赖于暗码复杂性较弱这个弱点来实行进击。 然则,这类设置有时会出如今某些环境中,一般是因为向后兼容性的缘由形成的,而且我们以为至少在某些状况下,这类进击的应用东西在操纵方面上是有效的。

防备方面,这里论述的与防备Kerberoast进击雷同的庇护措施也适用于这类范例的帐户,迥殊是对这些范例的帐户设置很长的暗码,并在非常主机为该帐户发送AS-REP时发出警报。另外,审计哪些帐户具有这类设置,运用PowerView (Get-DomainUser-preauthnotrewell)或其他带有(userAccountControl: 1.2.840.113556.1.4.803:4194304)过滤器的LDAP东西集就可以随意马虎做到这一点。细致斟酌是不是真的须要这类设置的帐户。

防备方面, @munmap发起研讨Kerberos FAST 预身份认证或用于Kerberos (PKINIT)初始身份考证的公钥加密。

原文地点: https://www.4hou.com/system/18882.html


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

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

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