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

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

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

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

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

Категории

Все категории
Loading categories
c-jwt-cracker — JWT-брутфорсер, написанный на C | Kitploit
Инструменты/GitHubGitHub/brendan-rius/c-jwt-cracker
Взлом паролейВеб-безопасностьТестирование на ПроникновениеАутентификация
GitHubbrendan-rius/c-jwt-cracker

c-jwt-cracker

JWT-брутфорсер, написанный на C

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

Популярное

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

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

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

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

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

JWT cracker

Многопоточный взломщик JWT методом полного перебора, написанный на C. Если вам очень повезёт или у вас есть огромные вычислительные мощности, эта программа должна найти секретный ключ JWT токена, позволяя вам подделывать валидные токены. Только для целей тестирования, не ввязывайтесь в неприятности :)

Я использовал реализацию Base64 от Apple, которую слегка изменил.

Сборка Docker-образа

root@kitploit:~
docker build . -t jwtcrack

Запуск в Docker

root@kitploit:~
docker run -it --rm  jwtcrack eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWV9.cAOIAifu3fykvhkHpbuhbvtH807-Z2rI1FS3vX1XMjE

Ручная компиляция

Убедитесь, что у вас установлены заголовочные файлы openssl. В Ubuntu их можно установить с помощью apt-get install libssl-dev

root@kitploit:~
make

Если вы используете Mac, вы можете установить OpenSSL с помощью brew install openssl, но заголовочные файлы будут находиться в другом месте:

root@kitploit:~
make OPENSSL=/usr/local/opt/openssl/include OPENSSL_LIB=-L/usr/local/opt/openssl/lib

Запуск

root@kitploit:~
$ > ./jwtcrack eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWV9.cAOIAifu3fykvhkHpbuhbvtH807-Z2rI1FS3vX1XMjE

Запуск с различными HMAC-функциями

Следующие хеш-функции поддерживаются для HMAC, т.е. для генерации ключевых хешированных кодов аутентификации сообщений: "sha256" для JSON HS256 (HMAC с SHA-256), "sha384" для HS384 и "sha512" для HS512 соответственно. Вы можете указать имя любой другой хеш-функции точно так, как она названа в OpenSSL. Если OpenSSL позволяет использовать эту хеш-функцию для HMAC, то jwtcrack попытается декодировать секрет. Однако, поскольку jwtcrack является только декодером, нет гарантии, что этот алгоритм действительно использовался для кодирования, не говоря уже о том, что он входит в список алгоритмов, разрешённых RFC "JSON Web Algorithms". Смотрите раздел 3.1. RFC 7518 для получения дополнительной информации.

В следующем примере мы используем хеш-функцию sha256, которая соответствует JSON HS256 (HMAC-SHA256), смотрите "sha256" как последний параметр командной строки. Также в этом примере мы указываем максимальную длину секрета в 5 символов и ограничиваем алфавит следующими символами: ABCSNFabcsnf1234

root@kitploit:~
$ > ./jwtcrack eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWV9.cAOIAifu3fykvhkHpbuhbvtH807-Z2rI1FS3vX1XMjE ABCSNFabcsnf1234 5 sha256

В приведённом выше примере ключ — Sn1f, и на среднем ноутбуке 2019 года выпуска (например, с процессором Intel на микроархитектуре Ice Lake) это занимает меньше секунды. Для компиляции программы jwtcrack использовался GCC версии 9.3.0 с флагом "-O3". Она была скомпонована с библиотекой OpenSSL версии 1.1.1f под Linux Ubuntu 20.04.1 LTS.

Здесь, в следующем примере, мы используем "sha512" как последний параметр командной строки для указания HS512 (HMAC-SHA512), а также указываем максимальную длину секрета в 9 символов и ограничиваем алфавит следующими семью строчными латинскими символами: "adimnps".

root@kitploit:~
$ > ./jwtcrack eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJyb2xlIjoiYWRtaW4ifQ.RnWtv7Rjggm8LdMU3yLnz4ejgGAkIxoZwsCMuJlHMwTh7CJODDZWR8sVuNvo2ws25cbH9HWcp2n5WxpIZ9_v0g adimnps 9 sha512

В приведённом выше примере ключ — adminpass, и для его декодирования на ноутбуке с процессором Intel Core i7 1065G7 на микроархитектуре Ice Lake (2019), базовая частота 1.30 ГГц, максимальный турбо 3.90 ГГц) требуется в среднем около 15 секунд. Общее количество процессорных секунд, потреблённых от каждого ядра в пользовательском режиме из-за многопоточности, составляет в среднем около 100 для декодирования этого секрета.

Пример использования "sha384":

root@kitploit:~
$ > ./jwtcrack eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzM4NCJ9.eyJyb2xlIjoiYWRtaW4ifQ.31xCH3k8VRqB8l5qBy7RyqI2htyCskBy_4cIWpk3o43UkIMW-IcjTUEL_NyFXUWJ 0123456789 6 sha384

Измерение времени, затраченного jwtcrack

root@kitploit:~
/usr/bin/time -f "Total number of CPU-seconds consumed directly from each of the CPU cores: %U\nElapsed real wall clock time used by the process: %E" ./jwtcrack eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJyb2xlIjoiYWRtaW4ifQ.RnWtv7Rjggm8LdMU3yLnz4ejgGAkIxoZwsCMuJlHMwTh7CJODDZWR8sVuNvo2ws25cbH9HWcp2n5WxpIZ9_v0g adimnps 9 sha512

Вклад

  • Нет индикатора прогресса
  • Если остановить программу, вы не сможете продолжить с того же места

ВАЖНО: Известные ошибки

Используемая мной реализация base64 (от Apple) иногда содержит ошибки, потому что не все реализации Base64 одинаковы. Поэтому иногда декодирование вашего Base64 токена будет работать лишь частично, и вы сможете найти секрет для вашего токена, который не является правильным.

Если кто-то захочет реализовать более надёжную реализацию Base64, это было бы здорово :)

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