UDFX - Ultimate Domain Finder X
Active Directory 통합 DNS에서 도메인 및 DNS 레코드를 수집하는 에어갭 환경용 도구입니다.
개요
- 목적: AD DNS에 등록된 모든 도메인/서브도메인 및 레코드 수집
- 환경: Windows 도메인 환경 (에어갭 지원)
- 권한: 일반 도메인 사용자 권한으로 실행 가능
- 방식: LDAP을 통한 AD DNS 직접 조회
요구사항
- Windows PowerShell 5.1 이상
- Active Directory 도메인 가입된 시스템
- 도메인 사용자 계정
사용법
기본 실행
.\Get-ADDnsRecords.ps1 -Domain <도메인명>
예시
# 기본 실행
.\Get-ADDnsRecords.ps1 -Domain corp.example.com
# 출력 파일명 지정
.\Get-ADDnsRecords.ps1 -Domain corp.example.com -Output scan_results
# 디버그 모드 (상세 출력)
.\Get-ADDnsRecords.ps1 -Domain corp.example.com -ShowDebug
파라미터
| 파라미터 | 필수 | 설명 | 기본값 |
|---|
-Domain | O | 대상 AD 도메인명 | - |
-Output | X | 출력 파일 기본명 | dns_records |
-ShowDebug | X | 상세 출력 활성화 | False |
출력 파일
| 파일 | 설명 |
|---|
dns_records.csv | 전체 DNS 레코드 (CSV) |
dns_records_root_domains.csv | 루트 도메인 목록 (중복 제거) |
dns_records.json | 전체 DNS 레코드 (JSON) |
dns_records.txt | 전체 DNS 레코드 (텍스트) |
출력 필드
| 필드 | 설명 | 예시 |
|---|
| Domain | FQDN | vcsa.example.com |
| RecordType | DNS 레코드 타입 | A, NS, CNAME, MX, SRV, TXT |
| Value | 레코드 값 | 10.1.10.100 |
| Zone | DNS 영역명 | vcsa.example.com |
| ZoneType | 영역 분류 | Primary, Subdomain, External |
| RootDomain | 루트 도메인 | example.com |
ZoneType 분류
| 타입 | 설명 |
|---|
| Primary | 메인 AD 도메인 |
| Subdomain | 메인 도메인의 서브도메인 |
| External | 외부 도메인 |
지원 레코드 타입
- A: IPv4 주소
- AAAA: IPv6 주소
- NS: 네임서버
- CNAME: 별칭
- MX: 메일 서버
- SRV: 서비스 레코드
- TXT: 텍스트 레코드
- PTR: 역방향 DNS
활용 예시
내부 IP 호스트만 필터링
Import-Csv .\dns_records.csv | Where-Object {
$_.RecordType -eq "A" -and
($_.Value -match "^10\." -or $_.Value -match "^172\.(1[6-9]|2[0-9]|3[01])\." -or $_.Value -match "^192\.168\.")
} | Export-Csv .\internal_hosts.csv -NoTypeInformation
특정 도메인만 필터링
Import-Csv .\dns_records.csv | Where-Object {
$_.RootDomain -eq "example.com"
} | Export-Csv .\filtered_records.csv -NoTypeInformation
루트 도메인 목록 확인
Import-Csv .\dns_records_root_domains.csv
제한사항
- AD 통합 DNS만 지원 (독립 DNS 서버 미지원)
- NS, SRV 레코드의 대상 호스트명에 점(.)이 누락될 수 있음
- Zone Transfer가 허용되지 않은 환경에서는 LDAP 방식으로 대체
라이선스
MIT License