Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
ksubdomain — 서브도메인 열거 도구, 비동기 DNS 패킷, pcap을 사용하여 1초에 1600,000개의 서브도메인을 스캔합니다. | Kitploit
도구/GitHubGitHub/boy-hack/ksubdomain
ReconnaissanceDNS & Subdomain EnumerationInformation GatheringPenetration TestingSubdomain EnumerationDNS FuzzingDNS AnalysisDNS Fuzzing #9위DNS & Subdomain Enumeration #14위Subdomain Enumeration #14위
1.2k162125개월 전Kitploit 검토 완료

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
GitHubboy-hack/ksubdomain

ksubdomain

서브도메인 열거 도구, 비동기 DNS 패킷, pcap을 사용하여 1초에 1600,000개의 서브도메인을 스캔합니다.

저장소 보기

KSubdomain: 초고속 무상태 서브도메인 브루트포스 도구

Release Go Report Card License

English | 한국어

KSubdomain은 무상태 기술 기반의 서브도메인 브루트포스 도구로, 전례 없는 스캔 속도와 낮은 메모리 사용량을 제공합니다. 원시 소켓을 사용하여 네트워크 어댑터를 직접 조작하고 시스템 커널 프로토콜 스택을 우회하며, 신뢰할 수 있는 상태 테이블 재전송 메커니즘을 통해 결과의 완전성을 보장합니다. Windows, Linux, macOS를 지원하며 대규모 DNS 자산 탐지에 최적의 도구입니다.

🚀 핵심 장점

  • 번개 같은 속도: 무상태 스캔이 네트워크 카드를 직접 조작하여 massdns보다 7배, dnsx보다 10배 이상 빠릅니다.
  • 매우 낮은 리소스 소비: 객체 풀 + 전역 메모리 풀을 사용하여 대량의 도메인을 처리해도 메모리 사용량이 낮습니다.
  • 동적 타임아웃 적응: TCP RFC 6298 RTT 슬라이딩 평균(EWMA)을 기반으로 타임아웃을 동적으로 조정하여 수동 파라미터 조정이 필요 없습니다.
  • 다중 네트워크 카드 동시 전송: --interface를 반복하여 여러 네트워크 카드를 지정할 수 있으며, 대역폭을 합산하고 여러 송신 IP를 활용합니다.
  • 스트리밍 SDK: EnumStream/VerifyStream 콜백 API를 제공하여 결과를 실시간으로 처리합니다.
  • 크로스 플랫폼 지원: Windows, Linux, macOS에서 완벽하게 호환됩니다.

⚡ 성능 비교

4코어 CPU, 5M 대역폭, 10만 개 사전 테스트:

📦 설치

사전 컴파일된 바이너리 다운로드

Releases 페이지에서 해당 시스템의 최신 버전을 다운로드하세요.

의존성 설치:

  • Windows: Npcap 드라이버 설치
  • Linux: 정적 컴파일되어 일반적으로 추가 작업 불필요; 문제 발생 시 libpcap-dev 설치
  • macOS: 시스템에 libpcap이 내장되어 있어 설치 불필요

소스 코드 컴파일

root@kitploit:~
git clone https://github.com/boy-hack/ksubdomain.git
cd ksubdomain
# ldflags를 통해 버전 번호를 주입하는 것이 좋습니다.
go build -ldflags "-X github.com/boy-hack/ksubdomain/v2/pkg/core/conf.Version=v2.x.y" \
    -o ksubdomain ./cmd/ksubdomain

또는 go install 사용:

root@kitploit:~
go install github.com/boy-hack/ksubdomain/v2/cmd/ksubdomain@latest

참고: root / CAP_NET_RAW 권한 필요 (원시 소켓 패킷 캡처)

📖 사용 설명

root@kitploit:~
사용법:
  ksubdomain [전역 옵션] <명령> [명령 옵션]

