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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
knockpy — Knock 서브도메인 스캔 | Kitploit
도구/GitHubGitHub/guelfoweb/knockpy
OSINT (Open Source Intelligence)ReconnaissanceInformation GatheringPenetration TestingSubdomain EnumerationDNS Analysis
GitHubguelfoweb/knockpy

knockpy

Knock 서브도메인 스캔

저장소 보기
4.2k8736개월 전Kitploit 검토 완료

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

🔍 Knockpy 서브도메인 스캔 v9.0

✅ 빠르고 비동기 • 🔐 정찰 + 무차별 • 🔧 확장하기 쉬움

KnockPy는 수동 정찰 및 무차별 대입을 통해 서브도메인을 열거하는 모듈식 Python 3 도구로, 이제 async/await 지원, 향상된 성능 및 최신 HTTP/TLS 처리를 갖추고 있습니다.


🚀 기능 (v9)

  • ✅ httpx 및 DNS 해석을 사용한 비동기 스캔
  • ✅ 모듈식: 새로운 수동 소스를 쉽게 연결
  • 🔍 수동 정찰, 무차별 대입 또는 둘 다 지원
  • 🎨 Rich를 사용한 형식화된 터미널 출력 (테이블, 진행률, 패널)
  • 📜 HTTP/HTTPS 상태, TLS 인증서 및 IP 확인
  • ⚠️ CLI/상세/HTML 보고서에서 레거시 TLS 지원(TLS 1.0/1.1)을 경고로 감지
  • 🧾 도메인 모드 스캔 중 루트 도메인에서 AXFR(영역 전송) 확인
  • 🔎 --verbose 단일 도메인 진단 (DNS/TCP/TLS/리디렉션 체인/요청 오류 + 보안 검사)
  • 💡 와일드카드 DNS 감지 지원
  • 🧪 대화식 카탈로그(show/delete/export/search)가 있는 SQLite 보고서
  • 🔐 VirusTotal 및 Shodan API 지원
  • 🚀 TLS 프로브 엔드포인트 캐싱으로 최적화된 무차별 대입 실행 시간 (타임아웃 변경 불필요)

📦 설치

GitHub 소스에서 설치 (권장)

root@kitploit:~
git clone https://github.com/guelfoweb/knockpy.git
cd knockpy
# recommended: install in a virtual environment
python3 -m venv .venv
. .venv/bin/activate
python3 -m pip install -U pip
pip install .

# alternative: install for the current user (no venv)
# python3 -m pip install --user .

⚠️ 권장 Python 버전: 3.9+

🧱 프로젝트 구조

코드베이스는 책임별로 구성되어 있으며, 하위 호환성을 위한 안정적인 퍼사드를 제공합니다.

root@kitploit:~
knockpy/
  cli.py                   # CLI entrypoint (facade/orchestration)
  cli_parts/
    status.py              # runtime/status panel rendering
    setup.py               # interactive setup and persisted runtime defaults
    report.py              # interactive report mode
    scan_flow.py           # exclude rules, recon-test, wildcard helpers
  core.py                  # public core facade (compatibility)
  engine/
    runtime.py             # scanning engine implementation
  storage.py               # public storage facade (compatibility)
  storage_parts/
    db.py                  # SQLite persistence/settings
    export.py              # report export orchestration
    html_report.py         # HTML report rendering
  output.py                # terminal output rendering
  server_versions.py       # web-server versions catalog
  knockpy.py               # compatibility module exports

호환성 참고:

  • 선호하는 외부 임포트: import knockpy 또는 from knockpy import KNOCKPY.
  • 내부 모듈은 engine/, cli_parts/, storage_parts/로 분할됩니다.

pip 사용

GitHub에 안정 버전이 출시된 후에만

root@kitploit:~
pip install knock-subdomains

🧪 사용법

root@kitploit:~
knockpy -d domain.com [options]

옵션

성능 튜닝: --threads 및 --timeout

이 두 옵션은 대규모 스캔의 실행 시간에 가장 큰 영향을 미칩니다.

  • --threads는 동시성을 제어합니다 (병렬로 처리되는 대상 수)
  • --timeout은 각 네트워크 단계가 포기하기 전에 대기하는 시간을 제어합니다

절충점:

  • 더 높은 threads = 스캔 속도는 빠르지만 CPU/네트워크/DNS 부하 증가 및 원격 속도 제한 위험 증가
  • 더 낮은 timeout = 스캔 속도는 빠르지만 느리지만 유효한 대상을 놓칠 위험 증가 (위음성)

권장 프로필:

  • 소규모/정확한 스캔 (적은 도메인): --threads 50 --timeout 5
  • 균형 스캔: --threads 150 --timeout 4
  • 대규모 스캔 (10k+ 도메인): --threads 250 --timeout 3부터 시작

매우 큰 목록에서 속도와 완전성을 모두 필요로 하는 경우 2패스 전략을 사용하십시오:

  1. 빠른 패스: --threads 250 --timeout 3
  2. 누락/불확실한 대상에 대해서만 재시도 패스: --threads 80 --timeout 5 (또는 그 이상)

