利用影子凭证进行本地权限提升的攻击战术解析

本文深入探讨了利用Active Directory中的影子凭证(Shadow Credentials)进行本地权限提升(LPE)的技术细节,包括攻击链的构建、服务触发、NTLM中继和Kerberos票据操作,并提供了防御建议如LDAP签名和通道绑定。

攻击战术9:利用影子凭证进行权限提升

本次网络研讨会最初发布于2025年1月9日。在视频中,Kent Ickler和Jordan Drysdale讨论了攻击战术9:主要对象的影子凭证,重点介绍了Black Hills Information Security在渗透测试服务中使用的一种特定技术。他们深入探讨了这种本地权限提升方法如何利用Active Directory中的特性来获得未经授权的访问。谈话还涵盖了针对此类攻击的缓解策略,强调了审计和实施安全措施以防止利用的重要性。

网络研讨会重点关注使用影子凭证作为网络安全攻击中本地权限提升(LPE)的一种技术。使用影子凭证的技术利用的是Active Directory中的特性而非漏洞,使其成为攻击者复杂但有效的方法。防御措施如LDAP签名和通道绑定对于防止在Active Directory环境中滥用影子凭证至关重要。

亮点

  • 1:59 理解影子凭证和本地权限提升:探索Active Directory中的影子凭证如何利用2016年的新特性进行本地权限提升。
  • 2:18 理解影子凭证及其在LPE利用中的作用:探索存储在Active Directory属性中的影子凭证如何被利用进行本地权限提升攻击。
  • 2:48 使用原生Windows SSH建立安全SSH隧道:学习如何使用原生Windows SSH创建远程和本地SSH隧道,以实现安全的网络连接和控制。
  • 2:14 理解Windows服务管理和安全:学习如何安全地管理和触发Windows服务,即使使用低权限账户,也能确保系统安全。
  • 1:35 通过Windows用户账户属性触发服务启动:探索更改Windows用户账户头像如何通过localhost操作无意中触发服务启动。
  • 1:55 使用NTLM Relay X和Petit Potem进行SSH隧道和渗透测试:探索设置SSH隧道并使用NTLM Relay X和Petit Potem等工具进行证书强制在渗透测试中的应用。
  • 1:21 确保网络安全:消息完整性和签名的重要性:讨论为SMB和LDAP实施消息完整性检查和签名,以防止未经授权的认证事件。
  • 2:36 在Active Directory审计中平衡检测敏感性和实用性:讨论审计Active Directory中属性更改的挑战,强调区分恶意和合法操作的困难。

完整视频

转录

Jason Blanchard:大家好,欢迎来到今天的Black Hills Information Security网络研讨会。我是Jason Blanchard,是Black Hills的内容和社区总监。我们没有传统的营销团队,我们有一个内容和社区团队。这意味着我们喜欢创建内容,我们喜欢将喜欢这些内容的人聚集在一起,给他们机会互相讨论这些内容。这就是为什么我们有Discord,我们有很多机会让你们互相见面。

今天我们有Kent和Jordan在这里进行攻击战术9:利用影子凭证进行权限提升。我们已经做了攻击战术1、2、3、4、5、6、7、8,现在是9。我在这里已经六年了,我想我六年前来的时候大概是从4开始的。所以这是一个长期运行的系列。如果我们愿意,我们可能每月可以做一次。但现在我们是攻击战术9,Kent和Jordan将深入探讨我们在Black Hills进行渗透测试服务时的一些攻击。

如果你需要渗透测试、红队、威胁狩猎、ANTISOC(即与友好的APT组进行持续渗透测试),那么可以找到我们。说到这里,我将交给Kent和Jordan。如果你需要任何东西,请在Discord中询问。如果你需要更多,请在Zoom中询问。我们很高兴你今天在这里。好了,Kent和Jordan,交给你们了。

Kent Ickler:谢谢。Jason,你是最棒的之一。我们感谢你所做的一切,你建立的社区,以及很多的爱,先生。谢谢。

Jordan Drysdale:真的,Jason,你很棒。最好。最好的。

Jason Blanchard:天啊。

Jordan Drysdale:所以,是的,之前已经有八个这样的战术,它们很大程度上是我们在BHIS进行一些渗透测试时使用的方法论。不是全部,不是我们所有的方法论。但今天我们将讨论一个特定的、新兴的战术。事实上,如果你看过我们最近的一些网络研讨会,其中一个最近注意到我们讨论了一个特定的攻击向量,我们从检测的角度进行了深入探讨。现在我们将深入探讨实际攻击的工作原理。