명령:
  enum, e      열거 모드: 메인 도메인의 서브도메인 브루트포스
  verify, v    확인 모드: 도메인 목록의 DNS 해석 여부 확인
  test         로컬 네트워크 카드 최대 전송 속도 테스트
  device       사용 가능한 네트워크 카드 정보 확인
  help, h      도움말 표시

전역 옵션:
  --help, -h       도움말 표시
  --version, -v    버전 정보 출력

확인 모드 (verify)

제공된 도메인 목록에 DNS 레코드가 있는지 확인합니다.

root@kitploit:~
옵션:
  --domain, -d          도메인 지정 (반복 가능)
  --filename, -f        파일에서 도메인 목록 읽기
  --stdin               표준 입력에서 읽기
  --bandwidth, -b       대역폭 제한, 예: 5m, 10m, 100m (기본 3m)
  --resolvers, -r       DNS 서버 지정 (기본값은 내장 사용)
  --output, -o          출력 파일 경로
  --format, -f          출력 형식: txt (기본), json, csv, jsonl
  --silent, -s          자동 모드, 도메인만 출력 (배너 및 로그 미표시)
  --only-domain, --od   도메인만 출력, IP/레코드 미표시
  --retry               재시도 횟수, -1은 무한 재시도 (기본 3)
  --timeout             단일 쿼리 타임아웃 초 (기본 6)
  --interface, -e       네트워크 카드 이름 지정 (반복 가능, 다중 카드 동시 전송)
  --wildcard-filter     와일드카드 필터링: none (기본), basic, advanced
  --predict             서브도메인 예측 모드 활성화
  --quiet, -q           결과를 화면에 출력하지 않음 (파일만 기록)
  --color, -c           컬러 출력
root@kitploit:~
# 단일/여러 도메인 확인
./ksubdomain v -d www.example.com -d mail.example.com

# 파일에서 읽어 txt로 저장
./ksubdomain v -f domains.txt -o output.txt

# 파이프 입력, 대역폭 10M, 자동 모드로 다운스트림 도구와 연동
cat domains.txt | ./ksubdomain v --stdin -b 10m -s --od | httpx -silent

# 고급 와일드카드 필터링, JSONL 출력
./ksubdomain v -f domains.txt --wildcard-filter advanced --format jsonl -o output.jsonl

# 다중 네트워크 카드 동시 전송 (대역폭 합산)
./ksubdomain v -f domains.txt --interface eth0 --interface eth1

열거 모드 (enum)

사전 및 예측 알고리즘을 기반으로 지정된 도메인의 서브도메인을 브루트포스합니다.

root@kitploit:~
옵션:
  --domain, -d          대상 메인 도메인 (반복 가능)
  --domain-list, --ds   배치 메인 도메인 파일
  --filename, -f        사전 파일 경로 (기본값은 내장 사전 사용)
  --use-ns-records      도메인의 NS 레코드를 읽어 DNS 리졸버에 추가
  (나머지 옵션은 verify 모드와 동일)
root@kitploit:~
# 단일 도메인 열거 (내장 사전 사용)
./ksubdomain e -d example.com

# 사전 파일 지정
./ksubdomain e -d example.com -f subdomains.txt -o result.txt

# 예측 모드 + 고급 와일드카드 필터링 활성화
./ksubdomain e -d example.com --predict --wildcard-filter advanced

# 여러 메인 도메인 배치 열거
./ksubdomain e --domain-list roots.txt -b 10m --format jsonl -o result.jsonl

# httpx와 파이프 연동
./ksubdomain e -d example.com --od -s | httpx -silent

테스트/장치 명령

root@kitploit:~
# 네트워크 카드 최대 전송 속도 테스트
./ksubdomain test

# 사용 가능한 네트워크 카드 확인
./ksubdomain device

✨ 기능 특징

동적 타임아웃 적응

--timeout을 수동으로 설정할 필요가 없습니다. 엔진이 실제 측정된 RTT(지수 가중 이동 평균, EWMA α=0.125)를 기반으로 타임아웃 상하한을 동적으로 조정하여 누락을 줄이고 불필요한 대기 시간을 방지합니다.

