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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
도구/GitHubGitHub/oryxlabs/polardns
Vulnerability ScannersVulnerability AnalysisFuzzingNetwork SecurityPenetration TestingDNS Analysis
GitHuboryxlabs/polardns

PolarDNS

PolarDNS는 침투 테스트 및 취약점 연구에 적합한 특화된 권위 있는 DNS 서버입니다.

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
웹사이트
공유
PolarDNS 로고 PolarDNS는 Python 3.x로 작성된 특화된 권한 있는 DNS 서버로, 원래는 서버 측에서 DNS 재귀 확인자를 보안 테스트하기 위한 도구로 개발되었습니다.

운영자가 사용자 정의 DNS 응답을 생성할 수 있게 하여, 심층적인 DNS 프로토콜 테스트 목적에 적합합니다.

_

PolarDNS는 다음 항목의 테스트에 사용할 수 있습니다:

  • DNS 확인자 (서버 측)
  • DNS 클라이언트
  • DNS 라이브러리
  • DNS 파서 및 디섹터
  • DNS 정보를 처리하는 모든 소프트웨어

UDP와 TCP 프로토콜을 모두 지원하며, 운영자에게 DNS 프로토콜 계층에 대한 완전한 제어권을 제공합니다.

PolarDNS 서버는 다양한 비표준 및 비준수 DNS 응답, RFC 사양을 위반하는 DNS 응답, 심각한 비정상 및 변형된 DNS 응답을 생성할 수 있습니다.

이는 다음에 유용할 수 있습니다:

  • 기능 테스트
  • RFC 준수
  • 취약점 연구

설치

PolarDNS를 설치하는 세 가지 방법이 있습니다.

PolarDNS는 Python 3.11 이상이 필요하며 추가 종속성이 없습니다.

방법 1: Pip을 통한 설치

이것이 PolarDNS를 설치하고 실행하는 가장 쉬운 방법입니다:

root@kitploit:~
pip install polardns
polardns

방법 2: 전통적인 설치

리포지토리를 클론하고 PolarDNS를 직접 실행할 수도 있습니다:

root@kitploit:~
git clone https://github.com/oryxlabs/PolarDNS.git
cd PolarDNS
python polardns.py

이 방법은 코드를 디버그하거나 수정하거나 새 기능을 추가하려는 경우 권장됩니다.

방법 3: Docker에서 PolarDNS 실행

Docker 컨테이너에서 PolarDNS를 실행할 수도 있습니다:

root@kitploit:~
docker run -p 53:53/tcp -p 53:53/udp oryxlabs/polardns

PolarDNS 실행

PolarDNS 서버는 polardns/polardns.toml 구성 파일을 통해 구성할 수 있습니다.

  • 테스트 목적으로는 기본 구성이 로컬에서 실행하는 데 잘 작동합니다.
  • 그러나 도메인 및 네임서버 IP 주소를 추가하여 구성을 조정하고 싶을 수 있습니다.

PolarDNS를 시작하면 다음과 유사한 출력이 표시됩니다:

root@kitploit:~
python polardns.py
1741599804.9039893 | PolarDNS v1.6.1 서버 시작 중
1741599804.9039893 | '/path/to/your/polardns/polardns.toml' 구성 파일 사용 중
1741599804.9039893 | tcp://0.0.0.0:53 리스너 시작 중
1741599804.9039893 | udp://0.0.0.0:53 리스너 시작 중

이는 서버가 가동 중임을 나타냅니다.

PolarDNS 사용

기본적으로 서버는 모든 인터페이스의 UDP 및 TCP 포트 53(0.0.0.0:53)에서 수신 대기하며 DNS 쿼리에 응답할 준비가 됩니다.

다음 샘플 쿼리를 요청하여 로컬에서 테스트할 수 있으며, 이는 항상 무언가로 확인되어야 합니다.

UDP 모드로 요청:

root@kitploit:~
dig always.yourdomain.com @127.0.0.1

TCP 모드로 요청:

root@kitploit:~
dig always.yourdomain.com @127.0.0.1 +tcp

2.3.4.5 IP 주소를 가진 A 레코드를 받아야 하며, 이 스크린샷과 유사합니다:

PolarDNS 예제 사용법

이는 서버가 제대로 작동하고 있음을 나타냅니다.

주요 개념

