
🚀 DNS 자동 스캐너 및 도구 🖱️ (Zone Transfer, DNS Zone Takeover, Subdomain Takeover).
Subrake는 처음에는 서브도메인 열거(enumeration)를 위한 개인 프로젝트로 시작했지만, 이제는 한 번에 Zone Transfers, DNS Zone Takeover, Subdomain Takeover를 식별할 수 있는 상세한 DNS 스캐닝 도구입니다.
Zone Transfers는 수년간 존재해 왔으며, 어떤 이유로 도메인에서 활성화되어 있으면 다른 당사자가 Zone의 모든 레코드를 열거할 수 있습니다. 이는 실제로 소유자가 도메인을 한 제공업체에서 다른 제공업체로 이전할 때 사용됩니다.
Subdomain Takeover는 이름과 달리 서브도메인이 가리키는 서비스의 인수입니다. 해당 서비스는 중단되었거나 사용되지 않아야 합니다.
DNS Zone Takeover는 Subdomain Takeover와 비교했을 때 악용될 경우 더 심각할 수 있습니다. 이는 도메인의 영역(zone) 중 하나를 인수하는 것입니다. 이는 백엔드에서 서비스를 생성하는 것 이상의 훨씬 많은 작업을 허용합니다. 실제로 자신의 DNS 레코드를 설정하고 원하는 대로 조작할 수 있습니다.
더 자세한 내용은 제 블로그를 참조하세요: A Guide to Zone Transfer, DNS Zone Takeover and Subdomain Takeover
Subrake는 UI와 CLI를 모두 갖춘 DNS 평가 도구(대부분 자동화)로, DNS 문제를 포괄하기 위해 다양한 단계를 거칩니다. 이 도구는 지속적으로 변경 및 개발 중이며, 누구나 프로젝트에 기여할 수 있습니다.
이 도구는 주로 버그 바운티 및 정보 보안 업계를 위해 설계되었지만 블루 팀 및 내부 침투 테스트에도 활용할 수 있습니다. CLI와 웹 기반 GUI 인터페이스를 모두 지원하며, 여러 설치 모드를 지원합니다. 주요 기능은 다음과 같습니다:
csv 형식으로 제공.Subrake는 자동 모드로 설정하거나 저장소를 수동으로 클론한 후 setuptools를 통해 설치할 수 있습니다. 전자는 더 많은 제어를 제공하고 UI와 함께 유연합니다. 하지만 간단한 CLI 모드를 선호하거나 windows에서 사용한다면 manual 섹션을 참조하세요.
저장소를 클론하고 해당 디렉터리로 이동하세요:
$ git clone https://github.com/hash3liZer/Subrake.git
$ cd ./Subrake
Subrake는 vagrant(KVM 사용)를 통해 설정할 수 있으며, 머신이 생성되고 모든 것이 자동으로 설정됩니다. 먼저 요구 사항을 설치하세요:
$ apt update
$ apt install -y qemu qemu-kvm libvirt-daemon libvirt-clients bridge-utils virt-manager vagrant vagrant-libvirt
그런 다음 저장소 내에서 vagrant up을 실행하세요:
$ vagrant up
서버 프로비저닝에는 시간이 걸립니다. 완료되면 URL http://127.0.0.1:9090을 받게 됩니다.
기본 자격 증명은 subrake/password입니다. 프로비저닝 중에도 변경할 수 있습니다:
$ SUBRAKE_USERNAME="username" SUBRAKE_PASSWORD="password" vagrant up
완료 후 새로 생성된 머신의 상태를 다음 명령으로 관리할 수 있습니다:
# 머신 상태 확인
$ vagrant status
# 머신 일시 중단
$ vagrant suspend
# 머신 재개
$ vagrant resume
# 머신 종료
$ vagrant halt
# 다시 시작
$ vagrant up
# 머신 삭제
$ vagrant destroy
수동 설정을 사용하면 디렉터리로 바로 이동하여 setuptools로 설치할 수 있습니다.
요구 사항을 설치하고 setup.py를 실행하세요:
$ pip3 install -r requirements.txt
$ python3 setup.py install
subrake가 설치되었는지 확인:
subrake --help
Dockerfile에서 Docker 이미지를 빌드할 수도 있습니다:
$ docker build -t subrake:latest .
Docker 컨테이너 확인:
$ docker run --rm subrake --help
베어메탈 서버에도 스크립트를 배포할 수 있습니다. 이렇게 하려면 새로운 ubuntu 20.04 서버를 실행하고 다음 명령을 실행하세요:
$ chmod +x ./installer.sh
$ ./installer.sh --deploy
그러면 서버에 0.0.0.0:9090으로 접근할 수 있습니다. nginx 서비스를 설정하여 리버스 프록시로 사용할 수 있습니다.
UI를 사용하면 Subtap a Domain 페이지로 바로 이동하여 스캔을 실행할 수 있습니다. 스캔에 대해 몇 가지 질문이 나타납니다:
스캔은 tmux 세션 내에서 실행됩니다. CTRL+E => d를 눌러 실행 중인 화면을 종료하고 새 스캔을 시작할 수 있습니다. 또한 화면을 일시 중지하고 위아래로 이동하려면 CTRL+E => [를 누르세요. 이는 전역 바인드 키가 CTRL+E로 변경된 TMUX 단축키입니다.
실행 중인 화면으로 다시 이동하려면 이름을 다시 입력하면 됩니다:
명령줄에서 subrake를 입력하여 도구에 직접 접근할 수 있습니다. 다음은 subrake 사용 예시입니다:
기본 옵션으로 간단히 실행:
$ subrake -d google.com
멀티 스레드를 사용한 Subrake:
$ subtake -d google.com -t 50
모듈 및 워드리스트를 사용한 Subrake:
$ subrake -d google.com --wordlists SecLists/Discovery/DNS/namelist.txt
OSINT 결과 + 여러 SecLists 서브도메인 목록을 사용한 Subrake:
참고: 이름이 유사한 서브도메인은 자동으로 필터링되어 1개로 계산됩니다.
$ subrake -d google.com --wordlists SecLists/Discovery/DNS/namelist.txt,SecLists/Discovery/DNS/dns-Jhaddix.txt
검색 엔진 없는 Subrake + 여러 도구의 출력 결합 + IP 필터링 (참고: 자신의 도구를 subrake에 통합할 수 있습니다):
$ domain="google.com"
$ subfinder -d $domain -nW -o $domain/1.txt && sublist3r -d $domain -o $domain/2.txt && cat $domain/* >> /tmp/output.txt
$ subrake -d $domain -w tmp/output.txt --filter --skip-search
포트 스캔을 사용한 Subrake:
참고: 80,443 포트는 모든 호스트에 대해 HTTP/HTTPS 배너 아래에서 기본적으로 스캔됩니다. 따라서 여기에 지정할 필요가 없습니다.
$ subrake -d google.com --ports 8080,8443,8000,23,445
언제든지 풀 리퀘스트와 기능을 제출하세요. 기여할 수 있는 방법: