LDAP 서명 및 채널 바인딩 강화
Tip
AWS 해킹 배우기 및 연습하기:
HackTricks Training AWS Red Team Expert (ARTE)
GCP 해킹 배우기 및 연습하기:HackTricks Training GCP Red Team Expert (GRTE)
Azure 해킹 배우기 및 연습하기:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks 지원하기
- 구독 계획 확인하기!
- **💬 디스코드 그룹 또는 텔레그램 그룹에 참여하거나 트위터 🐦 @hacktricks_live를 팔로우하세요.
- HackTricks 및 HackTricks Cloud 깃허브 리포지토리에 PR을 제출하여 해킹 트릭을 공유하세요.
왜 중요한가
LDAP relay/MITM은 공격자가 바인드를 Domain Controllers로 전달하여 인증된 컨텍스트를 얻도록 허용한다. 서버 측 제어 두 가지가 이러한 경로를 차단한다:
- **LDAP Channel Binding (CBT)**는 특정 TLS 터널에 LDAPS 바인드를 묶어 서로 다른 채널 간의 relays/replays를 무력화한다.
- LDAP Signing은 무결성으로 보호된 LDAP 메시지를 강제하여 변조와 대부분의 서명되지 않은 relays를 방지한다.
빠른 공격 측 확인: netexec ldap <dc> -u user -p pass 같은 도구는 서버 상태를 출력한다. (signing:None) 및 (channel binding:Never)가 표시되면 Kerberos/NTLM relays to LDAP가 가능하다(예: KrbRelayUp를 사용하여 RBCD용 msDS-AllowedToActOnBehalfOfOtherIdentity를 쓰고 관리자로 가장).
Server 2025 DCs는 새 GPO(LDAP server signing requirements Enforcement)를 도입하며, 이 GPO는 Not Configured로 둔 경우 기본적으로 Require Signing으로 적용된다. 강제 적용을 피하려면 해당 정책을 명시적으로 Disabled로 설정해야 한다.
LDAP Channel Binding (LDAPS 전용)
- Requirements:
- CVE-2017-8563 패치(2017)는 Extended Protection for Authentication 지원을 추가한다.
- KB4520412(Server 2019/2022)는 LDAPS CBT “what-if” 텔레메트리를 추가한다.
- GPO (DCs):
Domain controller: LDAP server channel binding token requirements Never(기본값, CBT 없음)When Supported(감사: 실패를 기록하지만 차단하지 않음)Always(강제: 유효한 CBT 없는 LDAPS 바인드를 거부)- Audit: 다음을 노출하려면 When Supported로 설정:
- 3074 – 강제했으면 LDAPS 바인드가 CBT 검증에 실패했을 것임.
- 3075 – LDAPS 바인드가 CBT 데이터를 누락했으며 강제했으면 거부되었을 것임.
- (이전 빌드에서는 이벤트 3039가 여전히 CBT 실패를 알린다.)
- Enforcement: LDAPS 클라이언트가 CBT를 전송하면 Always로 설정; LDAPS에서만 효과(원시 389는 해당 없음).
LDAP Signing
- Client GPO:
Network security: LDAP client signing requirements=Require signing(현대 Windows의 기본값은Negotiate signing). - DC GPO:
- Legacy:
Domain controller: LDAP server signing requirements=Require signing(기본값은None). - Server 2025: 레거시 정책을
None으로 두고LDAP server signing requirements Enforcement=Enabled로 설정( Not Configured = 기본적으로 강제 적용; 피하려면Disabled로 설정). - Compatibility: LDAP signing을 지원하는 것은 Windows **XP SP3+**만 해당; 강제 적용 시 구형 시스템은 작동이 중단된다.
우선 감사 기반 배포(권장 약 30일)
- 각 DC에서 LDAP 인터페이스 진단을 활성화하여 서명되지 않은 바인드를 로깅(Event 2889)하도록 설정:
Reg Add HKLM\SYSTEM\CurrentControlSet\Services\NTDS\Diagnostics /v "16 LDAP Interface Events" /t REG_DWORD /d 2
- CBT 텔레메트리를 시작하려면 DC GPO
LDAP server channel binding token requirements= When Supported로 설정합니다. - Directory Service 이벤트를 모니터링합니다:
- 2889 – unsigned/unsigned-allow binds (signing noncompliant).
- 3074/3075 – LDAPS binds that would fail or omit CBT (2019/2022에서는 KB4520412와 위 2단계가 필요합니다).
- 별도의 변경으로 강제 적용합니다:
LDAP server channel binding token requirements= Always (DCs).LDAP client signing requirements= Require signing (clients).LDAP server signing requirements= Require signing (DCs) or (Server 2025)LDAP server signing requirements Enforcement= Enabled.
참고자료
- TrustedSec - LDAP Channel Binding and LDAP Signing
- Microsoft KB4520412 - LDAP channel binding & signing requirements
- Microsoft CVE-2017-8563 - LDAP relay mitigation update
- 0xdf – HTB Bruno (LDAP signing disabled → Kerberos relay → RBCD)
Tip
AWS 해킹 배우기 및 연습하기:
HackTricks Training AWS Red Team Expert (ARTE)
GCP 해킹 배우기 및 연습하기:HackTricks Training GCP Red Team Expert (GRTE)
Azure 해킹 배우기 및 연습하기:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks 지원하기
- 구독 계획 확인하기!
- **💬 디스코드 그룹 또는 텔레그램 그룹에 참여하거나 트위터 🐦 @hacktricks_live를 팔로우하세요.
- HackTricks 및 HackTricks Cloud 깃허브 리포지토리에 PR을 제출하여 해킹 트릭을 공유하세요.