다중 네트워크 카드 동시 전송

--interface를 반복 지정하여 여러 네트워크 카드로 동시에 패킷을 전송할 수 있습니다. 여러 고루틴이 동일한 domainChan을 공유하여 경쟁적으로 소비함으로써 자연스럽게 로드 밸런싱이 이루어집니다:

root@kitploit:~
./ksubdomain e -d example.com --interface eth0 --interface eth1 -b 20m

예측 모드

--predict를 활성화하면 도구가 이미 발견된 서브도메인을 기반으로 존재할 가능성이 있는 관련 서브도메인을 예측하여 발견율을 높입니다.

와일드카드 필터링

  • none: 필터링 안 함 (기본)
  • basic: 기본 필터링, 명백한 와일드카드 IP 제거
  • advanced: 고급 필터링, 다차원 종합 판단

출력 형식

🔗 도구 연동 예시

root@kitploit:~
# httpx와 연동하여 활성 웹 탐지
./ksubdomain e -d example.com -s --od | httpx -silent

# nuclei 취약점 스캐너와 연동
./ksubdomain e -d example.com -s --od | nuclei -l /dev/stdin

# JSONL 스트리밍 처리, A 레코드만 추출
./ksubdomain e -d example.com --format jsonl | jq -r 'select(.type=="A") | .domain'

# 여러 도메인 배치 + 중복 제거
./ksubdomain e --domain-list roots.txt -s --od | sort -u > all_subs.txt

🌐 플랫폼 주의사항

macOS:

root@kitploit:~
# BPF 버퍼가 작으므로 대역폭 제한 권장
sudo ./ksubdomain e -d example.com -b 5m

WSL/WSL2:

root@kitploit:~
# 일반적으로 eth0 사용
./ksubdomain e -d example.com --interface eth0

Windows:

root@kitploit:~
# Npcap을 먼저 설치하고 관리자 권한으로 실행
.\ksubdomain.exe enum -d example.com

🧩 Go SDK

root@kitploit:~
go get github.com/boy-hack/ksubdomain/v2/sdk
root@kitploit:~
import "github.com/boy-hack/ksubdomain/v2/sdk"

scanner := sdk.NewScanner(&sdk.Config{
    Bandwidth:      "5m",
    Retry:          3,
    WildcardFilter: "advanced",
})

// 블로킹 방식, 모든 결과 수집
results, err := scanner.Enum("example.com")

// 스트리밍 콜백, 실시간 처리
err = scanner.EnumStream(ctx, "example.com", func(r sdk.Result) {
    fmt.Printf("%s => %v\n", r.Domain, r.Records)
})

자세한 내용은 SDK 문서 및 API 문서를 참조하세요.

🧪 테스트

root@kitploit:~
# 단위 테스트 (root 필요 없음)
go test ./pkg/...

# 회귀 테스트 (root + 네트워크 필요)
go build -o ksubdomain ./cmd/ksubdomain
sudo go test ./test/regression/... -tags regression -v -timeout 120s

💡 참고

  • 원본 KSubdomain 프로젝트: knownsec/ksubdomain
  • 무상태 스캔 원리: paper.seebug.org/1052
  • KSubdomain 소개: paper.seebug.org/1325

📜 라이선스

MIT License — 자세한 내용은 LICENSE를 참조하세요.

도구 다운로드
도구방식소요 시간성공 개수
KSubdomainpcap 네트워크 카드 전송~30초1397
massdnspcap/socket~3분 29초1396
dnsxsocket~5분 26초1396
형식설명적용 시나리오
txt도메인 => 레코드, 실시간 출력기본, 사람이 읽기
json완전한 JSON, 완료 후 한 번에 기록프로그램 파싱
csvCSV 표, 완료 후 한 번에 기록데이터 분석
jsonl한 줄에 하나의 JSON, 실시간 출력스트리밍 처리, 파이프 연동