
Gotator — это инструмент для генерации DNS-словников с помощью перестановок.
Gotator — это инструмент для генерации DNS-словников с помощью перестановок.
Если вы хотите внести изменения локально и скомпилировать, следуйте инструкциям ниже:
> git clone https://github.com/Josue87/gotator.git
> cd gotator
> go build
Если вы заинтересованы только в использовании программы:
> go install github.com/Josue87/gotator@latest
🐳 Docker вариант:
> git clone https://github.com/Josue87/gotator.git
> cd gotator
> docker build -t gotator .
# Использование
> docker run gotator -sub subdomains.txt [...]
Примечание: Если вы используете версию 1.16 или выше и получаете ошибки, выполните следующую команду:
> go env -w GO111MODULE="auto"
Чтобы обновить версию, добавьте параметр -u в команду установки.
Gotator обладает следующими функциями для перестановок:
example.com, example.com.mx и т.д.).-numbers 3]; в результате получим числа от 7 до 13.-numbers 3]; увидим dev0, dev1, dev2, dev3 и dev4 (исключая отрицательные числа).test10-demo2, а флаг numbers установлен в 1 [-numbers 1]; среди результатов увидим test11-demo2.example.com, test9-demo2.example.com, test10-demo3.example.com или test10-demo1.example.com. (Каждый раз меняется только одно число).test на получим .Флаги, которые можно использовать для запуска инструмента:
gotator -sub domains.txt -perm permutations.txt -depth 2 -numbers 5 > output.txt
Для фильтрации результата и удаления возможных дубликатов:
gotator -sub domains.txt -perm permutations.txt -depth 3 -numbers 10 -md | uniq > output2.txt
Замените uniq на sort -u в предыдущей команде, если хотите отсортировать результат. (Не рекомендуется из-за времени выполнения).
Примечание: Если вы компилируете локально, не забудьте поставить ./ перед вашим бинарным файлом!
Примечание: Примеры могут относиться к более ранним версиям (где -mindup и adv не использовались).
У нас есть следующие списки:

В первом примере мы мутируем указанный поддомен:

В следующем примере мы указываем Gotator извлечь возможные домены из поддоменов с помощью -md:

Вы можете видеть, что example.com учитывается. Теперь пример со списком перестановок, содержащим test100demo, и с аргументом -numbers 3:

Можно увидеть большую глубину мутации, а также указать параметр prefixes (который добавляет небольшой список мутаций):

Последний пример показывает только часть вывода.
Наконец, пример с тихим режимом и разной глубиной с перенаправлением вывода в файл:

Этот инструмент может генерировать файлы огромного размера и некоторые дубликаты; мы рекомендуем фильтровать вывод с помощью uniq или sort -u и быть осторожными с флагом depth из-за размера вывода (легко сгенерировать файлы размером > 10 ГБ). Имейте в виду, что при передаче вывода по конвейеру другим инструментам требуется, чтобы инструмент обрабатывал весь вывод сразу (sort, uniq).
# Фильтрация вывода по размеру
gotator -sub subs.txt -perm perm.txt -depth 2 -numbers 5 -md | head -c 1G > output1G.txt
# Фильтрация вывода по строкам
gotator -sub subs.txt -perm perm.txt -depth 3 -mindup -numbers 20 | head -n 100000 > output100Klines.txt
# Сортировка уникальных строк
gotator -sub subs.txt -perm perm.txt -depth 2 -mindup -numbers 10 -prefixes | sort -u > outputSortUnique.txt
# Уникальные строки (удаляет только следующие друг за другом дубликаты)
gotator -sub subs.txt -perm perm.txt -depth 3 -mindup | uniq > outputUnique.txt
# Уникальные строки
gotator -sub subs.txt -perm perm.txt -depth 3 -mindup -adv | anew > outputAnew.txt
# Сортировка уникальных с ограничением размера
gotator -sub subs.txt -perm perm.txt -prefixes -adv | head -c 1G | sort -u > output1GSortedUnique.txt
Примечание: Примеры приведены с использованием sort -u, что замедлит генерацию результатов. Нет необходимости сортировать результаты, рекомендуется использовать anew.
Уведомление: Этот инструмент генерирует много выходной информации, рекомендуется использовать флаг mindup для уменьшения количества строк.
example.comtest.example.comdev и demo на example.com, получим dev.demo.example.com или demo-dev.example.com, помимо demo.example.com и dev.example.com. Уровень 3 — это расширение данного примера.-mindup, можно управлять дубликатами и уменьшать их количество (из-за большого числа генерируемых строк цель — максимально сократить домены с почти нулевой вероятностью существования):
test.example.com, а следующая перестановка снова даёт test, она игнорируется.testing.example.com и встречается test, то при совпадении test будет объединено с . и -, избегая появления testtesting.example.com.100.example.com и в перестановку попадает 90, то перестановка игнорируется, так как уже есть функция перестановки чисел.test100.example.com и в перестановку попадает test, мы удаляем числа, и test == test, поэтому перестановка игнорируется, так как уже есть нечто очень похожее.adv:
demo210.example.com, извлекаем значение demo210 и добавляем его в список перестановок. Если есть test-dev.domain.com, то добавляем в перестановки test-dev, test и dev (только если их ещё нет в списке).demo-test, он добавляет demo-test, demo и test в список.tech.example.com, а перестановка — test, мы также меняем позицию для перестановки "-" и "", получая результаты вроде techtest.example.com и tech-test.example.com (см. пример 1).dev.tech.example.com, то она добавляется как цель tech.example.com и example.com [-md].1rer, 2, 2tty, admin, api, app, bbs, blog, cdn, cloud, cuali, demo, dev, dev2, email, exchange, forum, ftp, gov, govyty, gw, host, m, mail, mail2, mx1, mysql, news, ns, ns1, owa, portal, pre, pro, prod, prueba, qa, remote, secure, server, shop, smtp, store, support, test, test, tty, vpn, vps, web, ww1, ww42, www, www2.| Флаг | Тип | Обязательный | Описание | Пример |
|---|
| sub | string | да | Список доменов для перестановки. | -sub subdomains.txt |
| perm | string | нет | Список перестановок. | -perm permutations.txt |
| depth | uint | нет | Установить глубину (от 1 до 3) – по умолчанию 1. | -depth 2 |
| numbers | uint | нет | Установить количество итераций для чисел, найденных в перестановках (вверх и вниз). По умолчанию 0 — пропущено. Эта опция снижает производительность, используйте небольшие значения. | -numbers 10 |
| prefixes | bool | нет | Добавить стандартные префиксы gotator к перестановкам. Если не указан perm, по умолчанию используется встроенный список. Если указан perm вместе с этим флагом, перестановки объединяются. | -prefixes |
| md | bool | нет | Извлечь «предшествующие» домены и поддомены из поддоменов, найденных в списке sub. | -md |
| adv | bool | нет | Расширенная опция. Генерировать слова перестановок с поддоменами и словами с -. А также добавлять слово перестановки в конце (глубина 1). | -adv |
| mindup | bool | нет | Установить этот флаг для минимизации дубликатов. (Для больших нагрузок рекомендуется активировать этот флаг). | -mindup |
| fast | bool | нет | Не проверять корневые домены (будьте осторожны с вашей областью). | -fast |
| silent | bool | нет | Баннер gotator не отображается. | -silent |
| t | uint | нет | Максимальное количество Go-рутин (по умолчанию 100). Примечание: данные выводятся на консоль, количество потоков может увеличить время обработки. | -t 200 |
| version | bool | нет | Показать версию Gotator. | -version |