
🚀 Автоматизированный DNS-сканер и инструмент 🖱️ (Zone Transfer, DNS Zone Takeover, Subdomain Takeover).
Subrake, изначально задуманный как мой личный проект для перечисления поддоменов, теперь представляет собой детальный DNS-сканер, который может помочь выявить Zone Transfers, DNS Zone Takeover и Subdomain Takeovers за один проход.
Zone Transfers существуют уже много лет, и если по какой-то причине они включены для домена, это позволяет другой стороне перечислить все записи из зоны. На самом деле они используются, когда владелец хочет передать домен от одного провайдера другому.
Subdomain Takeover, вопреки звучанию, представляет собой захват службы, на которую указывает поддомен. Служба должна быть неиспользуемой или устаревшей.
DNS Zone Takeover по сравнению с Subdomain Takeover может быть более серьёзным при эксплуатации. Это захват одной из зон домена. Это позволяет гораздо больше, чем просто создать сервис на бэкенде. Вы можете настроить собственные DNS-записи и управлять ими по своему усмотрению.
Для более глубоких деталей вы можете прочитать мою статью здесь: A Guide to Zone Transfer, DNS Zone Takeover and Subdomain Takeover
Subrake — это инструмент для оценки DNS (в основном автоматизированный) с UI и CLI, который проходит различные этапы для выявления проблем с DNS. Инструмент постоянно дорабатывается и развивается, и все желающие могут внести свой вклад в проект.
Он был разработан в первую очередь для bug bounty и индустрии информационной безопасности, но также может использоваться для blue teaming и внутренних пентестов. Поддерживает как 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
Вы также можете собрать образ Docker из Dockerfile:
$ 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 => [. Это стандартные сокращения TMUX, но глобальная клавиша привязки изменена на CTRL+E.
Вы также можете вернуться к запущенному экрану, снова введя его имя:
В командной строке вы можете напрямую обращаться к инструменту, введя subrake. Вот несколько примеров использования subrake:
Простой запуск с параметрами по умолчанию:
$ subrake -d google.com
Subrake с несколькими потоками:
$ subtake -d google.com -t 50
Subrake с модулями и списком слов:
$ subrake -d google.com --wordlists SecLists/Discovery/DNS/namelist.txt
Subrake с результатами OSINT + несколькими списками поддоменов SecLists:
Примечание: Поддомены с похожими именами будут автоматически отфильтрованы и учтены как 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
Не стесняйтесь открывать пулл-реквесты и предлагать функции. Вы можете внести вклад, выполнив: