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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
dnstwist — 동형이의어 피싱 공격, 오타 스쿼팅, 브랜드 사칭을 탐지하는 도메인 이름 변형 엔진 | Kitploit
도구/GitHubGitHub/elceef/dnstwist
OSINT (Open Source Intelligence)ReconnaissanceDNS & Subdomain EnumerationInformation GatheringPhishingFuzzingThreat IntelligenceDNS Analysis
GitHubelceef/dnstwist

dnstwist

동형이의어 피싱 공격, 오타 스쿼팅, 브랜드 사칭을 탐지하는 도메인 이름 변형 엔진

저장소 보기
5.7k8521년 전Kitploit 검토 완료

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
웹사이트

dnstwist

사용자가 도메인 이름을 입력하려다 겪을 수 있는 문제를 확인하세요. 공격자가 여러분을 공격하는 데 사용할 수 있는 유사 도메인을 찾아냅니다. 타이포스쿼팅(typosquatting), 피싱 공격, 사기, 브랜드 사칭을 탐지할 수 있습니다. 표적형 위협 인텔리전스의 추가 소스로 유용합니다.

Demo

DNS 퍼징은 잠재적으로 악의적인 도메인을 발견하기 위한 자동화된 워크플로입니다. 조직을 노리는 도메인을 대상으로 합니다. 이 도구는 포괄적인 목록을 생성합니다. 제공된 도메인 이름을 기반으로 변형 목록을 생성한 다음, 이 변형들이 실제로 사용 중인지 확인합니다. 또한 웹 페이지의 퍼지 해시를 생성하여 진행 중인 피싱 공격이나 브랜드 사칭 등을 탐지할 수 있습니다!

서두르시나요? 웹 브라우저에서 사용해 보세요: dnstwist.it

주요 기능

  • 다양하고 매우 효과적인 도메인 퍼징 알고리즘
  • 유니코드 도메인 이름(IDN)
  • 사전 파일의 추가 도메인 변형
  • 효율적인 멀티스레드 작업 분산
  • 실시간 피싱 웹페이지 탐지:
    • 퍼지 해시(ssdeep/tlsh)를 이용한 HTML 유사성
    • 지각 해시(pHash)를 이용한 스크린샷 시각적 유사성
  • 불량 MX 호스트 탐지(잘못 전송된 이메일 가로채기)
  • GeoIP 위치
  • CSV 및 JSON 내보내기

설치

Python PIP

root@kitploit:~
$ pip install dnstwist[full]

또는 최소한의 패키지만 설치하고 필요에 따라 다른 요구 사항을 수동으로 추가하십시오:

root@kitploit:~
$ pip install dnstwist

Git

최신 코드를 실행하려면 Git에서 설치할 수 있습니다:

root@kitploit:~
$ git clone https://github.com/elceef/dnstwist.git
$ cd dnstwist
$ pip install .

Debian/Ubuntu/Kali Linux

다음 명령을 실행하여 모든 추가 패키지와 함께 도구를 설치하십시오:

root@kitploit:~
$ sudo apt install dnstwist

Fedora Linux

root@kitploit:~
$ sudo dnf install dnstwist

Arch Linux User Repository (yay)

root@kitploit:~
$ yay -S dnstwist

macOS

이렇게 하면 dnstwist와 모든 종속 항목이 함께 설치되고 바이너리는 $PATH에 추가됩니다.

root@kitploit:~
$ brew install dnstwist

Docker

Docker Hub에서 공식 이미지를 가져와 실행하십시오:

root@kitploit:~
$ docker run -it elceef/dnstwist

또는 로컬 이미지를 직접 빌드할 수 있습니다:

root@kitploit:~
$ docker build -t dnstwist .
$ docker build -t dnstwist:phash --build-arg phash=1 .

빠른 시작 가이드

이 도구는 제공된 도메인 이름을 퍼징 알고리즘에 적용하여 DNS 레코드와 함께 잠재적 피싱 도메인 목록을 생성합니다.

일반적으로 수천 개의 도메인 변형이 생성됩니다. 특히 입력 도메인이 길수록 더욱 그렇습니다. 이 경우 등록된 도메인만 표시하는 것이 실용적일 수 있습니다. 등록된 도메인만 표시하는 것이 실용적입니다:

root@kitploit:~
$ dnstwist --registered domain.name

DNS 서버가 짧은 시간 안에 수천 건의 요청을 처리할 수 있는지 확인하십시오. 그렇지 않으면 외부 DNS 또는 DNS-over-HTTPS 서버를 --nameservers 인수로 지정할 수 있습니다.

퍼징 알고리즘으로 생성된 도메인 변형이 충분하지 않다면, dnstwist에 사전 파일을 제공하십시오. 피싱 캠페인에서 가장 흔한 단어 목록이 담긴 일부 사전 샘플도 포함되어 있습니다.

