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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
whonow — DNS 리바인딩 공격을 즉석에서 실행하기 위한 '악성' DNS 서버 (rebind.network:53에서 실행되는 공개 인스턴스) | Kitploit
도구/GitHubGitHub/brannondorsey/whonow
Web Application ExploitationPenetration TestingLearning & EducationRed TeamingDNS Analysis
GitHubbrannondorsey/whonow

whonow

DNS 리바인딩 공격을 즉석에서 실행하기 위한 '악성' DNS 서버 (rebind.network:53에서 실행되는 공개 인스턴스)

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

Whonow DNS 서버

DNS 리바인딩 공격을 실행하기 위한 악성 DNS 서버입니다. whonow를 사용하면 도메인 요청 자체를 통해 DNS 응답 및 리바인드 규칙을 동적으로 지정할 수 있습니다.

root@kitploit:~
# respond to DNS queries for this domain with 34.192.228.43 the first time
# it is requested and then 192.168.1.1 every time after that
A.34.192.228.43.1time.192.168.1.1.forever.rebind.network

# respond first with 34.192.228.43, then 192.168.1.1 the next five times,
# and then start all over again (1, then 5, forever...)
A.34.192.228.43.1time.192.168.1.1.5times.repeat.rebind.network

동적 DNS 리바인딩 규칙의 장점은 브라우저의 동일 출처 정책을 악용하기 위해 자체 악성 DNS 서버를 구축할 필요가 없다는 것입니다. 대신 모든 사용자가 rebind.network의 포트 53에서 실행되는 동일한 공용 whonow 서버를 공유할 수 있습니다.

참고: 각 DNS 조회 시 whonow 서버에 대한 UUID(예: a06a5856-1fff-4415-9aa2-823230b05826)를 서브도메인으로 포함해야 합니다. 이 README의 예제에서는 간결함을 위해 생략되었지만, *.rebind.network에 대한 요청은 실제로 *.a06a5856-1fff-4415-9aa2-823230b05826.rebind.network여야 합니다. 자세한 내용은 Gotchas 섹션을 참조하세요.

면책 조항: 이 소프트웨어는 교육 목적으로만 제공됩니다. 이 소프트웨어는 불법 활동에 사용되어서는 안 됩니다. 작성자는 이 소프트웨어의 사용에 대해 책임을 지지 않습니다. 나쁜 사람이 되지 마세요.

서브도메인 = 리바인드 규칙

whonow의 장점은 도메인 이름 자체의 서브도메인을 통해 DNS 응답의 동작을 정의할 수 있다는 것입니다. A, (n)times, forever, repeat와 같은 몇 가지 간단한 키워드만으로 복잡하고 강력한 DNS 동작을 정의할 수 있습니다.

whonow 요청의 구조

root@kitploit:~
A.<ip-address>.<rule>[.<ip-address>.<rule>[.<ip-address>.<rule>]][.uuid/random-string].example.com
  • A: DNS 요청 유형입니다. 현재는 A 레코드만 지원되지만, 곧 AAAA도 지원될 예정입니다.
  • <ip-address>: ipv4(IPv6 곧 지원 예정) 주소로, 각 옥텟은 점으로 구분됩니다(예: 192.168.1.1).
  • <rule>: 다음 세 가지 규칙 중 하나입니다.
    • (n)time[s]: DNS 서버가 이전 IP 주소로 응답해야 하는 횟수입니다. 복수형과 단수형 문자열을 모두 허용합니다(예: 1time, 3times, 5000times).
    • forever: 이전 IP 주소로 영원히 응답합니다.
    • repeat: 처음부터 전체 규칙 세트를 반복합니다.
  • [uuid/random-string]: 동일한 IP 주소에 대한 DNS 리바인드 공격을 서로 분리하기 위한 임의의 문자열입니다. 자세한 내용은 Gotchas를 참조하세요.
  • example.com: 공개적으로 사용 가능한 rebind.network:53 인스턴스와 같이 네임서버를 가리키는 도메인 이름입니다.

규칙은 함께 연결되어 복잡한 응답 동작을 형성할 수 있습니다.

예제

root@kitploit:~
# always respond with 192.168.1.1. This isn't really DNS rebinding
# but it still works
A.192.168.1.1.forever.rebind.network

# alternate between localhost and 10.0.0.1 forever
A.127.0.0.1.1time.10.0.0.1.1time.repeat.rebind.network

