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

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

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

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

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

Категории

Все категории
Loading categories
kerbrute — Инструмент для брутфорса предварительной аутентификации Kerberos | Kitploit
Инструменты/GitHubGitHub/ropnop/kerbrute
РазведкаАтаки на ПаролиСбор информацииАутентификация
GitHubropnop/kerbrute

kerbrute

Инструмент для брутфорса предварительной аутентификации Kerberos

Репозиторий
3.4k4855 лет назадПроверено Kitploit

Популярное

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

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

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

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

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

Kerbrute

CircleCI

Инструмент для быстрого перебора и перечисления действительных учётных записей Active Directory через предварительную аутентификацию Kerberos

Загрузите последние бинарные файлы со страницы релизов, чтобы начать работу.

Предыстория

Этот инструмент вырос из bash-скриптов, которые я написал несколько лет назад для выполнения перебора с помощью клиента Kerberos Heimdal из Linux. Мне нужно было решение, не требующее привилегий для установки клиента Kerberos, и когда я нашёл замечательную чистую реализацию Kerberos на Go gokrb5, я решил наконец выучить Go и написать это.

Перебор паролей Windows через Kerberos гораздо быстрее любого другого известного мне подхода и потенциально незаметнее, поскольку сбои предварительной аутентификации не вызывают «традиционное» событие 4625 An account failed to log on. С помощью Kerberos вы можете проверить имя пользователя или пароль, отправив всего один UDP-пакет на KDC (контроллер домена).

Для получения дополнительной информации и предыстории посмотрите мой доклад на Troopers 2019 «Fun with LDAP and Kerberos» (ссылка будет позже).

Использование

Kerbrute имеет три основные команды:

  • bruteuser — перебор пароля одного пользователя из словаря
  • bruteforce — чтение комбинаций username:password из файла или stdin и их проверка
  • passwordspray — проверка одного пароля для списка пользователей
  • userenum — перечисление действительных имён пользователей домена через Kerberos

Домен (-d) или контроллер домена (--dc) должны быть указаны. Если контроллер домена не задан, KDC будет найден через DNS.

По умолчанию Kerbrute работает в многопоточном режиме, используя 10 потоков. Это можно изменить с помощью опции -t.

Вывод записывается в stdout, но файл журнала можно указать с помощью -o.

По умолчанию ошибки не логируются, но это можно изменить с помощью -v.

Наконец, у Kerbrute есть опция --safe. Если она включена, то при обнаружении блокировки учётной записи все потоки будут остановлены, чтобы не блокировать другие учётные записи.

Команда help предоставляет дополнительную информацию.

root@kitploit:~
$ ./kerbrute -h

    __             __               __
   / /_____  _____/ /_  _______  __/ /____
  / //_/ _ \/ ___/ __ \/ ___/ / / / __/ _ \
 / ,< /  __/ /  / /_/ / /  / /_/ / /_/  __/
/_/|_|\___/_/  /_.___/_/   \__,_/\__/\___/

Version: dev (bc1d606) - 11/15/20 - Ronnie Flathers @ropnop

This tool is designed to assist in quickly bruteforcing valid Active Directory accounts through Kerberos Pre-Authentication.
It is designed to be used on an internal Windows domain with access to one of the Domain Controllers.
Warning: failed Kerberos Pre-Auth counts as a failed login and WILL lock out accounts

Usage:
  kerbrute [command]

Available Commands:
  bruteforce    Bruteforce username:password combos, from a file or stdin
  bruteuser     Bruteforce a single user's password from a wordlist
  help          Help about any command
  passwordspray Test a single password against a list of users
  userenum      Enumerate valid domain usernames via Kerberos
  version       Display version info and quit

Flags:
      --dc string          The location of the Domain Controller (KDC) to target. If blank, will lookup via DNS
      --delay int          Delay in millisecond between each attempt. Will always use single thread if set
  -d, --domain string      The full domain to use (e.g. contoso.com)
      --downgrade          Force downgraded encryption type (arcfour-hmac-md5)
      --hash-file string   File to save AS-REP hashes to (if any captured), otherwise just logged
  -h, --help               help for kerbrute
  -o, --output string      File to write logs to. Optional.
      --safe               Safe mode. Will abort if any user comes back as locked out. Default: FALSE
  -t, --threads int        Threads to use (default 10)
  -v, --verbose            Log failures and errors

Use "kerbrute [command] --help" for more information about a command.

Перечисление пользователей

Для перечисления имён пользователей Kerbrute отправляет запросы TGT без предварительной аутентификации. Если KDC отвечает ошибкой PRINCIPAL UNKNOWN, имя пользователя не существует. Однако если KDC запрашивает предварительную аутентификацию, мы знаем, что имя существует, и продолжаем. Это не вызывает ошибок входа, поэтому учётные записи не блокируются. Данное действие генерирует событие Windows с ID 4768, если включено журналирование Kerberos.

root@kitploit:~
root@kali:~# ./kerbrute_linux_amd64 userenum -d lab.ropnop.com usernames.txt

    __             __               __
   / /_____  _____/ /_  _______  __/ /____
  / //_/ _ \/ ___/ __ \/ ___/ / / / __/ _ \
 / ,< /  __/ /  / /_/ / /  / /_/ / /_/  __/
/_/|_|\___/_/  /_.___/_/   \__,_/\__/\___/

Version: dev (43f9ca1) - 03/06/19 - Ronnie Flathers @ropnop

2019/03/06 21:28:04 >  Using KDC(s):
2019/03/06 21:28:04 >   pdc01.lab.ropnop.com:88