PolarDNS 서버에 무언가를 확인하도록 요청함으로써, 본질적으로 서버에 어떻게 응답해야 하는지 지시하는 것입니다. 즉, 클라이언트(사용자)가 PolarDNS 서버에 어떤 종류의 응답을 생성할지 지시합니다.

예를 들어, 다음 쿼리를 고려하십시오:

root@kitploit:~
dig always.ttl2000000000.slp1500.yourdomain.com @127.0.0.1

다시 2.3.4.5 IP 주소를 가진 A 레코드를 받아야 하지만, 이번에는 TTL 값이 2,000,000,000(63.4년)이고 1.5초 지연 후에 받습니다:

PolarDNS 사용자 정의 TTL 및 지연 시간

위 예제에서는 항상 무언가로 확인되는 always 기본 기능을 사용하고, ttl 수정자로 TTL 값을 조정했으며, slp 수정자로 응답을 보내기 전에 대기했습니다.

PolarDNS 기능

PolarDNS에는 다음과 같은 주요 기능이 있습니다:

  1. 특징: 다양한 DNS 응답을 생성할 수 있습니다. 대부분의 특징에는 매개변수가 있어 동작을 조정하여 다양한 DNS 응답을 생성할 수 있습니다.
  2. 응답 수정자: PolarDNS 서버에서 나오는 DNS 응답을 추가로 수정할 수 있습니다. 수정자는 선택한 특징과 독립적이며 자유롭게 결합할 수 있습니다.

현재 70개 이상의 서로 다른 특징과 19개의 응답 수정자가 구현되어 있습니다. 서로 다른 특징을 사용하고 응답 수정자와 결합함으로써 수많은 응답 변형을 생성할 수 있습니다.

구현된 모든 특징 및 응답 수정자의 포함된 카탈로그 를 참조하십시오.

이를 통해 PolarDNS는 매우 비정상적이고, 이상하며, 심지어 변형된 DNS 응답을 생성할 수 있어, 운영자가 수신 측이 그러한 상황을 어떻게 처리하는지, 그리고 수신 측이 기술적으로 견고하고 성숙한지 확인할 수 있습니다.

PolarDNS가 생성할 수 있는 DNS 응답의 예는 다음과 같습니다:

  • 별칭(CNAME) 체인 및 별칭 루프
  • DNS 헤더 변형(ID, 플래그, 섹션 수)
  • 원치 않는 레코드 주입(캐시 포이즈닝)
  • 임의 길이의 임의 바이트 주입
  • 불완전/비어 있음/NULL 바이트 응답
  • 압축 문제(루프, 잘못된 포인터)
  • 느리게 전송되는 청크 응답
  • 불법 레이블 또는 도메인 이름 길이
  • 임의 크기의 TXT 레코드 개수
  • 패킷 길이 조작(TCP)
  • 등.

이는 다음과 같은 다양한 취약점 발견으로 이어질 수 있습니다:

  • Sloth domain 공격
  • Phantom domain 공격
  • Domain lock-up 공격
  • 캐시 포이즈닝
  • 리소스 고갈
  • 크래시, DoS

자세한 내용, 더 많은 예제 및 사용 사례는 BlackHat MEA 2023 프레젠테이션(BONUS 슬라이드 포함)을 참조하십시오.

재귀 DNS 확인자 테스트

재귀 DNS 서버 테스트를 시작하기 위해 필요한 사항에 대한 개략적인 개요입니다.

  1. 선호하는 도메인 등록 기관을 사용하여 테스트용 도메인(예: example123.com)을 구매합니다.
  2. 공용 및 고정 IP 주소가 있는 Linux VPS 인스턴스 2개를 확보합니다. 이들이 네임서버가 됩니다.
  3. 두 인스턴스 모두에 PolarDNS 서버를 배포합니다.
  4. 각 인스턴스에서 polardns/polardns.toml 구성 파일을 편집하고 도메인 이름과 네임서버 IP 주소를 적절히 변경합니다(둘 다 동일한 구성).
  5. 도메인 등록 기관에서 자체 네임서버를 사용하여 도메인을 관리하도록 선택합니다. 기본 및 보조 NS를 지정해야 하며, 인스턴스의 IP 주소를 제공합니다.

이제 인프라가 선택한 모든 재귀 DNS 확인자를 테스트할 준비가 되었습니다.

테스트 프로세스 분석

대상 DNS 재귀 확인자 테스트를 시작하려면 쿼리를 대상 DNS 확인자로 보내야 합니다. 예:

