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

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

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

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

工具目录

分类

查看所有分类
Loading categories
KrbRelayUp — KrbRelayUp - a universal no-fix local privilege escalation in windows domain environments where LDAP signing is not enforced (the default settings). | Kitploit
工具/GitHubGitHub/dec0ne/krbrelayup
Privilege EscalationExploitationImpersonation ToolsPost-ExploitationPenetration TestingAuthenticationRed Teaming
GitHubdec0ne/krbrelayup

KrbRelayUp

KrbRelayUp - a universal no-fix local privilege escalation in windows domain environments where LDAP signing is not enforced (the default settings).

查看仓库
1.7k21024年前Kitploit 审核通过

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

KrbRelayUp

本工具是 Rubeus 和 KrbRelay(以及致谢部分中提到的其他几个工具)部分功能的简单封装,旨在简化以下攻击原语的利用:

  1. (可选)新建机器账户(New-MachineAccount)
  2. 强制本地机器账户认证(KrbRelay)
  3. Kerberos 中继到 LDAP(KrbRelay)
  4. 添加 RBCD 权限并获取到本地机器的特权 ST(Rubeus)
  5. 使用上述 ST 向本地服务管理器进行身份验证,并以 NT/SYSTEM 权限创建新服务。(SCMUACBypass)

这本质上是一个在未强制实施 LDAP 签名的 Windows 域环境(默认设置)中的通用无修复本地权限提升漏洞。

更新: 这里 是 @an0n_r0 撰写的一篇优秀文章,讲解如何手动执行此攻击(使用这条攻击路径的原始工具:PowerMad/SharpMad、KrbRelay、Rubeus 和 SCMUACBypass)

更新 - 影子凭据支持

我添加了一些功能,以支持使用影子凭据实施此攻击原语。请注意,这消除了添加(或拥有)另一个机器账户的需要。

注意:由于利用了 S4U2Self,此攻击方法绕过了“受保护的用户”(或“账户敏感,无法委派”)缓解措施。

  1. 强制本地机器账户认证(KrbRelay)
  2. Kerberos 中继到 LDAP(KrbRelay)
  3. 生成新的 KeyCredential,并将其添加到本地机器账户的 'msDS-KeyCredentialLink' 属性中。(Whisker 和 KrbRelay)
  4. 使用上述 KeyCredential 通过 PKInit 获取本地机器账户的 TGT。(Rubeus)
  5. 使用 TGT 通过 S4U2Self 和 TGSSUB 获取到本地机器的特权 ST。(Rubeus)
  6. 使用上述 ST 向本地服务管理器进行身份验证,并以 NT/SYSTEM 权限创建新服务。(SCMUACBypass)

更新: 这里 是 @icyguider 撰写的一篇优秀文章,讲解如何手动执行此攻击的 ShadowCred 方法(使用这条攻击路径的原始工具:KrbRelay、Rubeus 和 SCMUACBypass),以及如何使用 NimCrypt2 打包各种工具,以规避防御机制的部分检测。

更新 - ADCS Web 注册支持

我添加了将机器 KRB 认证中继到 ADCS Web 注册(而不是 LDAP)的支持。由于此攻击不中继到 LDAP,因此不再要求域中未强制实施 LDAP 签名。

注意:由于利用了 S4U2Self,此攻击方法绕过了“受保护的用户”(或“账户敏感,无法委派”)缓解措施。

  1. 强制本地机器账户认证(KrbRelay)
  2. Kerberos 中继到 ADCS(HTTP)(KrbRelay 和 ADCSPwn)
  3. 代表本地机器账户生成证书请求,将其提交给 ADCS Web 注册,最后获取本地机器账户的证书(ADCSPwn)
  4. 使用上述证书通过 PKInit 获取本地机器账户的 TGT。(Rubeus)
  5. 使用 TGT 通过 S4U2Self 和 TGSSUB 获取到本地机器的特权 ST。(Rubeus)
  6. 使用上述 ST 向本地服务管理器进行身份验证,并以 NT/SYSTEM 权限创建新服务。(SCMUACBypass)

用法

