我们使用Rubeus分析对Kerberos的攻击。第2部分





你好!



这是有关Kerberos协议攻击工具Rubeus功能的文章的第二部分。第一个可以在这里阅读这次,我们将考虑如何使用该工具实施以下攻击:




  • 越过哈希/通过密钥(PTK);
  • 通过票;
  • 不受限制的授权;
  • 受约束的委派。


关于为什么可能发生这些攻击,存在哪些实施机制,Kerberos的工作原理是什么(例如,Jet Infosystems的同事发表了一篇不错的文章,并发表了一篇很好的文章),已经有很多著作,所以在我的文章中,我将重点介绍使用使用Rubeus。



除了执行攻击和与Kerberos交互的“动作”之外,Rubuss还有一件好事:基于明文密码,它可以计算NTLM哈希,这有时非常方便和有用。







这样就得出了一个小的抒情题,让我们回到主要部分。

自本文的第一部分以来,进行攻击的测试平台一直保持不变



越过哈希/通过密钥(PTK)







Pass-the-hash — . , NTLM LM.

但是,如果网络禁用了NTLM或LM身份验证并且仅使用Kerberos身份验证,并且您具有密码哈希怎么办?这就是“哈希越过”的作用所在-使用用户的密码哈希,Rubuus可以请求该帐户的TGT。



在这里,Barsik域用户决定研究信息安全问题,在某个地方他得到了ADadmin域管理员的密码哈希,下载了Rubeus,阅读了智能文章并尝试将其付诸实践。







我们看到他没有高速缓存的票证,也没有访问域控制器的权限DC-16.meow.local,但是Barsik随后使用“操作” asktgt和参数启动了Rubeus,/domain, /user, /rc4, /ptt以便根据ADadmin帐户的现有密码哈希(参数)获得有效的TGT票证。/ptt立即将收到的票证下载到Barsik用户的当前会话。







票证已接收并上传,Barsik尝试再次以Adadmin身份登录域控制器。







这次他成功做到了。



通票(PTT)



此攻击类似于“哈希传递/密钥传递”,攻击者试图获取域用户的票证(最好是在该域中具有最大特权),并将其加载到当前会话中。获取TGT票证的一种方法是从进程lsass.exe(本地安全身份验证服务器)在当前域计算机上本地转储票证。为此,您必须具有本地管理员特权,或者具有NT AUTHORITY / SYSTEM。 Rubeus可以使用dump操作来转储lsass中存储的票证,并且triage操作将显示当前存储在系统中的票证。











Rubeus会从已lsass编码的票证中卸载票证base64,而该工具本身则说明了如何在中保存收到的base64票证.kirbi







保存故障单并将其导入到当前用户会话中。







从屏幕快照中可以看到,ADadmin票证已成功加载,我们可以DC-16.meow.local 代表ADadmin 在域控制器看到驱动器C的内容



不受限制的委托



无约束委派是可以授予用户或计算机帐户的域特权。它允许一个帐户代表另一个帐户向网络上的服务进行身份验证。



现在是时候稍微调整一下测试平台并启用不受限制的委托了:让我们将不受限制的委托特权赋予BARSCOMP计算机。







测试Active Directory域的安全性的阶段之一是搜索启用了委派的帐户,通常为此目的使用Powerview,但是您也可以手动使用标准ActiveDirectory模块。







为了进行这种攻击,我将使用打印机错误由SpecterOps的Lee Christensen详细介绍。任何经过身份验证的用户都可以告诉他发送无限制委派的帐户通知,从而远程连接到域控制器的打印服务器并请求更新新的打印作业。 Lee Christensen编写了SpoolSample应用程序,该应用程序使用MS-RPRN协议访问CD打印服务。



在将要发起攻击的计算机上(BARSCOMP.meow.local),您需要使用“操作”以监视模式启动Rubeus monitoring。此模式需要NT ATHORITY / SYSTEM特权,并在lsass进程中侦听新的TGT / TGS票证。我将参数/interval:1(以秒为单位)设置为新票证的lsass轮询间隔,该参数/filteruser:DC-16$我将过滤器设置为仅显示DC-16 $用户的票证。







Rubeus正在另一个会话中并行运行,我使用参数dc-16.meow.local(被攻击的计算机)和barscomp.meow.local(我们的“监听”主机)启动SpoolSample.exe







让我们看看鲁贝乌斯“监控”了什么。







捕获了TGT域控制器帐户票证。现在,您可以使用已知的通行证攻击,导入票证,并使用mimikatz进行DCSync攻击,以获取krbtgt帐户的NTLM哈希(并且如您在本文的第一部分已经知道的那样,可以使用该帐户的哈希来创建金票并完全接管AD域)。





请注意,Rubuus将票证理解为.kirbi文件和base64编码的字符串。

受约束的委派



如果攻击者设法破坏启用了有限委派的用户帐户或计算机,则他可以模拟域中的任何用户并使用允许委派的服务进行身份验证。



使用密码B @ ckup1234创建一个新的备份域用户,并为他在域控制器上的cifs服务分配SPN。







现在,您可以将此帐户设置为能够将ldap和cifs服务委派给DC-16.meow.local域控制器。







您还可以使用Powerview或ActiveDirectory模块来确定允许哪些帐户进行受限委派。







知道了meow.local \ Backup帐户的密码或NTLM哈希,可以使用Rubeus为其请求TGT票证。







现在,使用Rubeus中的s4u“操作”,您可以为允许被认证为cifs \ dc-16.meow.local服务的用户(例如,ADadmin域管理员)请求TGS。







在这里输入我先前收到的备份帐户的票证; / impersonateuser-我要获得其权限的用户; /域-发生所有事情的域; / msdsspn / asltservice-需要TGS的服务; / ptt-立即将收到的票证导入当前会话。



这是Rubeus中发生的事情:







在这里您可以看到在约束委派下启用了2个Kerberos扩展:这是S4U2self和S4U2proxy。



S4U2self允许服务参与者代表特定用户向自己请求带有FORWARDABLE标志的特殊TGS。这是必需的,以便以后可以由S4U2proxy扩展使用此票证。



S4U2proxy允许呼叫者使用此特殊票证来请求用户的TGS,以获取允许委派的服务(在本例中为cifs \ dc-16.meow.local)。您可以在这里这里阅读更多有关此内容的信息



此时,鲁比乌斯已经收到最终门票,并将其导入到当前会话中。







让我们看看是否可以看到带有收到的票证的域控制器上的C驱动器。







是的,一切顺利。



总结我对这个工具的评论,总的来说,我喜欢它,它易于使用且具有良好的功能。我希望,阅读这些文章后,您可以将其投入使用。



谢谢您的关注,一切顺利,请不要生病!



All Articles