root@kitploit:~
$ dnstwist --dictionary dictionaries/english.dict domain.name

다른 TLD를 가진 도메인이 존재하는지 확인해야 한다면, TLD 목록이 담긴 사전 파일을 제공하기만 하면 됩니다.

root@kitploit:~
$ dnstwist --tld dictionaries/common_tlds.dict domain.name

반면, 선택된 알고리즘만 사용해야 하는 경우에는 --fuzzers 인수를 사용할 수 있으며, 쉼표로 구분된 목록을 받습니다.

root@kitploit:~
$ dnstwist --fuzzers "homoglyph,hyphenation" domain.name

화려한 터미널 출력 외에도 이 도구는 결과를 CSV와 JSON으로 내보낼 수 있습니다:

root@kitploit:~
$ dnstwist --format csv domain.name | column -t -s,
$ dnstwist --format json domain.name | jq

DNS 조회 없이 순수한 변형만 필요할 경우 --format list 인수를 사용하십시오:

root@kitploit:~
$ dnstwist --format list domain.name

이 도구는 실시간 조회를 수행하여 IPv4 주소의 지리적 위치(국가 단위 근사)를 반환할 수 있습니다.

root@kitploit:~
$ dnstwist --geoip domain.name

기본적으로 GeoIP2 라이브러리가 사용됩니다. 국가 데이터베이스 위치는 $GEOLITE2_MMDB 환경 변수로 지정해야 합니다. 라이브러리나 데이터베이스가 없으면 이전 버전인 GeoIP Legacy로 대체됩니다.

사용 가능한 모든 옵션과 간단한 설명을 표시하려면 인수 없이 도구를 실행하십시오.

피싱 탐지

각 도메인 이름이 피싱 사이트를 제공하는지 수동으로 확인하는 것은 시간이 많이 걸릴 수 있습니다. 이를 해결하기 위해 dnstwist는 소위 퍼지 해시 (locality-sensitive hash, LSH)와 지각 해시(pHash)를 사용합니다. 퍼지 해싱은 두 입력(HTML 코드)을 비교하여 기본적인 유사성 수준을 결정하는 개념이며, 지각 해시는 이미지(웹 페이지 스크린샷)의 시각적 특징에서 파생된 지문입니다.

퍼지 해싱

유사한 HTML 소스 코드를 탐지하는 고유 기능은 --lsh 인수로 활성화할 수 있습니다. 생성된 각 도메인에 대해 dnstwist는 응답하는 HTTP 서버에서 콘텐츠를 가져와(가능한 리디렉션을 따라) HTML 코드를 정규화하고 원래(초기) 도메인의 퍼지 해시와 비교합니다. 유사성 수준은 백분율로 표시됩니다.

실제 URL이 원래 도메인과 동일한 경우, 오탐(false positive)을 배제하기 위해 퍼지 해시를 전혀 계산하지 않습니다.

참고: MITM 공격 프레임워크에서도 100% 일치를 얻기는 어렵고, 피싱 사이트의 HTML 소스 코드가 완전히 다를 수 있다는 점을 명심하세요.

root@kitploit:~
$ dnstwist --lsh domain.name

경우에 따라 피싱 사이트는 특정 URL에서 제공됩니다. 전체 또는 일부 URL 주소를 인수로 제공하면 dnstwist가 이를 파싱하여 생성된 각 도메인 이름 변형에 적용합니다. --lsh-url을 사용하면 원본 웹 페이지를 가져올 URL을 재정의할 수 있습니다.

root@kitploit:~
$ dnstwist --lsh https://domain.name/owa/
$ dnstwist --lsh --lsh-url https://different.domain/owa/ domain.name

기본적으로 ssdeep이 LSH 알고리즘으로 사용되지만 TLSH도 사용할 수 있으며, 다음과 같이 활성화할 수 있습니다:

root@kitploit:~
$ dnstwist --lsh tlsh domain.name

지각 해싱

Chromium 브라우저가 설치되어 있으면 dnstwist는 그래픽 사용자 인터페이스 없이 작동하는 헤드리스 모드를 활용하여 웹 페이지 스크린샷을 캡처하고 렌더링한 다음 pHash 값을 계산할 수 있습니다. 이러한 pHash 값들은 그런 다음 비교하여 시각적 유사성을 백분율로 평가합니다.

root@kitploit:~
$ dnstwist --phash domain.name

또한 캡처한 스크린샷을 PNG 형식으로 원하는 위치에 저장할 수 있습니다:

root@kitploit:~
$ dnstwist --phash --screenshots /tmp/domain domain.name

참고: 완전한 기능을 갖춘 웹 브라우저를 멀티스레드로 사용하기 때문에 적절한 양의 여유 리소스(주로 메모리)가 제공되어야 합니다.

