Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
gorilla — Инструмент для генерации wordlist'ов или расширения существующего списка с помощью мутаций. | Kitploit
Инструменты/GitHubGitHub/andreiverse/gorilla
Взлом паролейАтаки на ПаролиСбор информацииКраулер
GitHubandreiverse/gorilla

gorilla

Инструмент для генерации wordlist'ов или расширения существующего списка с помощью мутаций.

Репозиторий
390226 месяцев назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

gorilla

gorilla — это идеальный инструмент для работы со словарями, объединяющий множество замечательных возможностей:

  • создание словарей на основе шаблонов (как crunch)
  • создание словарей на основе распространённых форматов паролей/имён пользователей (как cupp)
  • извлечение слов с веб-страницы и создание словаря из них (как cewl)
  • расширение существующих словарей с помощью мутаций (как атака на основе правил в hashcat)

установка с помощью cargo

Если у вас установлен Cargo (Rust), выполните cargo install --git https://github.com/d4rckh/gorilla --branch main

Теперь вы можете запускать gorilla --help

сборка с помощью cargo

root@kitploit:~
cargo build --release
# бинарный файл будет находиться в папке target/release

вычисление паролей

Аргумент --from-pattern/-p используется для того, чтобы указать gorilla вычислять пароли на основе шаблона. Например, следующая команда выведет каждое слово, состоящее из 5 строчных букв.

root@kitploit:~
gorilla --from-pattern "{a-z}{a-z}{a-z}{a-z}{a-z}"

Другие примеры шаблонов: administrator{0-9} (administrator0 -> administrator9); hello_world{a-z}{0-9} (hello_worlda0 -> hello_worldz9).

Если вы хотите сохранить вывод в файл, используйте аргумент --output-file/-o.

image

Теперь gorilla также поддерживает наборы символов. Они определены в src/char_sets.rs. Вот несколько примеров шаблонов, использующих их: {l} => a b c d ... z; {u} => A B C D ... Z; {d} => 1 2 3 4 ... 9; {s} => (пробел) ! " # $ ... ~. Вы можете комбинировать несколько наборов, например {luds} даст набор символов, содержащий все остальные описанные наборы (#45).

Если вы используете диапазон, и каждый его конец состоит из 1 символа, то это будет диапазон символов. Например:

  • {a-z} добавит каждый символ алфавита по одному: a, b, c, d, e, f, g,...., x, y и z;
  • {a-c} добавит только a, b и c по одному;
  • {0-9} добавит только 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, по одному. Если вы используете диапазон, и один из концов содержит более 1 символа, каждый конец будет интерпретирован как 32-битное число без знака, и вместо этого получится диапазон чисел. Например:
  • {2020-2026} добавит 2020, 2021, 2022, 2023, 2024, 2025 и 2026 по одному.
  • {1-100} добавит числа от 1 до 100 (включительно) по одному.

Экспериментально: если внутри ваших фигурных скобок есть запятая, строка будет разделена по ней, и каждая часть будет добавлена по одной, например, {Jan,Feb,Mar} добавит Jan, Feb и Mar по одному.

При желании вы можете запустить несколько потоков для шаблонов с помощью параметра --pattern-threads. Я рекомендую устанавливать его равным максимальному количеству потоков, доступных на вашем компьютере.

изменение существующих словарей с помощью мутаций/правил

С помощью аргументов командной строки вы можете выполнять любые поддерживаемые мутации, но ограничены только 1 набором мутаций. Набор мутаций — это множество мутаций, применяемых к слову. Через CLI мутации передаются с помощью аргумента --mutation/-m.

root@kitploit:~
gorilla --from-pattern "administrator" --mutation "prepend:_"

image

Обычно в этом случае вы захотите использовать аргумент --from-file/-i вместо --from-pattern, чтобы указать словарь, а не одно слово, но для простоты я использую его.

Приведённая выше команда принимает 1 слово и выводит 1 слово: _administrator. Вы можете добавить несколько мутаций, используя тот же параметр.

root@kitploit:~
gorilla --from-pattern "administrator" \
  -m "prepend:_" \
  -m "append:{0-9}"

Здесь снова берётся 1 слово, но выводится 10 различных. Добавление синтаксиса {0-9} к prepend и append приведёт к генерации нескольких слов. Приведённая выше команда генерирует следующие слова.

root@kitploit:~
_administrator0
_administrator1
_administrator2
[.. snip ..]
_administrator8
_administrator9

Если бы мы передали словарь через файл -i, мы получили бы количество слов из словаря, умноженное на 10.

Пока мы применяли только 1 единственный набор мутаций. Обычно вам потребуется комбинировать несколько таких наборов. Это делается с помощью yaml-файлов. Вы указываете его через аргумент --mutations-file/-f. Пример такого файла находится в sets/simple.yml в этом репозитории и выглядит так:

root@kitploit:~
name: simple

mutation_sets:
  - [ nothing ] # => word
  - [ reverse ] # => drow
  - [ remove_last_letter ] # => wor
  - [ remove_first_letter ] # => ord
  - [ uppercase_all ] # => WORD
  - [ "append:{0-9}" ] # => word1, word2, word3
  - [ "2 append:{0-9}" ] # => word11, word22, word33
  - [ "replace:o:0", "replace:a:4", "replace:e:3" ] # => w0rd, h3ll0

image

Каждый файл мутаций должен содержать значения name и mutation_sets, как показано в примере. Приведённые выше наборы мутаций создадут из одного слова ещё 27 слов.