root@kitploit:~
dig always.example123.com @<TARGET-RESOLVER-IP>

예를 들어, CloudFlare 공용 DNS를 테스트하려면:

root@kitploit:~
dig always.example123.com @1.1.1.1

확인 과정에서 대상 DNS 확인자는 권한 있는 PolarDNS 네임서버(example123.com 테스트 도메인 관리)에 연결하여 쿼리를 확인합니다.

PolarDNS 서버 중 하나가 대상 DNS 확인자에 응답합니다. 확인자는 PolarDNS의 응답을 수신, 구문 분석 및 처리합니다. 그런 다음 최종 답변을 클라이언트(사용자)에게 반환합니다.

다음은 테스트 프로세스의 시각적 개요입니다: PolarDNS를 사용한 DNS 확인자 테스트

DNS 확인자에게 example123.com 도메인 아래의 다양한 하위 도메인을 확인하도록 지시함으로써 DNS 확인자의 동작을 효과적으로 테스트하고 다양한 예상치 못한 상황(응답)을 어떻게 처리하는지 확인할 수 있습니다.

예를 들어, 변형된 DNS 응답, 주입된 레코드가 있는 응답, 또는 불법 문자를 포함한 레코드를 얻었을 때 어떻게 처리하며, 궁극적으로 클라이언트(사용자)에게 어떤 종류의 답변을 보내는지 확인할 수 있습니다.

GitHub Actions를 통한 자동화된 E2E 테스트

PolarDNS는 다양한 DNS 확인자와 통합되어 포괄적인 엔드투엔드(E2E) DNS 서버 테스트 스위트를 실행할 수 있습니다.

이 통합은 GitHub Actions에 의해 구동되며, 현재 다음 6개의 DNS 확인자에 대한 참조 템플릿(워크플로우)을 사용할 수 있습니다:

  • BIND9 (e2e-bind9.yaml)
  • CoreDNS (e2e-coredns.yaml)
  • Dnsmasq (e2e-dnsmasq.yaml)
  • Knot Resolver (e2e-knot-v5.yaml, e2e-knot-v6.yaml)
  • PowerDNS (e2e-powerdns.yaml)
  • Unbound (e2e-unbound.yaml)

GitHub Action이 트리거되면(예: 커밋 시 또는 수동으로), 워크플로우는 다음 단계를 수행합니다:

  1. 선택한 DNS 확인자를 Docker 컨테이너에서 시작합니다.
  2. PolarDNS를 별도의 Docker 컨테이너에서 시작합니다.
  3. 선택한 확인자를 PolarDNS에 연결합니다.
  4. 선택한 DNS 확인자에 대해 E2E 테스트 스위트를 실행합니다.

자체 E2E 테스트를 추가하려면 test-e2e/ 디렉토리에 배치하기만 하면 됩니다.

완전한 기능의 DNS 서버 E2E 테스트 스위트를 찾고 계십니까? [email protected]으로 문의하십시오.

새 기능 추가

PolarDNS에 새 기능을 추가하는 것은 진정으로 새로운 DNS 문제를 발견하는 데 필수적입니다. 그리고 PolarDNS를 사용하면 비교적 쉽게 그렇게 할 수 있습니다.

PolarDNS를 사용하면 자체 DNS 서버를 구축하지 않고도 새 기능을 빠르게 추가하고, 아이디어를 시험해 보거나, PoC를 개발할 수 있습니다. 필요한 것은 Python 코드를 이해하는 능력과 DNS 프로토콜을 실험하려는 호기심뿐입니다.

시작하는 데 도움이 되는 자세한 단계별 기여 가이드가 있습니다. 여기에서 새 기능을 추가하는 방법뿐만 아니라 PolarDNS를 디버그하는 방법, 문제를 제출하는 방법, 아이디어를 공유하는 방법 등도 찾을 수 있습니다.

링크

PolarDNS를 가지고 놀 때 유용한 몇 가지 훌륭한 리소스입니다.

DNS 프로토콜 관련 링크:

  • https://en.wikipedia.org/wiki/List_of_DNS_record_types
  • https://www.iana.org/assignments/dns-parameters/dns-parameters.xhtml

DNS 서버:

  • https://en.wikipedia.org/wiki/Comparison_of_DNS_server_software
  • https://www.lifewire.com/free-and-public-dns-servers-2626062

크레딧

PolarDNS에 기여해 주신 모든 분들께 감사드립니다! ❤️

도구 다운로드