# first respond with 192.168.1.1 then 192.168.1.2. Now respond 192.168.1.3 forever.
A.192.168.1.1.1time.192.168.1.2.2times.192.168.1.3.forever.rebind.network

# respond with 34.192.228.43 the first time, then whatever `whonow --default-address`
# is set to forever after that (default: 127.0.0.1)
A.34.192.228.43.1time.rebind.network

제한 사항

각 레이블[서브도메인]은 0자에서 63자까지 포함할 수 있습니다... 전체 도메인 이름은 텍스트 표현에서 253자를 초과할 수 없습니다. (DNS Wikipedia 페이지에서 인용)

또한 레이블/서브도메인은 127개를 초과할 수 없습니다.

주의사항

고유한 도메인 이름 사용

whonow에 대한 각 고유 도메인 이름 요청은 서버 RAM에 작은 상태 저장 프로그램을 생성합니다. 다음에 해당 도메인 이름이 요청되면 프로그램 카운터가 증가하고 상태가 변경될 수 있습니다. 모든 고유 도메인 이름은 자체 고유 프로그램 인스턴스입니다. 다른 사용자와 충돌하거나 도메인 이름 프로그램의 상태가 실수로 증가하는 것을 방지하려면 규칙 정의 뒤에 UUID 서브도메인을 추가해야 합니다. 해당 UUID는 절대 재사용되어서는 안 됩니다.

root@kitploit:~
# this
A.127.0.0.1.1time.10.0.0.1.1time.repeat.8f058b82-4c39-4dfe-91f7-9b07bcd7fbd4.rebind.network

# not this
A.127.0.0.1.1time.10.0.0.1.1time.repeat.rebind.network

--max-ram-domains

각 고유 도메인 이름과 관련된 프로그램 상태는 whonow에 의해 RAM에 저장됩니다. RAM 부족을 방지하기 위해 동시에 관리할 수 있는 고유 도메인 수에 상한이 설정됩니다. 기본적으로 이 값은 10,000,000으로 설정되어 있지만 --max-ram-domains로 구성할 수 있습니다. 이 제한에 도달하면 도메인 이름과 저장된 프로그램 상태가 추가된 순서(FIFO)대로 제거됩니다.

자체 whonow 서버 실행

클라우드에서 자체 whonow 서버를 실행하려면 도메인 이름 제공업체의 관리 패널을 사용하여 VPS를 가리키는 사용자 지정 네임서버를 구성하세요. 그런 다음 해당 VPS에 whonow를 설치하고 포트 53(기본 DNS 포트)에서 실행 중이며 포트 53이 인터넷에 액세스 가능한지 확인하세요.

root@kitploit:~
# install
npm install --cli -g whonow@latest

# run it!
whonow --port 53

# you can also run it with more logging to stdout and save DNS activity to CSV
whonow --port 53 --logfile log.csv --verbose

whonow screenshot

위의 방법이 너무 번거롭다면, rebind.network의 포트 53에서 실행되는 공용 whonow 서버를 자유롭게 사용하세요.🌐.

사용법

root@kitploit:~
$ whonow --help
usage: whonow [-h] [-v] [-p PORT] [-d DEFAULT_ANSWER] [-b MAX_RAM_DOMAINS]
              [-l LOGFILE] [-m]
              

A malicious DNS server for executing DNS Rebinding attacks on the fly.

Optional arguments:
  -h, --help            Show this help message and exit.
  -v, --version         Show program's version number and exit.
  -p PORT, --port PORT  What port to run the DNS server on (default: 53).
  -d DEFAULT_ANSWER, --default-answer DEFAULT_ANSWER
                        The default IP address to respond with if no rule is 
                        found (default: "127.0.0.1").
  -b MAX_RAM_DOMAINS, --max-ram-domains MAX_RAM_DOMAINS
                        The number of domain name records to store in RAM at 
                        once. Once the number of unique domain names queried 
                        surpasses this number domains will be removed from 
                        memory in the order they were requested. Domains that 
                        have been removed in this way will have their program 
                        state reset the next time they are queried (default: 
                        10000000).
  -l LOGFILE, --logfile LOGFILE
                        Log to CSV file (default: false)
  -m, --verbose         Log request timestamp and sender IP address to stdout 
                        (default: false)

테스트

test.js의 테스트를 수행하려면 localhost:15353에서 whonow 서버가 실행 중이어야 합니다.

root@kitploit:~
# in one terminal
whonow -p 15353
root@kitploit:~
# in another terminal
cd path/to/node_modules/whonow
npm test
도구 다운로드
whonow
whonow