Kent Ickler:是的,那里的检测相对复杂。我们会在最后谈到这一点。我们会讨论一下。在那个网络研讨会上,我们也与你分享了一些这种方法论。但我们很快地过了一遍,对吧?那个网络研讨会的目的是演示检测,讨论防御,为什么这是一种相对阴险的攻击向量,因为它是一个特性而不是漏洞。所以那个网络研讨会也在那里,讨论了防御、检测以及所有这些是什么。但在这里,我们将非常具体地从攻击者的角度讨论这个问题。

这是因为这是一种持续有效的本地权限提升技术。Lpe,我们今天会多次使用这个缩写。这已经存在将近四年了。我们想向所有为此工作过的人致敬。Elad Shamir,还有很多人编写了这方面的后端。我们有一些内部人员使这成为我们最常用的技术。所以,Gabe,致敬,因为他基本上构建并与团队分享了这些知识,让整个团队了解其功能,从而在过去的两年里将其推向我们本地权限提升的首要技术。

所以,我们开始吧。为什么这次谈话?有哪些常见的攻击战术?影子凭证是其中之一。它们是如何被使用的?它们被用来接管你的系统和域。为什么关注本地权限提升?通常是因为你的管理员设置了一些东西,并在端点上留下了凭证材料。所以,如果你能获取一个端点,猜猜看?那是通过域的第一步。微软意识到这些风险吗?是的。这些不是漏洞,这些是特性。我们如何检测和防御这种攻击?我们会在网络研讨会结束时总结一下。所以我们要在这里滑动一下。你以前见过Kent。他40多岁。道德、破坏者、 disruption、煽动者,无论什么,他在公司里非常公开和清晰地表达自己的想法,这不断推动我们前进。培训师,就这样。你想描述一下自己吗?那很完美。

Jordan Drysdale:我们继续吧。

Kent Ickler:滑动右,我们开始吧。我们在寻找实习生。当我们说实习生时,我们希望你是在大学或两年制项目的网络安全项目中。我们需要有编码技能的人。对吧?这就是我们成长和变得更好的方式。我们可以分享。Ken,我没有太多时间开发,所以有人帮忙很好。我可以说,嘿,你能帮我完成这个小项目吗,复活Mininet,一个10年的死项目。是的,当然,搞定。被雇佣了。我,我觉得我早上醒来时大多数时候像67岁。我17岁时放屁还会笑,对吧。就像所有那些事情,但我 somewhere in my 40s,所以,尝试,我尝试专业,但我不经常,但我喜欢分享知识,无论如何,再滑动一次。再次,如果你是一名学生,正在寻找机会,我们确实有时需要一两个实习生,我们会培养那个实习生,帮助成长并从那里开始。

但无论如何,再滑动一次,你想谈谈这个吗?为什么影子凭证?

Jordan Drysdale:为什么影子凭证?

Kent Ickler:所以,下一张幻灯片是什么是影子凭证?

Jordan Drysdale:所以,好吧,为什么影子凭证?我们要讨论一个lpe,对吧?本地权限提升或Privez C。好吧,有很多不同的LPE。有些已经存在很久了,这是一个较新的,因为它基于一个特性,而且通常当有新特性被配置时,随之而来的可能是利用该特性做一些它本意之外的事情的机会。这正是影子凭证的作用,对吧?我们将使用Active Directory中的一个属性进行认证。我们将误用它,滥用该特性来进行本地权限提升。所以有几种不同的方式,但今天我们将专注于一种方式,我们将向你展示整个路径如何做到这一点。这对我们非常有效。我们现在讨论它的原因之一,以及我们在去年年底讨论的一点是,它去年才开始受到很多关注,就像两年前是ADCS一样,对吧?所以这已经成为一种持续的事情,每年我们都有这种新的重大漏洞利用,成为我们获取本地权限和破坏域的最常见路径。从这个角度来看,这是我们去年最常见的之一。这是2016年从Active Directory模式中引入的一个特性。所以任何功能级别2016及以上的都会拥有它。好吧。它相对容易。我的意思是,今天我们将通过一些命令。你会想,哇,这里面有很多部分。但现实是,如果你退一步看,你会意识到我们只是在滥用一个特性。所以从这个角度看一下。但我们将给出命令并在这里演示。再次,这是我们在2024年的头号LPE。