root@kitploit:~
KrbRelayUp - Relaying you to SYSTEM

FULL: Perform full attack chain. Options are identical to RELAY. Tool must be on disk.

RELAY: First phase of the attack. Will Coerce Kerberos auth from local machine account, relay it to LDAP and create a control primitive over the local machine using RBCD or SHADOWCRED.
Usage: KrbRelayUp.exe relay -d FQDN -cn COMPUTERNAME [-c] [-cp PASSWORD | -ch NTHASH]

    -m   (--Method)                   Abuse method to use in after a successful relay to LDAP <rbcd/shadowcred> (default=rbcd)
    -p   (--Port)                     Port for Com Server (default=12345)
    -cls (--Clsid)                    CLSID to use for coercing Kerberos auth from local machine account (default=90f18417-f0f1-484e-9d3c-59dceee5dbd8)

    # RBCD Method:
    -c   (--CreateNewComputerAccount) Create new computer account for RBCD. Will use the current authenticated user.
    -cn  (--ComputerName)             Name of attacker owned computer account for RBCD. (default=KRBRELAYUP$)
    -cp  (--ComputerPassword)         Password of computer account for RBCD. (default=RANDOM [if -c is enabled])

    # SHADOWCRED Method:
    -f   (--ForceShadowCred)          Clear the msDS-KeyCredentialLink attribute of the attacked computer account before adding our new shadow credentials. (Optional)

    # ADCS Method:
    -ca  (--CAEndpoint)               CA endpoint FQDN (default = same as DC)
    -https                            Connect to CA endpoint over secure HTTPS instead of HTTP)
    -cet (--CertificateTemplate)      Certificate template to request for (default=Machine)


SPAWN: Second phase of the attack. Will use the appropriate control primitive to obtain a Kerberos Service Ticket and will use it to create a new service running as SYSTEM.
Usage: KrbRelayUp.exe spawn -d FQDN -cn COMPUTERNAME [-cp PASSWORD | -ch NTHASH] <-i USERTOIMPERSONATE>

    -m   (--Method)                   Abuse method used in RELAY phase <rbcd/shadowcred> (default=rbcd)
    -i   (--Impersonate)              User to impersonate. should be a local administrator in the target computer. (default=Administrator)
    -s   (--ServiceName)              Name of the service to be created. (default=KrbSCM)
    -sc  (--ServiceCommand)           Service command [binPath]. (default = spawn cmd.exe as SYSTEM)

    # RBCD Method:
    -cn  (--ComputerName)             Name of attacker owned computer account for RBCD. (default=KRBRELAYUP$)
    -cp  (--ComputerPassword)         Password of computer account for RBCD. (either -cp or -ch must be specified)
    -ch  (--ComputerPasswordHash)     Password NT hash of computer account for RBCD. (either -cp or -ch must be specified)

    # SHADOWCRED | ADCS Method:
    -ce  (--Certificate)              Base64 encoded certificate or path to certificate file
    -cep (--CertificatePassword)      Certificate password (if applicable)


KRBSCM: Will use the currently loaded Kerberos Service Ticket to create a new service running as SYSTEM.
Usage: KrbRelayUp.exe krbscm <-s SERVICENAME> <-sc SERVICECOMMANDLINE>

    -s  (--ServiceName)              Name of the service to be created. (default=KrbSCM)
    -sc (--ServiceCommand)           Service command [binPath]. (default = spawn cmd.exe as SYSTEM)


General Options:
    -d  (--Domain)                   FQDN of domain. (Optional)
    -dc (--DomainController)         FQDN of domain controller. (Optional)
    -ssl                             Use LDAP over SSL. (Optional)
    -n                               Use CreateNetOnly (needs to be on disk) instead of PTT when importing ST (enabled if using FULL mode)
    -v  (--Verbose)                  Show verbose output. (Optional)

示例

示例 示例 示例

