
Быстрый сканер захвата поддоменов с более чем 50 сигнатурами, поддерживающий интеграции с облачными провайдерами (AWS, Azure, Cloudflare) и режим конвейера CI/CD для автоматического тестирования безопасности.
DNS Reaper — это ещё один инструмент для перехвата поддоменов, но с упором на точность, скорость и количество сигнатур в нашем арсенале!
Мы можем сканировать около 50 поддоменов в секунду, проверяя каждый с помощью более чем 50 сигнатур перехвата. Это означает, что большинство организаций могут просканировать всю свою DNS-инфраструктуру менее чем за 10 секунд.
Чтобы упростить начало работы, мы создали небольшую веб-версию, которая сканирует DNS-зону, список через запятую или до 100 поддоменов, найденных с помощью ProjectDiscovery.
Попробуйте:
Конечно, CLI-инструмент гораздо более EPIC и быстрее.

Запустите его, передав список доменов в файле или один домен в командной строке. DNS Reaper просканирует домены всеми своими сигнатурами и создаст CSV-файл.
Запустите его, позволив ему самостоятельно получить ваши DNS-записи! Да, вы всё правильно поняли: вы можете запустить его с учётными данными и быстро и легко протестировать все конфигурации ваших доменов. DNS Reaper подключится к DNS-провайдеру, получит все ваши записи и протестирует их.
В настоящее время мы поддерживаем AWS Route53, Cloudflare и Azure. Документация по добавлению собственного провайдера находится здесь
Punk Security — компания DevSecOps, и DNS Reaper основан на современных лучших практиках безопасности.
Вы можете запускать DNS Reaper в конвейере, передавая ему список доменов, которые вы планируете подготовить, и он завершится с ненулевым кодом, если обнаружит возможность перехвата. Вы можете предотвратить перехваты ещё до того, как они станут возможны!
Для запуска DNS Reaper вы можете использовать Docker-образ или запустить его с Python 3.11.
Результаты выводятся на экран, а более подробная информация сохраняется в локальном файле "results.csv". Также поддерживается вывод в формате JSON.
docker run punksecurity/dnsreaper --help
[!IMPORTANT] Минимальная версия Python, поддерживаемая dnsReaper — 3.9, но рекомендуется 3.11. Мы стараемся поддерживать стабильные версии Python, которые не являются устаревшими. Мы не будем оказывать поддержку или принимать pull-реквесты для проблем, затрагивающих устаревшие версии Python. Дополнительная информация — в разделе Status of Python versions.
При локальном запуске рекомендуется использовать виртуальное окружение (venv) для избежания конфликтов зависимостей. Инструкции доступны здесь.
pip install -r requirements.txt
python main.py --help
Сканирование аккаунта AWS:
docker run punksecurity/dnsreaper aws --aws-access-key-id <ключ> --aws-access-key-secret <секрет>
Подробнее — в документации по провайдеру aws
Сканирование всех доменов из файла:
docker run -it --rm -v $(pwd):/etc/dnsreaper punksecurity/dnsreaper file --filename /etc/dnsreaper/<имя_файла>
Сканирование одного домена
docker run -it --rm punksecurity/dnsreaper single --domain <домен>
Сканирование одного домена с выводом в stdout:
Следует перенаправить stderr или сохранить вывод stdout с помощью >
docker run -it --rm punksecurity/dnsreaper single --domain <домен> --out stdout --out-format=json > output
____ __ _____ _ __
/ __ \__ ______ / /__/ ___/___ _______ _______(_) /___ __
/ /_/ / / / / __ \/ //_/\__ \/ _ \/ ___/ / / / ___/ / __/ / / /
/ ____/ /_/ / / / / ,< ___/ / __/ /__/ /_/ / / / / /_/ /_/ /
/_/ \__,_/_/ /_/_/|_|/____/\___/\___/\__,_/_/ /_/\__/\__, /
PRESENTS /____/
DNS Reaper ☠️
Просканируйте все ваши DNS-записи на предмет перехвата поддоменов!
использование:
main.py провайдер [опции]
вывод:
результаты выводятся на экран и (по умолчанию) в results.csv
справка:
main.py --help
провайдеры:
> aws - Сканировать несколько доменов, получая их из AWS Route53
> azure - Сканировать несколько доменов, получая их из Azure DNS services
> bind - Читать домены из DNS-зоны BIND или пути к нескольким файлам
> cloudflare - Сканировать несколько доменов, получая их из Cloudflare
> digitalocean - Сканировать несколько доменов, получая их из Digital Ocean
> file - Читать домены из файла (или папки с файлами), по одному на строку
> godaddy - Сканировать несколько доменов, получая их из GoDaddy
> googlecloud - Сканировать несколько доменов, получая их из Google Cloud. Требуется переменная окружения GOOGLE_APPLICATION_CREDENTIALS.
> projectdiscovery - Сканировать несколько доменов, получая их из ProjectDiscovery
> securitytrails - Сканировать несколько доменов, получая их из Security Trails
> single - Сканировать один домен, указав его в командной строке
> zonetransfer - Сканировать несколько доменов, получая записи через DNS zone transfer
позиционные аргументы:
{aws,azure,bind,cloudflare,digitalocean,file,godaddy,googlecloud,projectdiscovery,securitytrails,single,zonetransfer}
опции:
-h, --help Показать это справочное сообщение и выйти
--out OUT Выходной файл (по умолчанию: results) - используйте 'stdout' для потокового вывода
--out-format {csv,json}
--resolver RESOLVER Указать собственный DNS-резолвер
--parallelism PARALLELISM
Количество доменов для параллельного тестирования - слишком большое значение может привести к необычным DNS-результатам (по умолчанию: 30)
--disable-probable Не проверять вероятные условия
--enable-unlikely Проверять больше условий, но с высоким уровнем ложных срабатываний
--signature SIGNATURE
Сканировать только с этой сигнатурой (можно указать несколько)
--exclude-signature EXCLUDE_SIGNATURE
Не сканировать с этой сигнатурой (можно указать несколько)
--pipeline Завершиться с ненулевым кодом при обнаружении (используется для сбоя конвейера)
-v, --verbose -v для подробного вывода, -vv для очень подробного
--nocolour Отключает цветной текст
aws:
Сканировать несколько доменов, получая их из AWS Route53
--aws-access-key-id AWS_ACCESS_KEY_ID
Необязательно
--aws-access-key-secret AWS_ACCESS_KEY_SECRET
Необязательно
--aws-session-token AWS_SESSION_TOKEN
Необязательно
azure:
Сканировать несколько доменов, получая их из Azure DNS services
--az-subscription-id AZ_SUBSCRIPTION_ID
Обязательно
--az-tenant-id AZ_TENANT_ID
Обязательно
--az-client-id AZ_CLIENT_ID
Обязательно
--az-client-secret AZ_CLIENT_SECRET
Обязательно
bind:
Читать домены из DNS-зоны BIND или пути к нескольким файлам
--bind-zone-file BIND_ZONE_FILE
Обязательно
cloudflare:
Сканировать несколько доменов, получая их из Cloudflare
--cloudflare-token CLOUDFLARE_TOKEN
Обязательно
digitalocean:
Сканировать несколько доменов, получая их из Digital Ocean
--do-api-key DO_API_KEY
Обязательно
--do-domains DO_DOMAINS
Необязательно
file:
Читать домены из файла (или папки с файлами), по одному на строку
--filename FILENAME Обязательно
projectdiscovery:
Сканировать несколько доменов, получая их из ProjectDiscovery
--pd-api-key PD_API_KEY
Обязательно
--pd-domains PD_DOMAINS
Обязательно
godaddy:
Сканировать несколько доменов, получая их из GoDaddy
--gd-api-key GD_API_KEY
Обязательно
--gd-api-secret GD_API_SECRET
Обязательно
--gd-domains GD_DOMAINS
Необязательно
googlecloud:
Сканировать несколько доменов, получая их из Google Cloud. Требуется переменная окружения GOOGLE_APPLICATION_CREDENTIALS.
--project-id PROJECT_ID
Обязательно
projectdiscovery:
Сканировать несколько доменов, получая их из ProjectDiscovery
--pd-api-key PD_API_KEY
Обязательно
--pd-domains PD_DOMAINS
Обязательно
securitytrails:
Сканировать несколько доменов, получая их из Security Trails
--st-api-key ST_API_KEY
Обязательно
--st-domains ST_DOMAINS
Обязательно
googlecloud:
Сканировать несколько доменов, получая их из Google Cloud
--project-id PROJECT_ID
Обязательно
projectdiscovery:
Сканировать несколько доменов, получая их из ProjectDiscovery
--pd-api-key PD_API_KEY
Обязательно
--pd-domains PD_DOMAINS
Необязательно
securitytrails:
Сканировать несколько доменов, получая их из Security Trails
--st-api-key ST_API_KEY
Обязательно
--st-domains ST_DOMAINS
Необязательно
single:
Сканировать один домен, указав его в командной строке
--domain DOMAIN Обязательно
zonetransfer:
Сканировать несколько доменов, получая записи через DNS zone transfer
--zonetransfer-nameserver ZONETRANSFER_NAMESERVER
Обязательно
--zonetransfer-domain ZONETRANSFER_DOMAIN
Обязательно