
Параллельный сканер перехвата DNS, обнаруживающий уязвимости записей CNAME, NS, AXFR, SPF, MX, SRV и устаревших A-записей у облачных провайдеров, с многоуровневым цепочечным анализом.
Сканер захвата DNS
Subjack — это сканер захвата DNS, написанный на Go и предназначенный для параллельного сканирования списка доменов и выявления тех, которые могут быть захвачены. Благодаря скорости и эффективности Go этот инструмент особенно выделяется при массовом тестировании. Всегда перепроверяйте результаты вручную, чтобы исключить ложные срабатывания.
Subjack обнаруживает:
include:, позволяющие подделывать электронную почтуТребуется Go
go install github.com/haccer/subjack@latest
Готовые бинарные файлы для Linux, macOS и Windows также доступны на странице релизов — удобно для небольших VPS, где компиляция занимает много времени.
subjack -w subdomains.txt -t 100 -timeout 30 -o results.txt -ssl
| Флаг | Описание | По умолчанию |
|---|---|---|
-d | Один домен для проверки | |
-w | Путь к словарю поддоменов | |
-t | Количество параллельных потоков | 10 |
-timeout | Секунды ожидания до тайм-аута соединения | 10 |
-o | Вывод результатов в файл (используйте расширение .json для вывода в формате JSON) | |
-ssl | Принудительные HTTPS-соединения (может повысить точность) | false |
-a | Отправлять запросы ко всем URL, а не только к тем, у которых обнаружены CNAME (рекомендуется) | false |
-m | Помечать мёртвые CNAME-записи, даже если домен недоступен для регистрации | false |
-r | Путь к списку DNS-резолверов (по одному IP или host:port в строке, при сбое используется 8.8.8.8) | |
-ns | Проверять захват NS (истёкшие NS-домены + висячие облачные DNS-делегирования) | false |
-ar | Проверять устаревшие A-записи, указывающие на мёртвые IP (может потребоваться root для ICMP) | false |
-axfr | Проверять передачу зон (AXFR), включая брутфорс NS | false |
-mail | Проверять захват SPF include и MX-записей | false |
-srv | Проверять захват SRV-записей (добавляет ~28 DNS-запросов на домен) | false |
-v | Отображать больше информации о каждом запросе | false |
Subjack может читать домены из stdin, что упрощает передачу вывода из других инструментов:
subfinder -d example.com | subjack -ssl -o results.json
cat domains.txt | subjack -t 20 -o results.txt
С флагом -ns subjack выполняет два типа проверок захвата nameserver'ов:
Истёкшие NS-домены: проверяет, истёк ли срок действия каких-либо nameserver'ов домена и доступны ли они для покупки. Злоумышленник, зарегистрировавший истёкший nameserver, может получить полный контроль над всем DNS для этого домена — он может направить любую запись куда угодно, перехватывать почту, выпускать сертификаты и многое другое.
Висячие NS-делегирования: обнаруживает случаи, когда NS-записи домена указывают на облачных DNS-провайдеров, но размещённая зона была удалена. Subjack напрямую запрашивает у каждого nameserver'а SOA-запись — если все возвращают SERVFAIL или REFUSED, зона исчезла и потенциально может быть присвоена. Поддерживаемые провайдеры:
ns-*.awsdns-*)ns-cloud-*.googledomains.com)ns*-*.azure-dns.*)ns*.digitalocean.com)ns*.vultr.com)ns*.linode.com)subjack -w subdomains.txt -ns -o results.json
С флагом -ar subjack разрешает A-записи и проверяет, действительно ли IP-адрес жив. Когда компания прекращает работу облачного сервера, но забывает удалить DNS A-запись, IP возвращается в пул провайдера. Злоумышленник может запускать новые экземпляры у этого провайдера до тех пор, пока не получит тот же IP, тем самым получив контроль над поддоменом.
Subjack по возможности определяет облачного провайдера (AWS, GCP, Azure, DigitalOcean, Linode, Vultr, Oracle), что упрощает нацеливание на нужную платформу. Обнаружение использует ICMP ping (требуется root) с TCP-фолбэком на портах 80/443.
sudo subjack -w subdomains.txt -ar -o results.json
Результаты помечаются как STALE A RECORD и должны быть проверены вручную — неотвечающий IP не всегда означает, что его можно вернуть.
С флагом -axfr subjack попытается выполнить передачу DNS-зоны (AXFR), что может раскрыть все DNS-записи домена. Subjack выходит за рамки простого тестирования официальных nameserver'ов домена — он также выполняет брутфорс распространённых имён хостов nameserver'ов (ns1, dns-0, ns-backup и т. д.), потому что скрытые или забытые nameserver'ы часто остаются незащищёнными даже после того, как основные были закрыты.
subjack -d example.com -axfr -o results.json
subjack -w domains.txt -axfr -o results.json
Результаты помечаются как ZONE TRANSFER с указанием уязвимого nameserver'а и количества раскрытых записей.
С флагом -mail subjack проверяет два вектора захвата, связанных с электронной почтой:
Захват SPF include: анализирует TXT-записи SPF и проверяет, истёк ли срок действия каких-либо доменов в include: и доступны ли они для регистрации. Злоумышленник, зарегистрировавший включённый домен, может отправлять полностью аутентифицированные письма от имени цели, обходя SPF и DMARC.
Захват MX-записей: проверяет, истёк ли срок действия каких-либо целей MX-записей и доступны ли они для регистрации. Злоумышленник, контролирующий почтовый сервер, может перехватывать всю входящую почту — сбросы паролей, коды 2FA и многое другое.
subjack -w domains.txt -mail -o results.json
Захват цепочек CNAME выполняется автоматически при каждом сканировании: он отслеживает многоуровневые цепочки CNAME (до 10 уровней в глубину) и проверяет, можно ли присвоить какую-либо промежуточную цель. Стандартное обнаружение CNAME проверяет только первый переход — цепочки выявляют более глубокие возможности захвата.
Захват SRV-записей включается опционально с флагом -srv, поскольку проверка распространённых местоположений SRV (SIP, XMPP, LDAP, Kerberos, IMAP, CalDAV и т. д.) добавляет примерно 28 DNS-запросов на домен:
subjack -w domains.txt -srv -o results.json