프록시 지원

모든 HTTP 연결에서 $<scheme>_proxy라는 이름의 환경 변수가 대소문자를 구분하지 않고 감지되면 프록시가 자동으로 사용됩니다. 소문자와 대문자 환경 변수가 모두 존재하면 소문자가 우선합니다.

API

코드에서 도구가 생성한 데이터를 사용해야 하는 경우, 가장 편리하고 효율적인 방법은 다음과 같이 입력을 전달하는 것입니다.

root@kitploit:~
>>> import dnstwist
>>> data = dnstwist.run(domain='domain.name', registered=True, format='null')

완전히 수동적인 운영 모드로 작동하여 도메인 변형만 생성하려면 list 형식을 null 장치로의 출력 리디렉션과 결합해야 합니다.

root@kitploit:~
>>> dnstwist.run(domain='domain.name', format='list', output=dnstwist.devnull)

dnstwist.run()의 인수는 내부적으로 변환되므로 사용법은 명령줄과 매우 유사합니다. 반환되는 데이터 구조는 처리하기 쉬운 사전(dictionary) 목록입니다. dnstwist.run()이 여러 데몬 스레드를 생성한다는 점을 명심하세요.

성능 튜닝

수천 개의 도메인 변형을 테스트할 때 속도와 효율성은 분명한 우선순위입니다. 반면 이 도구는 DNS 리졸버에 과부하를 주지 않고 소중한 리소스를 절약하면서 '즉시 작동'하도록 설계되었습니다. 그렇긴 하지만 기본 설정은 신중한 균형을 이루고 있으며, 개선의 여지는 항상 있습니다.

스레드 수를 실험해 보는 것이 좋습니다. 처음에는 이 값이 사용 가능한 CPU 코어 수를 기준으로 계산되지만, 대부분의 경우 이 값을 높이면 상당한 성능 향상을 얻을 수 있습니다. 또 다른 제안은 네트워크 왕복 시간(RTT)이 가장 낮은 빠른 DNS 리졸버를 선택하는 것입니다. 몇 밀리초는 큰 차이처럼 느껴지지 않을 수 있지만, 수천 개의 도메인 변형에 걸쳐 곱해지면 눈에 띄는 시간 절약으로 이어집니다.

커버리지 참고 사항

입력 도메인의 길이가 길어질수록 알고리즘이 생성하는 변형 수가 크게 증가하며, 이를 검증하는 데 필요한 시간과 리소스도 상당히 증가합니다. 가능한 모든 도메인 변형을 확인하는 것은 특히 더 긴 입력 도메인의 경우 비현실적이며, 수백만 건의 DNS 조회가 필요할 것입니다. 따라서 이 도구는 원래 도메인과 매우 유사한 도메인을 생성하고 확인합니다. 이론적으로 이러한 도메인은 공격자의 관점에서 가장 매력적입니다. 그러나 공격자의 상상력은 무한하다는 점을 명심하는 것이 중요합니다.

유니코드 테이블은 수천 개의 문자로 구성되어 있으며, 그중 상당수는 서로 시각적으로 유사합니다. 그러나 일부 문자가 퓨니코드(punycode)로 인코딩될 수 있음에도 불구하고, 대부분의 TLD 기관은 도메인 등록 과정에서 이를 거부합니다. 일반적으로 TLD 기관은 서로 다른 유니코드 문자 체계의 문자를 혼합하는 것을 허용하지 않거나 자체 허용 문자 집합을 유지합니다. 그럼에도 불구하고 호모글리프 퍼저는 생성된 도메인이 실제로 등록될 수 있도록 신중하게 연구된 유니코드 문자(호모글리프) 범위를 기반으로 구축되었습니다.

통합

이 스캐너는 전 세계 수십 개의 SOC 및 침해 대응 팀과 독립 정보 보안 분석가 및 연구자들이 사용하고 있습니다. 이에 더해 많은 보안 공급업체의 제품과 서비스에 통합되어 있으며, 특히 다음과 같습니다(이에 국한되지는 않음):

Splunk add-on, RecordedFuture, SpiderFoot, DigitalShadows, SecurityRisk, SmartFense, ThreatPipes, PaloAlto Cortex XSOAR, Rapid7 InsightConnect SOAR, Mimecast, Watcher, Intel Owl, PatrOwl, VDA Labs, Appsecco, Maltego, Conscia ThreatInsights, Fortinet FortiSOAR, ThreatConnect, CISA Crossfeed.

연락처

질문, 생각, 또는 초콜릿 바를 보내려면 [email protected]. 어떤 피드백이든 환영합니다. 확인된 피싱 도메인을 발견했거나 이 도구가 마음에 든다면 주저하지 말고 메시지를 보내주세요. 감사합니다.

도구 다운로드