참고:

  • CLI 값은 항상 저장된 설정 값을 재정의합니다
  • 저장된 설정 값(--setup)은 내장 기본값을 재정의합니다
  • 현재 내장 기본값은 threads=250, timeout=3입니다

📌 예제

🔎 정찰 + 무차별

root@kitploit:~
knockpy -d example.com --recon --bruteforce

🧪 정찰 서비스 테스트

root@kitploit:~
knockpy -d example.com --recon --test

🔄 웹 서버 최신 버전 카탈로그 업데이트

root@kitploit:~
knockpy --update-versions

🆕 Knockpy 업데이트 확인

root@kitploit:~
knockpy --check-update

⚙️ 정찰 소스 구성 (편집 가능)

첫 실행 시 KnockPy가 다음을 생성합니다:

root@kitploit:~
~/.knockpy/recon_services.json

services 배열을 편집하여 소스를 추가/비활성화할 수 있습니다. 코드를 변경하지 않고 사용자 정의 파일 경로를 지정할 수도 있습니다:

root@kitploit:~
export KNOCK_RECON_SERVICES=/path/to/recon_services.json

각 서비스는 다음을 지원합니다:

  • name
  • enabled (true/false)
  • parser
  • url_template (supports {domain}, {virustotal_key}, {shodan_key})
  • requires_api (virustotal or shodan, optional)

지원되는 파서:

  • csv_first_column
  • rapiddns_html_td
  • json_list
  • virustotal_subdomains
  • shodan_subdomains

📥 표준 입력으로 도메인

root@kitploit:~
echo "example.com" | knockpy -d

🧠 API 키 (선택 사항)

root@kitploit:~
export API_KEY_VIRUSTOTAL=your-virustotal-api-key
export API_KEY_SHODAN=your-shodan-api-key

.env 파일을 사용할 수 있습니다:

root@kitploit:~
API_KEY_VIRUSTOTAL=your-virustotal-api-key
API_KEY_SHODAN=your-shodan-api-key

💾 보고서 (SQLite + 대화식 HTML 내보내기)

root@kitploit:~
knockpy -d example.com --recon --bruteforce
knockpy --report list
knockpy --report latest
knockpy --report

대화식 보고서 메뉴:

  • 1 show
  • 2 delete
  • 3 export
  • 4 search
  • 0 reset db (명시적 확인 요청)

보고서 모드 종료:

  • 빈 작업 프롬프트에서 Enter 누르기
  • 또는 CTRL+C 누르기

🔍 단일 도메인 진단

root@kitploit:~
knockpy -d forum.example.com --verbose

🧪 와일드카드 테스트만

root@kitploit:~
knockpy -d example.com --wildcard

🧬 Python API 사용법

KnockPy는 Python 모듈로 사용할 수 있습니다:

root@kitploit:~
import knockpy

result = knockpy.KNOCKPY("example.com", timeout=5.0, threads=20)
print(result["domain"], result["ip"])

또는:

root@kitploit:~
from knockpy import KNOCKPY

domain = 'example.com'

results = KNOCKPY(
    domain,
    dns="8.8.8.8",
    useragent="Mozilla/5.0",
    timeout=5,
    threads=10,
    recon=True,
    bruteforce=True,
    wordlist=None,
    silent=False
)

for entry in results:
    print(entry['domain'], entry['ip'], entry['http'], entry['cert'])

📂 워드리스트

기본 워드리스트는 knockpy/wordlist/wordlist.txt에 포함되어 있습니다. --wordlist로 자신의 워드리스트를 제공할 수 있습니다.

테스트

root@kitploit:~
python3 -m pytest

# (optional) smoke-run example script
python3 examples/poc.py

📖 라이선스

GPLv3 라이선스에 따라 라이선스가 부여됩니다.

Gianni Amato (@guelfoweb)

도구 다운로드
FlagDescription
-d, --domain대상 도메인 (값 없이 사용 시 표준 입력)
-f, --file도메인 목록이 포함된 파일
--recon수동 정찰 활성화
--bruteforce, --brute워드리스트를 사용한 무차별 대입 활성화
--exclude TYPE VALUE일치 항목 제외 (status, length/lenght, body)
--verbose단일 도메인 스캔에 대한 심층 진단
--wildcard와일드카드 DNS 테스트 후 종료
--test--recon과 함께 사용 시 각 정찰 소스 테스트 (실패/빈/데이터)
--setup대화식 설정 (런타임 기본값 + DB에 API 키)
--update-versions로컬 최신 웹 서버 버전 카탈로그 업데이트
--report [ID|latest|list]보고서 모드 (대화식 show/delete/export/search/reset db, HTML 내보내기)
--check-updatePyPI에서 최신 Knockpy 릴리스가 있는지 온라인 확인
--wordlist워드리스트에 대한 런타임 재정의
--dnsDNS 리졸버에 대한 런타임 재정의
--useragentHTTP 사용자 에이전트에 대한 런타임 재정의
--timeout타임아웃에 대한 런타임 재정의 (초)
--threads동시 작업자 수에 대한 런타임 재정의
--silent진행률 표시줄 숨기기
--jsonJSON 전용 출력 (--silent 강제)
--status런타임 상태 출력 후 계속
-h, --help도움말 메시지 표시