root@kitploit:~
administrator
administrator
rotartsinimda
administrato
dministrator
ADMINISTRATOR
administrator0
[.. snip ..]
administrator9
administrator00
[.. snip ..]
administrator99
4dministr4t0r

Если вы хотите проверить файл мутаций на ошибки перед использованием, вы можете воспользоваться следующим синтаксисом для разбора и вывода сводки.

root@kitploit:~
gorilla --mutations-file muts.yml 

извлечение слов с веб-страниц

(Пока что) вы можете извлекать слова только с конкретной страницы. Теги стилей и скриптов автоматически удаляются.

Вы можете указать страницу с помощью аргумента --from-website/-w. Например

root@kitploit:~
gorilla --from-website https://example.org/

image

Приведённая выше команда выведет каждое слово с этого сайта. Вы можете добавить другие аргументы, показанные ранее, например --mutations-file/-f, --mutation/-m и, конечно, --output-file/-o, чтобы сохранить их (вместо вывода на экран).

условные мутации

Вы можете применить набор мутаций только к тем словам, которые соответствуют определённым условиям. Это имеет смысл только в yaml-файлах.

Следующий файл мутаций удалит слова, которые не содержат строку admin. В отличие от предыдущих мутаций, эта может удалять слова.

root@kitploit:~
name: filtering_words

mutation_sets:
  - [ "if_contains:admin" ]

Другой пример — добавление подчёркивания только к словам, длина которых больше 5 символов.

root@kitploit:~
name: conditional_mutation

mutation_sets:
  - [ "if_length:>5", "append:_" ],
  - [ "! if_length:>5" ]

Обратите внимание, что нам пришлось добавить ещё один набор мутаций, начинающийся с отрицательной версии первой if-мутации, иначе слова короче 6 символов будут удалены.

другие мутации

gorilla поддерживает множество других мутаций, и, поскольку инструмент находится на ранней стадии разработки, поддерживать их список здесь было бы очень утомительно. Если вам интересны другие мутации, вы можете посмотреть перечисление Action в файле src/mutation.rs.

использование распространённых форматов паролей/имён пользователей для создания словарей

Форматы определяются в форматирующих наборах через yaml-файлы и передаются gorilla с помощью аргумента --from-formatting/-q. Сейчас создан только один форматирующий набор, он находится в sets/formatting/basic_usernames.yml. Выглядит он (примерно) так.

root@kitploit:~
name: basic_usernames

fields:
  - [ f_name ]
  - [ l_name ]

formatting_sets:
  - [ "{f_name}_{l_name}" ]
  - [ "{l_name}{f_name}" ]
  - [ ["{f_name}", [1st_letter]], "_{l_name}" ]
  - [ ["{f_name}", [1st_letter]], "{l_name}" ]

Обязательные поля: name, fields и formatting_sets. Значение fields — это профиль пользователя, содержащий информацию, которая затем используется в formatting_sets.

Если вы запустите набор, у вас запросят каждое поле, и будут сгенерированы имена пользователей.

image

примечание: не делайте мутации внутри форматирующих наборов слишком сложными, все они выполняются в одном потоке! Объединяйте форматирующий файл с файлом мутаций, чтобы выполнять мутации параллельно. Не используйте комбинаторные шаблоны внутри наборов мутаций форматирующих наборов.

совет: вы можете использовать другие аргументы обычным образом, например --mutations-file/-f для генерации новых слов через мутации или --output-file/-o для сохранения слов

Каждый форматирующий набор — это массив строк, которые затем объединяются. Так что ["{f_name}", "{l_name}"] эквивалентно ["{f_name}{l_name}"]. Вместо строки можно указать массив — это позволяет применять мутации, которые вы использовали ранее для расширения словарей.

root@kitploit:~
- [ "{f_name}_", [ "{l_name}", [ reverse ] ] ]

Если f_name — это joe, а l_name — doe, то в результате форматирования будет сгенерировано joe_eod. Полезные мутации в форматирующих наборах: remove_last_letter, remove_first_letter и 1st_letter.

Если вы хотите применить форматирующие наборы ко многим профилям пользователей, вы можете использовать аргумент --with-csv/-c для указания CSV-файла. Для форматирующего набора basic_usernames CSV должен выглядеть так:

root@kitploit:~
f_name,l_name
joe,doe
james,smith
robert,smith

image

все доступные мутации:

базовые

  • append:PATTERN — добавляет шаблон или просто текст в конец
  • prepend:PATTERN — добавляет шаблон или просто текст в начало
  • replace:TEXT1:TEXT2 — заменяет TEXT1 на TEXT2
  • reverse — переворачивает слово
  • uppercase_all — преобразует всё в верхний регистр
  • lowercase_all — преобразует всё в нижний регистр
  • remove_first_letter — удаляет первую букву
  • remove_last_letter — удаляет последнюю букву
  • capitalize — делает первую букву заглавной, остальные — строчными
  • toggle_case — изменяет регистр каждого символа на противоположный

продвинутые

  • if_length:COND — удаляет слово, если оно не соответствует условию по длине слова (COND = >NUMBER/<NUMBER/=NUMBER)
  • if_contains:TEXT — аналогично предыдущему, но удаляет, если слово не содержит указанный текст
  • clone — клонирует слово
  • wipe — удаляет всё из слова
  • 1st_letter — оставляет всё, кроме первой буквы
  • nothing — ничего не делает
Скачать инструмент