2019/03/06 21:28:04 >  [+] VALID USERNAME:       [email protected]
2019/03/06 21:28:04 >  [+] VALID USERNAME:       [email protected]
2019/03/06 21:28:04 >  Done! Tested 1001 usernames (2 valid) in 0.425 seconds

Password Spray

С помощью passwordspray Kerbrute выполняет горизонтальную атаку перебора по списку пользователей домена. Это полезно для проверки одного или двух распространённых паролей при большом списке пользователей. ПРЕДУПРЕЖДЕНИЕ: эта операция увеличивает счётчик неудачных входов и может заблокировать учётные записи. Генерируются события с ID 4768 — запрос билета аутентификации Kerberos (TGT) и 4771 — сбой предварительной аутентификации Kerberos.

root@kitploit:~
root@kali:~# ./kerbrute_linux_amd64 passwordspray -d lab.ropnop.com domain_users.txt Password123

    __             __               __
   / /_____  _____/ /_  _______  __/ /____
  / //_/ _ \/ ___/ __ \/ ___/ / / / __/ _ \
 / ,< /  __/ /  / /_/ / /  / /_/ / /_/  __/
/_/|_|\___/_/  /_.___/_/   \__,_/\__/\___/

Version: dev (43f9ca1) - 03/06/19 - Ronnie Flathers @ropnop

2019/03/06 21:37:29 >  Using KDC(s):
2019/03/06 21:37:29 >   pdc01.lab.ropnop.com:88

2019/03/06 21:37:35 >  [+] VALID LOGIN:  [email protected]:Password123
2019/03/06 21:37:37 >  [+] VALID LOGIN:  [email protected]:Password123
2019/03/06 21:37:37 >  Done! Tested 2755 logins (2 successes) in 7.674 seconds

Brute User

Это традиционный перебор пароля для одного пользователя. Запускайте эту команду только если уверены, что политика блокировки отсутствует! Генерируются события с ID 4768 — запрос билета аутентификации Kerberos (TGT) и 4771 — сбой предварительной аутентификации Kerberos.

root@kitploit:~
root@kali:~# ./kerbrute_linux_amd64 bruteuser -d lab.ropnop.com passwords.lst thoffman

    __             __               __
   / /_____  _____/ /_  _______  __/ /____
  / //_/ _ \/ ___/ __ \/ ___/ / / / __/ _ \
 / ,< /  __/ /  / /_/ / /  / /_/ / /_/  __/
/_/|_|\___/_/  /_.___/_/   \__,_/\__/\___/

Version: dev (43f9ca1) - 03/06/19 - Ronnie Flathers @ropnop

2019/03/06 21:38:24 >  Using KDC(s):
2019/03/06 21:38:24 >   pdc01.lab.ropnop.com:88

2019/03/06 21:38:27 >  [+] VALID LOGIN:  [email protected]:Summer2017
2019/03/06 21:38:27 >  Done! Tested 1001 logins (1 successes) in 2.711 seconds

Brute Force

Этот режим просто читает комбинации имени пользователя и пароля (в формате username:password) из файла или из stdin и проверяет их через предварительную аутентификацию Kerberos. Пустые строки или строки с пустыми именами/паролями пропускаются. Генерируются события с ID 4768 — запрос билета аутентификации Kerberos (TGT) и 4771 — сбой предварительной аутентификации Kerberos.

root@kitploit:~
$ cat combos.lst | ./kerbrute -d lab.ropnop.com bruteforce -

    __             __               __
   / /_____  _____/ /_  _______  __/ /____
  / //_/ _ \/ ___/ __ \/ ___/ / / / __/ _ \
 / ,< /  __/ /  / /_/ / /  / /_/ / /_/  __/
/_/|_|\___/_/  /_.___/_/   \__,_/\__/\___/

Version: dev (n/a) - 05/11/19 - Ronnie Flathers @ropnop

2019/05/11 18:40:56 >  Using KDC(s):
2019/05/11 18:40:56 >   pdc01.lab.ropnop.com:88

2019/05/11 18:40:56 >  [+] VALID LOGIN:  [email protected]:Password1234
2019/05/11 18:40:56 >  Done! Tested 7 logins (1 successes) in 0.114 seconds

Установка

Вы можете загрузить предварительно скомпилированные бинарные файлы для Linux, Windows и Mac со страницы релизов. Если хотите быть на передовой, можете также установить через Go:

root@kitploit:~
$ go get github.com/ropnop/kerbrute

Если репозиторий склонирован, вы также можете использовать Make-файл для сборки под распространённые архитектуры:

root@kitploit:~
$ make help
help:            Show this help.
windows:  Make Windows x86 and x64 Binaries
linux:  Make Linux x86 and x64 Binaries
mac:  Make Darwin (Mac) x86 and x64 Binaries
clean:  Delete any binaries
all:  Make Windows, Linux and Mac x86/x64 Binaries

$ make all
Done.
Building for windows amd64..
Building for windows 386..
Done.
Building for linux amd64...
Building for linux 386...
Done.
Building for mac amd64...
Building for mac 386...
Done.

$ ls dist/
kerbrute_darwin_386        kerbrute_linux_386         kerbrute_windows_386.exe
kerbrute_darwin_amd64      kerbrute_linux_amd64       kerbrute_windows_amd64.exe

Благодарности

Огромное спасибо jcmturner за чистую реализацию KRB5 на Go: https://github.com/jcmturner/gokrb5 . Замечательный проект с отличной документацией. Без этого проекта ничего бы не получилось.

Спасибо audibleblink за предложение и реализацию опции delay!

Скачать инструмент