
Active Directory 환경에서 공격과 방어 모두를 위해 귀중한 정보를 신속하게 추출하는 경량 도구입니다.
ADCollector는 Active Directory 환경을 열거하여 가능한 공격 벡터를 식별하는 경량 도구입니다. 환경의 구성/배포에 대한 기본적인 이해를 제공하며 시작점으로 삼을 수 있습니다.
ADCollector는 강력한 PowerView의 대안이 아닙니다. 단지 초기 정찰 단계에서 너무 많은 생각 없이 빠르게 유용한 정보를 식별할 수 있도록 열거를 자동화할 뿐입니다. ADCollector에 구현된 기능은 많은 사용자/컴퓨터가 있는 대규모 엔터프라이즈 환경에서 많은 트래픽을 발생시키거나 많은 시간을 소모하지 않고 열거하는 데 적합합니다. 도메인의 모든 사용자/컴퓨터 개체에서 사용 가능한 모든 속성을 열거하는 대신 가장 가치 있는 대상에서 유용한 속성/속성/ACL을 추출하는 데만 중점을 둡니다. 나중에 더 자세한 열거를 위해 PowerView가 반드시 필요합니다. ADSI를 사용하여 PowerView 대신 도메인을 열거할 수 있습니다. 단, 열거하려는 대상을 알고 있어야 합니다. https://dev-2null.github.io/Easy-Domain-Enumeration-with-ADSI/를 참조하세요.
이 도구를 개발한 목적은 Active Directory 보안에 대해 다른 관점에서 더 많이 배우고 PowerView 함수의 내부 작동 방식을 이해하는 데 도움을 주기 위해서입니다.
S.DS 네임스페이스를 사용하여 도메인 컨트롤러(LDAP 서버)에서 도메인/포리스트 정보를 검색합니다. 또한 LDAP 검색을 위해 S.DS.P 네임스페이스를 활용합니다.
이 도구는 아직 개발 중입니다. 구현될 기능은 프로젝트 페이지에서 확인할 수 있습니다.
비도메인 가입 호스트에서 실행하는 경우 SYSVOL에 액세스할 수 있는지 확인하세요. 강화된 UNC 정책이 적용된 경우 다음 명령을 실행해야 할 수 있습니다:
reg add HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\NetworkProvider\HardenedPaths /v "\\*\SYSVOL" /d "RequireMutualAuthentication=0" /t REG_SZ
PS C:\> .\ADCollector.exe --help
_ ____ ____ _ _ _
/ \ | _ \ / ___|___ | | | ___ ___ _| |_ ___ _ __
/ _ \ | | | | | / _ \| | |/ _ \/ __|_ __/ _ \| '__|
/ ___ \| |_| | |__| (_) | | | __/ (__ | || (_) | |
/_/ \_\____/ \____\___/|_|_|\___|\___| |__/\___/|_|
v3.0.1 by dev2null
--Domain 열거할 도메인
--LDAPS (기본값: false) SSL/TLS를 통한 LDAP
--DisableSigning (기본값: false) Kerberos 암호화 비활성화 (-LDAPS 플래그와 함께 사용)
--UserName 대체 사용자 이름
--Password 대체 자격 증명
--DC 연결할 대체 도메인 컨트롤러 (호스트명/IP)
--OU 특정 조직 구성 단위 아래에서 검색 수행
--LDAPONLY LDAP의 개체만 열거
--ACLScan ID에 대한 ACL 스캔 수행
--ADCS (기본값: false) 인증서 서비스 확인만 수행
--TEMPLATES (기본값: false) 모든 인증서 템플릿과 해당 DACL만 열거
--SCHEMA (기본값: false) 기본 명명 컨텍스트의 스키마 속성 개수 계산
--ADIDNS (기본값: false) ADIDNS 레코드만 수집
--NGAGP 대상 개체의 중첩 그룹 구성원 및 적용된 그룹 정책만 열거
--DACL 대상 개체의 DACL 열거 (DistinguishedName 사용)
--SessionEnum (기본값: false) 대상 호스트의 세션 정보 열거
--UserEnum (기본값: false) 대상 호스트의 사용자 정보 열거
--LocalGMEnum (기본값: false) 대상 호스트의 로컬 그룹 구성원 열거
--Host (기본값: Localhost) 세션/사용자/그룹 구성원 열거를 위한 호스트명
--Group (기본값: Administrators) 로컬 그룹 구성원 열거를 위한 로컬 그룹 이름
--Debug (기본값: false) 디버그 모드
--help 이 도움말 화면을 표시합니다.
예시: .\ADCollector.exe
.\ADCollector.exe --LDAPs --DisableSigning
.\ADCollector.exe --OU IT
.\ADCollector.exe --OU OU=IT,DC=domain,DC=local
.\ADCollector.exe --ADCS
.\ADCollector.exe --TEMPLATES
.\ADCollector.exe --LDAPOnly
.\ADCollector.exe --SCHEMA
.\ADCollector.exe --ADIDNS
.\ADCollector.exe --NGAGP samaccountname
.\ADCollector.exe --DACL DC=domain,DC=net
.\ADCollector.exe --ACLScan user --OU OU=IT,DC=domain,DC=local
.\ADCollector.exe --SessionEnum --Host targetHost
.\ADCollector.exe --UserEnum --Host targetHost
.\ADCollector.exe --LocalGMEnum --Host targetHost --Group 'Remote Desktop Users'
.\ADCollector.exe --Domain domain.local --Username user --Password pass
.\ADCollector.exe --Domain domain.local --DC 10.10.10.1
1. 인증서 템플릿, 스키마 및 사용자 자격 증명 열거 추가
2. 몇 가지 플래그 추가
1. 코드 리팩토링 및 버그 수정
2. 권한 권리 및 개체 DACL 열거 추가
3. 디버그 모드 추가
4. 대화형 메뉴를 명령줄에 병합하고 일부 간단한 LDAP 열거 제거 (ADSI 사용, [ADSI Enum](https://dev-2null.github.io/Easy-Domain-Enumeration-with-ADSI/) 참조)
1. 버그 수정 및 일부 개선
2. LAPS 및 제한된 그룹 열거를 위한 새로운 구현 로직
3. 일부 무거운 열거 함수에 Task 사용 (대규모 도메인에서 훨씬 빠름)
4. GPP 캐시 및 DCSync 계정 열거 제거
1. 특정 OU 아래에서 검색
2. LAPS 상세 보기
3. 머신 소유자
4. 제한된 그룹
5. ADCS 구성
6. ACL 스캔
7. 버그 수정: SYSVOL 액세스, 중첩 그룹 구성원
8. 외부 readINF 종속성을 사용자 정의 구현으로 대체
9. 보호된 사용자
1. 전체 재작성 (확장성 향상)
2. 명령줄 선택과 함께 대화형 메뉴 추가
3. 직접 API 호출로 트러스트 관계 열거
4. 보안 필터링 및 WMI 필터링을 포함한 적용된 GPO 열거 업데이트 (WMIFilter는 수동으로 확인해야 함)
5. LDAP DNS 레코드 열거 추가
6. RunAs: 다른 사용자 컨텍스트에서 ADCollector 실행
7. 유연한 SPN 스캔, DNS 레코드, 중첩 그룹 구성원, ACL 열거
8. NetSessionEnum, NetLocalGroupGetMembers 및 NetWkstaUserEnum 추가
1. 일부 버그 수정 및 세부 사항 개선
2. SPN 스캔을 선택 사항으로 변경
3. SYSVOL/캐시의 GPP cpassword
4. GPO의 흥미로운 ACL; 사용자 개체의 흥미로운 설명;
5. 비정상적인 DCSync 계정; 중요 계정 및 위임 불가 계정
6. 사용자/컴퓨터에 적용되는 GPO
7. 제한된 그룹
8. 중첩 그룹 구성원
9. LAPS 암호 보기 액세스
1. SPN 스캔 결과, 권한 계정 그룹 구성원 수정
2. 암호가 만료되지 않는 계정; SPN이 설정된 사용자 계정;
3. Kerberos 정책
4. 도메인 개체의 흥미로운 ACL 열거, GUID 확인
5. DC 정보 복원
1. 세 개의 클래스로 분리
2. LDAP 연결을 적절히 해제
3. 열거: AdminSDHolder, 도메인 속성 (MAQ, minPwdLength, maxPwdAge, lockOutThreshold, 도메인 개체에 연결된 GP), 사전 인증이 필요 없는 계정
4. LDAP 기본 정보 (supportedLDAPVersion, supportedSASLMechanisms, 도메인/포리스트/DC 기능)
5. SPN 스캔 (MSSQL, Exchange, RDP 및 PS Remoting용 SPN)
6. 제한된 위임 열거 (S4U2Self, S4U2Proxy 및 리소스 기반 제한된 위임)
7. RODC (RODC를 관리하는 그룹)
1. 이제 S.DS.P 네임스페이스를 사용하여 검색 작업을 수행하므로 검색이 더 빠르고 구현이 더 쉬워졌습니다. (페이지 검색도 지원합니다.)
2. 이제 다른 도메인 검색을 지원합니다. (명령줄 파서는 아직 구현되지 않았습니다.)
3. 코드 로직이 재구성되어 코드가 줄어들고 더 이해하기 쉬워졌습니다.
이 도구에 대한 자세한 정보(현재 진행 상황/할 일 목록 등)는 프로젝트 페이지를 방문하세요.