Kent Ickler:是的。当我们演示实际攻击时,如果你减去所有准备工作,捕获GIF和点击的时间大约是16秒。所以你强制系统,中继它,你必须开始操作这个攻击。这有点吓人。就像很多事情一样,当你第一次看到NTLM中继转储凭证时,你会想,哦,天哪,哇,那真的很容易,真的很吓人,真的很快。所以无论如何,它相对容易。但再次,正如Ken提到的,这种攻击有一些细微差别。所以你想谈谈这些特性吗?

Jordan Drysdale:当然。所以让我们谈谈影子凭证。就像我们正在谈论的是这种使用影子凭证的LPE。为什么它像这个影子凭证?我们想到凭证,我们通常认为是用户名密码之类的东西。对吧。是一种凭证,我们都认可这一点。然后我们可以说像多因素认证有那个第三组成部分,的凭证。对吧。你需要别的东西。也许是一个一次性认证令牌之类的东西。所以我们想到影子凭证,我们想到的是一个我们不一定会看到的凭证。我们不一定看到它的原因是因为虽然我们认为那些凭证是用户名和密码,但我们知道在Active Directory中,那些是存储在属性中的。但它们对我们来说相对明显。对吧。如果我们退一步思考影子凭证。好吧,它对我們来说不明显。为什么它对我們来说不明显?嗯,它存储在Active Directory中的一个特定属性中,称为msds key credential link,那是Active Directory 2016及以上功能级别的一个属性。通常作为特性集的一部分存储在那里的是必要的凭证组件,以允许诸如Azure AD、SSO、无密码认证、FIDO、Windows Hello、Azure AD混合设备再次用于SSO以及基于设备的认证。所以它本质上是本地Active Directory中的一个属性,你可以在其中存储这种额外的凭证机制,用于诸如Windows Hello之类的事情。

因此,由于这是一个特性,记住?计算机如何能够管理它?嗯,对于计算机本身来说,要能够管理它,它必须能够写入该属性。这基本上就是我們在这里看到的,一台计算机可以写入它自己的属性,如果我们能控制计算机并获取计算机的上下文,我们可以把任何东西放入该属性。所以是的,它本应是计算机的一种认证机制,但如果我们往里面塞别的东西,允许我们除此之外进行认证呢?所以有多个影子凭证可以与特定的AD对象关联。所以你不能只放一个东西到Ms. Key credential link。你可以,但你也可以放多个,所以你可以开始往Ms. Key credential link里堆东西。不是只能存储一个凭证,而是多个。所以当我们进行这个攻击时,我们确实需要一件东西来使其工作,那就是用于中继的HTTP认证。我们将作为此演示的一部分设置这个中继,所以有多个组件与本地权限提升相关,并能够滥用它到你破坏整个域的程度。再次,这是一个特性。

Kent Ickler:哎呀。那里多点击了一次。所以这里有一个但是。

Jordan Drysdale:权限提升部分,本地权限提升部分,中继部分。我们怎么做?

Kent Ickler:所以它需要几个服务。Windows 10我们将依赖Web客户端服务,我们需要操纵它启动,这是可能的作为一个低权限用户,展示如何做到这一点,或者如果你运行的是Windows 11,那种强制似乎对Web客户端不那么有效或不那么一致,而是如果你能强制EFS启动或加密文件系统,你可以强制该服务。这两个在强制时都支持HTTP认证,因此我们将尝试在强制服务启动后使用用户态技术进行强制。

Jordan Drysdale:但为什么我们需要那些服务启动?我们确实需要考虑这一点。对吧?我们谈论强制一个服务启动,因为之后我们将强制该服务做别的事情。

Kent Ickler:是的,那很公平。然后我们将使用这个我们现在拥有的计算机对象的证书来请求一个服务票据,我们可以用它来升级。对吧。那是要点吗?是的,差不多,是的。所以这基本上是一种通过特性升级权限的阴险手段。我们在一个端点上启动一些服务,我们使用磁盘上的东西强制它们运行,然后建立一个隧道回传那个隧道。我们将发送一些指令给那些服务,说嘿,向我认证,从而将其

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计