待办事项

  • 代码重构和清理!!!
  • 添加 ShadowCred 攻击作为 RELAY 方法
  • 在 SPAWN 方法中添加 TGTDELEG 攻击,用于 Network Service->SYSTEM 场景(土豆攻击的替代方案)
  • 修复我尝试将 RELAY 和 SPAWN 方法合并为一次运行以便作为一条完整命令使用时所遇到的问题。这可能与 RELAY 和 SPAWN 功能都依赖于 COM 服务器初始化期间安装的钩子有关(一旦 RELAY 初始化了它的 COM 服务器,SPAWN 就无法重新初始化它以安装其钩子)

缓解与检测

  • 强制实施 LDAP 签名和 LDAP 通道绑定,以缓解机器账户 KRB 认证到 LDAP 的中继。这可以通过“域控制器:LDAP 服务器签名要求”GPO 进行配置。(感谢 Will Dormann 在 推文 中就此事提出的建议)
  • 通过将 AD 中的 MS-DS-Machine-Account-Quota 属性 设置为 0,使攻击要求的获取变得更加困难,从而移除任何用户向域中添加新机器账户的能力。这是 AD 中一个危险的默认设置——请务必更改它。
  • 在所有管理员账户上设置“账户敏感,无法委派”标志(或将它们放入受保护的用户组),将使不存在任何拥有所需权限且可被委派的账户来完成攻击路径。(感谢 Christoph Falta 的这条 推文)
  • 针对 ADCS 中继的缓解措施——在 certsrv 站点上强制使用 TLS,并在 IIS 中启用 扩展保护(EPA),这将阻止中继到 ADCS。(感谢 Will Dormann 在他的 推文 中指出这一点,Dirk-jan Mollema 关于 使用 krbrelayx 和 mitm6 通过 DNS 中继 Kerberos 的文章中也提到过)
  • 可用于监控和检测规则的资源:
    1. https://github.com/tsale/Sigma_rules/blob/main/windows_exploitation/KrbRelayUp.yml (@Kostastsale)
    2. https://twitter.com/SBousseaden/status/1518976397364056071 (@SBousseaden)。主要是关于通过 Kerberos 从 127.0.0.1 向服务管理器进行身份验证的规则,太棒了!
    3. https://www.linkedin.com/posts/john-dwyer-xforce_threathunting-threatdetection-blueteam-activity-6924739962131140608-py45/ (John Dwyer @TactiKoolSec)
    4. https://twitter.com/cyb3rops/status/1519241598311321601 (@cyb3rops)

致谢

  • 感谢 James Forshaw 对 Kerberos 中继 的研究,以及他解决了如何使用 Kerberos 服务票据对服务管理器进行本地身份验证的问题,这是使该攻击原语仅限本地完成所缺失的关键拼图(在此之前,我们必须将 ST 导出到远程机器才能使用它并获得对目标机器的特权访问)。同时感谢他的 New-MachineAccount 功能,本项目使用了该功能。
  • Cube0x0:没有他在 KrbRelay 上的出色工作,这个项目就不会存在——很多代码都来自那里,这让我对 Kerberos 中继的工作原理有了更深入的理解(对于任何希望更好地理解这一概念的人,我真心建议阅读这些代码)。
  • 感谢 Elad Shamir 对 影子凭据 的研究以及他的出色工具 Whisker——本工具中用于支持影子凭据攻击的部分代码来自他(当然也来自 cube0x0 的 KrbRelay 代码)。
  • 感谢 Will Schroeder 以及所有为我们熟知且喜爱的 Rubeus 做出贡献的人。基本上所有 RBCD-S4U 功能都来自那里。此外,还要感谢 Certify 和 Certified Pre-Owned 白皮书(同时感谢 Lee Christensen),它们在添加 ADCS Web 注册中继选项时被使用。
  • 感谢 batsec 以及所有为 ADCSPwn 做出贡献的人。与 ADCS Web 注册中继选项相关的很多代码都来自这个出色的工具。
  • 感谢 Michael Grafnetter 的工具 DSInternals,本项目使用它来帮助实现影子凭据功能。
  • 感谢 Orange-Cyberdefense 在 GOAD 上的工作,这是我所使用的 Active Directory 研究实验室,你可以在演示视频和图片中看到它。
下载工具