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

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

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

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

工具目录

分类

查看所有分类
Loading categories
DavRelayUp — 自动将加入域的Windows工作站上的本地权限提升到SYSTEM,通过将WebDAV的NTLM认证中继到LDAP,利用基于资源的约束委派(RBCD),无需LDAP签名强制。 | Kitploit
工具/GitHubGitHub/dec0ne/davrelayup
权限提升漏洞利用横向移动身份验证红队
GitHubdec0ne/davrelayup

DavRelayUp

自动将加入域的Windows工作站上的本地权限提升到SYSTEM,通过将WebDAV的NTLM认证中继到LDAP,利用基于资源的约束委派(RBCD),无需LDAP签名强制。

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

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

DavRelayUp

这是一个快速粗糙的 KrbRelayUp 移植版本,进行了修改以允许从 webdav 到 LDAP 的 NTLM 中继,从而简化以下攻击原语的滥用:

  1. (可选) 新机器账户创建 (New-MachineAccount)
  2. 强制启动 WebClient 服务
  3. 启动 webdav 中继服务器 (GoRelayServer - 一个嵌入在 DavRelayUp 中的 golang DLL,使用 Costura.Fody)
  4. 本地机器账户认证强制 (SharpSystemTriggers)
  5. NTLM 中继到 LDAP
  6. 添加 RBCD 权限并获得对本地机器的特权 ST (Rubeus)
  7. 使用上述 ST 向本地服务管理器进行身份验证并创建一个新的 NT/SYSTEM 服务。(SCMUACBypass)

这本质上是一个在未强制 LDAP 签名(默认设置)的域加入 Windows 工作站中的通用无修复本地权限提升。

Usage

root@kitploit:~
DavRelayUp - Relaying you to SYSTEM, again...

Usage: DavRelayUp.exe [-c] [-cn COMPUTERNAME] [-cp PASSWORD | -ch NTHASH]

RBCD Options:
    -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=DAVRELAYUP$)
    -cp  (--ComputerPassword)         Password of computer account for RBCD. (default=RANDOM [if -c is enabled])
    -ch  (--ComputerPasswordHash)     Password NT hash of computer account for RBCD. (either -cp or -ch must be specified)
    -i   (--Impersonate)              User to impersonate. Should be a local administrator in the target computer. (default=Administrator)

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

General Options:
    -p  (--Port)                     Port for WebDAV Server (default=55555)
    -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 (Optional)
    -v  (--Verbose)                  Show verbose output. (Optional)
    -h  (--Help)                     Show help

已知问题

如果 DavRelayUp 在以下某个阶段卡住,请尝试通过指定 [-p] 标志使用不同的端口

root@kitploit:~
DavRelayUp - Relaying you to SYSTEM, again...

[+] WebClient Service started successfully
[+] Starting Relay Server on Port 55555
[+] Coercing System Authentication
root@kitploit:~
DavRelayUp - Relaying you to SYSTEM, again...

[+] WebClient Service started successfully
[+] Starting Relay Server on Port 55555
[+] Coercing System Authentication
[+] WebDAV Request: No Authorization header
[+] WebDAV Response: Sending 401 Unauthorized with "WWW-Authenticate: NTLM" header

Examples

https://github.com/Dec0ne/DavRelayUp/assets/54464773/4e791e8b-783c-48d3-b46b-8b22e2661ea1

example

构建

  1. 构建 GoRelayServer(此仓库中已构建并准备就绪,但如果你想自己构建)
    root@kitploit:~
    PS C:\Tools\DavRelayUp> cd GoRelayServer
    PS C:\Tools\DavRelayUp\GoRelayServer> go build --buildmode=c-shared -ldflags="-s -w"  -o "../DavRelayUp/Costura64/GoRelayServer.dll" main.go
    
    这将构建 GoRelayServer DLL 并将其保存在 "DavRelayUp\DavRelayUp\Costura64\GoRelayServer.dll" -> 这是 Costura.Fody 将其嵌入最终 DavRelayUp.exe 可执行文件的文件夹。
  2. 在 Visual Studio 2019 中打开 KrbRelayUp.sln
  3. 确保解决方案配置设置为 Release,然后点击构建 (CTRL+SHIFT+B)

待办事项

  • 添加 ShadowCred 攻击作为中继方法
  • 添加 U2U 支持,以便在无需机器账户的情况下进行攻击

缓解与检测措施

  • 强制实施 LDAP 签名和 LDAP 通道绑定,以缓解机器账户认证到 LDAP 的中继。这可以通过“域控制器:LDAP 服务器签名要求”GPO 进行配置。(感谢 Will Dormann 关于此事的 推文)
  • 通过将 AD 中的 MS-DS-Machine-Account-Quota 属性 设置为 0,使攻击要求更难达成,从而消除任何用户向域添加新机器账户的能力。这是 AD 中一个危险的默认设置——请确保更改它。
  • 在所有管理员账户上设置“账户敏感且不能委派”标志(或将其放入受保护用户组),将使得不存在具有所需权限且可被委派的账户来完成攻击路径。(感谢 Christoph Falta 的此条 推文)
  • 可能监控和检测规则的资源:
    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)

致谢

  • 感谢 James Forshaw 想出了如何使用 Kerberos 服务票据进行本地身份验证到服务管理器,这是使该攻击原语仅限本地的关键缺失部分(在此之前,我们必须将 ST 导出到远程机器才能使用它并获得对目标机器的特权访问)。
  • 感谢 Kevin Robertson 的 New-MachineAccount 功能,该项目中使用了该功能。
  • 感谢 Cube0x0 的 SharpSystemTriggers 功能(特别是 SharpEfsTrigger),该项目中使用了该功能。
  • 感谢 Elad Shamir 关于 RBCD 的研究 - Wagging the Dog
  • 感谢 Will Schroeder 以及所有为 Rubeus 做出贡献的人,我们对此熟知且喜爱。基本上所有 RBCD-S4U 功能都来自那里。
  • 感谢 Orange-Cyberdefense 在 GOAD 上的工作,这是我正在使用的 Active Directory 研究实验室,你可以在演示视频和图像中看到。
  • 感谢 Shantanu Khandelwal 关于红队:如何将 Golang 工具嵌入 C# 的精彩博文
  • GoRelayServer 基于 go-ldap 的工作构建,我对其进行了修改以允许 webdav 到 LDAP 的 NTLM 中继。还要感谢 Mariusz Banach 的 SharpWebServer,我使用它来学习 webdav NTLM 认证的工作原理,并将其作为 GoRelayServer 中的服务器监听器实现。
下载工具