README.md (3138B)
1 # UDFX - Ultimate Domain Finder X
2
3 Active Directory 통합 DNS에서 도메인 및 DNS 레코드를 수집하는 에어갭 환경용 도구입니다.
4
5 ## 개요
6
7 - **목적**: AD DNS에 등록된 모든 도메인/서브도메인 및 레코드 수집
8 - **환경**: Windows 도메인 환경 (에어갭 지원)
9 - **권한**: 일반 도메인 사용자 권한으로 실행 가능
10 - **방식**: LDAP을 통한 AD DNS 직접 조회
11
12 ## 요구사항
13
14 - Windows PowerShell 5.1 이상
15 - Active Directory 도메인 가입된 시스템
16 - 도메인 사용자 계정
17
18 ## 사용법
19
20 ### 기본 실행
21
22 ```powershell
23 .\Get-ADDnsRecords.ps1 -Domain <도메인명>
24 ```
25
26 ### 예시
27
28 ```powershell
29 # 기본 실행
30 .\Get-ADDnsRecords.ps1 -Domain corp.example.com
31
32 # 출력 파일명 지정
33 .\Get-ADDnsRecords.ps1 -Domain corp.example.com -Output scan_results
34
35 # 디버그 모드 (상세 출력)
36 .\Get-ADDnsRecords.ps1 -Domain corp.example.com -ShowDebug
37 ```
38
39 ### 파라미터
40
41 | 파라미터 | 필수 | 설명 | 기본값 |
42 |----------|------|------|--------|
43 | `-Domain` | O | 대상 AD 도메인명 | - |
44 | `-Output` | X | 출력 파일 기본명 | dns_records |
45 | `-ShowDebug` | X | 상세 출력 활성화 | False |
46
47 ## 출력 파일
48
49 | 파일 | 설명 |
50 |------|------|
51 | `dns_records.csv` | 전체 DNS 레코드 (CSV) |
52 | `dns_records_root_domains.csv` | 루트 도메인 목록 (중복 제거) |
53 | `dns_records.json` | 전체 DNS 레코드 (JSON) |
54 | `dns_records.txt` | 전체 DNS 레코드 (텍스트) |
55
56 ## 출력 필드
57
58 | 필드 | 설명 | 예시 |
59 |------|------|------|
60 | Domain | FQDN | vcsa.example.com |
61 | RecordType | DNS 레코드 타입 | A, NS, CNAME, MX, SRV, TXT |
62 | Value | 레코드 값 | 10.1.10.100 |
63 | Zone | DNS 영역명 | vcsa.example.com |
64 | ZoneType | 영역 분류 | Primary, Subdomain, External |
65 | RootDomain | 루트 도메인 | example.com |
66
67 ### ZoneType 분류
68
69 | 타입 | 설명 |
70 |------|------|
71 | Primary | 메인 AD 도메인 |
72 | Subdomain | 메인 도메인의 서브도메인 |
73 | External | 외부 도메인 |
74
75 ## 지원 레코드 타입
76
77 - **A**: IPv4 주소
78 - **AAAA**: IPv6 주소
79 - **NS**: 네임서버
80 - **CNAME**: 별칭
81 - **MX**: 메일 서버
82 - **SRV**: 서비스 레코드
83 - **TXT**: 텍스트 레코드
84 - **PTR**: 역방향 DNS
85
86 ## 활용 예시
87
88 ### 내부 IP 호스트만 필터링
89
90 ```powershell
91 Import-Csv .\dns_records.csv | Where-Object {
92 $_.RecordType -eq "A" -and
93 ($_.Value -match "^10\." -or $_.Value -match "^172\.(1[6-9]|2[0-9]|3[01])\." -or $_.Value -match "^192\.168\.")
94 } | Export-Csv .\internal_hosts.csv -NoTypeInformation
95 ```
96
97 ### 특정 도메인만 필터링
98
99 ```powershell
100 Import-Csv .\dns_records.csv | Where-Object {
101 $_.RootDomain -eq "example.com"
102 } | Export-Csv .\filtered_records.csv -NoTypeInformation
103 ```
104
105 ### 루트 도메인 목록 확인
106
107 ```powershell
108 Import-Csv .\dns_records_root_domains.csv
109 ```
110
111 ## 제한사항
112
113 - AD 통합 DNS만 지원 (독립 DNS 서버 미지원)
114 - NS, SRV 레코드의 대상 호스트명에 점(.)이 누락될 수 있음
115 - Zone Transfer가 허용되지 않은 환경에서는 LDAP 방식으로 대체
116
117 ## 라이선스
118
119 MIT License