
Рекурсивный перечислитель поддоменов DNS с системой избегания тупиков (BETA)
Syborg — это рекурсивный энумератор доменов DNS, который не является ни активным, ни полностью пассивным. Этот инструмент просто формирует доменное имя и запрашивает его у указанного DNS-сервера.
Syborg имеет систему избегания тупиков (Dead-end Avoidance), вдохновлённую ettu от @Tomnomnom.
Когда вы запускаете энумерацию поддоменов с помощью некоторых инструментов, большинство из них пассивно опрашивают публичные записи, такие как virustotal, crtsh или censys. Эта техника энумерации очень быстра и помогает найти множество доменов за гораздо меньшее время.
Однако существуют домены, которые могут не упоминаться в этих публичных записях. Чтобы найти такие домены, Syborg взаимодействует с серверами имён и рекурсивно перебирает поддомены из DNS до тех пор, пока его очередь не опустеет.
Автор изображения: Carbon
Как указано на странице ettu, цитирую:
Обычно, если для DNS-имени нет записей, можно ожидать ошибку
NXDOMAIN:▶ host four.tomnomnom.uk Host four.tomnomnom.uk not found: 3(NXDOMAIN)Возможно, вы замечали, что иногда вместо этого вы получаете пустой ответ:
▶ host three.tomnomnom.ukРазница в последнем случае часто заключается в том, что существует другое имя — такое, у которого ваш запрошенный домен является суффиксом — и оно имеет записи для возврата:
▶ host one.two.three.tomnomnom.uk one.two.three.tomnomnom.uk has address 46.101.59.42Эту разницу в ответе можно использовать для предотвращения тупиков при рекурсивном переборе DNS, не выполняя рекурсию в первой ситуации:
▶ echo -e "www\none\ntwo\nthree" | ettu tomnomnom.uk one.two.three.tomnomnom.uk
Syborg включает все эти функции с простой конкурентностью и рекурсией.
Python 3.x (рекомендуется)
Python 2.x (не тестировалось)
Клонируйте репозиторий с помощью команды git clone следующим образом:
git clone https://github.com/MilindPurswani/Syborg.git
Установите зависимости:
pip3 install -r requirements.txt
python3 syborg.py yahoo.com
Более подробную информацию об использовании можно найти в Руководстве по творческому использованию Syborg. Обязательно ознакомьтесь!
Иногда Syborg может вызывать высокую загрузку CPU, что может дорого обойтись, если вы используете этот инструмент на своём VPS. Поэтому для ограничения используйте другую утилиту — Cpulimit.
cpulimit -l 50 -p $(pgrep python3)
Эту утилиту можно установить следующим образом:
sudo apt install cpulimit
FileQueue, которая решила проблему высокого потребления памяти в Syborg.dnsgen.