
DNS 서비스를 간편하게 제공하는 Go 기반 도구로, 여러 유형의 블라인드 취약점 탐지를 지원합니다. 침투 테스터의 서버에서 대역 외 DNS 상호 작용을 모니터링하고, Slack을 통해 조회 알림을 전송합니다.
Go로 작성된 편리한 DNS 서비스로, 여러 유형의 블라인드 취약점 탐지를 돕습니다. 침투 테스터의 서버에서 대역 외 DNS 상호작용을 모니터링하고, 수신된 요청 세부 정보를 Slack을 통해 알림으로 전송합니다. DNSObserver는 블라인드 OS 명령어 삽입, 블라인드 SQLi, 블라인드 XXE 등 다양한 버그를 찾는 데 도움을 줄 수 있습니다.

자세한 개요와 설정 지침은 다음을 참조하세요:
https://www.allysonomalley.com/2020/05/22/dnsobserver/
필요한 것:
사용할 준비가 된 VPS가 아직 없다면, 선호하는 제공업체로 새 Linux VPS를 만드세요. 공인 IP 주소를 기록해 두세요.
선호하는 등록기관에서 새 도메인 이름을 등록하세요. 사용자 지정 네임 서버와 글루 레코드를 설정할 수만 있다면 어떤 등록기관도 괜찮습니다.
새 도메인의 DNS 설정으로 이동하여 '글루 레코드' 섹션을 찾으세요. 여기에 두 개의 항목을 추가하세요. 각각 새 네임 서버에 대해 하나씩이며, 두 항목 모두 VPS의 공인 IP 주소를 입력하세요.
다음으로 기본 네임 서버를 다음과 같이 변경하세요:
ns1.<YOUR-DOMAIN>
ns2.<YOUR-DOMAIN>
VPS에 SSH로 접속하여 다음 단계를 수행하세요:
아직 Go가 설치되어 있지 않다면 설치하세요. 설치 지침은 여기에서 확인할 수 있습니다.
기본 DNS 포트가 열려 있는지 확인하세요 - 53/UDP 및 53/TCP. 다음을 실행하세요:
sudo ufw allow 53/udp
sudo ufw allow 53/tcp
DNSObserver와 그 의존성 패키지를 가져오세요:
go get github.com/allyomalley/dnsobserver/...
필수 인자는 두 개, 선택적 인자는 두 개입니다:
domain [필수]
새 도메인 이름.
ip [필수]
VPS의 공인 IP 주소.
webhook [선택 사항]
알림을 받으려면 Slack 웹훅 URL을 제공하세요. 도메인 이름이나 도메인의 하위 도메인에 대한 모든 조회에 대해 알림을 받게 됩니다 (다른 최상위 도메인 및 사용자 지정 네임 서버에 대한 쿼리는 과도하거나 무작위 알림을 방지하기 위해 제외했습니다). 웹훅을 제공하지 않으면 상호작용이 표준 출력에 기록됩니다. 웹훅 설정 지침은 여기에서 확인할 수 있습니다.
recordsFile [선택 사항]
기본적으로 DNSObserver는 도메인 이름 또는 네임 서버 중 하나에 대한 쿼리에만 응답합니다. 다른 호스트의 경우에도 상호작용에 대한 알림을 계속 보내지만 (도메인 또는 하위 도메인인 경우) 빈 응답을 반환합니다. DNSObserver가 특정 호스트에 대한 A 레코드 조회에 주소로 응답하도록 하려면 이 프로젝트에 포함된 config.yml 파일을 편집하거나 다음 템플릿을 기반으로 직접 작성할 수 있습니다:
a_records:
- hostname: ""
ip: ""
- hostname: ""
ip: ""
현재 이 도구는 A 레코드만 사용합니다. 향후 CNAME, AAAA 등을 추가할 수도 있습니다. 다음은 완전한 사용자 지정 레코드 파일의 예시입니다:
a_records:
- hostname: "google.com"
ip: "1.2.3.4"
- hostname: "github.com"
ip: "5.6.7.8"
이 설정은 'google.com'에 대한 쿼리에 '1.2.3.4'로 응답하고, 'github.com'에 대한 쿼리에 '5.6.7.8'로 응답하겠다는 의미입니다.
이제 수신 대기를 시작할 준비가 되었습니다! DNSObserver가 실행되는 동안 VPS에서 다른 작업을 수행하려면 먼저 새 tmux 세션을 시작하세요.
기본 설정의 경우 필수 인자와 웹훅을 전달하세요:
dnsobserver --domain example.com --ip 11.22.33.44 --webhook https://hooks.slack.com/services/XXX/XXX/XXX
위 설정에 추가로 사용자 지정 A 레코드 응답을 포함하려면 레코드 파일 인자를 추가하세요:
dnsobserver --domain example.com --ip 11.22.33.44 --webhook https://hooks.slack.com/services/XXX/XXX/XXX --recordsFile my_records.yml
모든 설정이 올바르게 되었다면 이제 DNSObserver가 실행 중일 것입니다. 작동을 확인하려면 데스크톱에서 터미널을 열고 새 도메인(이 데모에서는 'example.com')을 조회하세요:
dig example.com
이제 요청 세부 정보가 포함된 Slack 알림을 받게 됩니다!