Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
c-jwt-cracker — C로 작성된 JWT 브루트포스 크래커 | Kitploit
도구/GitHubGitHub/brendan-rius/c-jwt-cracker
Password CrackingWeb SecurityPenetration TestingAuthentication
GitHubbrendan-rius/c-jwt-cracker

c-jwt-cracker

C로 작성된 JWT 브루트포스 크래커

저장소 보기
2.6k2735년 전Kitploit 검토 완료

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

JWT 크래커

C로 작성된 멀티스레드 JWT 무차별 대입 크래커입니다. 운이 매우 좋거나 엄청난 컴퓨팅 파워가 있다면, 이 프로그램은 JWT 토큰의 비밀 키를 찾아내어 유효한 토큰을 위조할 수 있게 해줍니다. 이는 테스트 목적으로만 사용하십시오. 문제에 빠지지 마세요 :)

약간 수정한 Apple Base64 구현체를 사용했습니다.

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을 사용하는 경우, brew install openssl로 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(Keyed-Hashed Message Authentication Code) 생성을 위해 다음 해시 함수가 지원됩니다: JSON HS256 (HMAC-SHA256)을 위한 "sha256", HS384를 위한 "sha384", HS512를 위한 "sha512"입니다. OpenSSL에서 명명된 대로 다른 해시 함수의 이름을 정확히 지정할 수 있습니다. OpenSSL이 해당 해시 함수를 HMAC에 사용하도록 허용한다면, jwtcrack은 비밀 키를 복호화하려고 시도합니다. 그러나 jwtcrack은 단순한 디코더이므로, 이 알고리즘이 실제로 인코딩에 사용되었다는 보장은 없으며, "JSON Web Algorithms" RFC에서 허용된 알고리즘 목록에 포함되어 있다는 보장도 더욱 없습니다. 자세한 내용은 RFC 7518의 섹션 3.1을 참조하십시오.

다음 예제에서는 JSON HS256 (HMAC-SHA256)에 해당하는 sha256 해시 함수를 사용하며, 마지막 명령줄 매개변수로 "sha256"을 지정합니다. 또한 이 예제에서는 최대 비밀 키 길이를 5자로 지정하고, 알파벳을 다음 문자로 제한합니다: ABCSNFabcsnf1234

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

위 예제에서 키는 Sn1f이며, 2019년경 출시된 일반 노트북(예: Ice Lake 마이크로아키텍처 기반 Intel CPU)에서 1초 미만이 소요됩니다. jwtcrack 프로그램은 GCC 9.3.0 버전과 "-O3" 플래그로 컴파일되었습니다. Linux Ubuntu 20.04.1 LTS에서 OpenSSL 라이브러리 1.1.1f 버전과 링크되었습니다.

다음 예제에서는 마지막 명령줄 매개변수로 "sha512"를 사용하여 HS512 (HMAC-SHA512)를 지정하고, 최대 비밀 키 길이를 9자로 지정하며, 알파벳을 다음 7개의 소문자 라틴 문자로 제한합니다: "adimnps".

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

위 예제에서 키는 adminpass이며, Intel Core i7 1065G7 CPU (Ice Lake 마이크로아키텍처, 2019년, 기본 주파수 1.30 GHz, 최대 터보 3.90 GHz)가 탑재된 노트북에서 평균 약 15초가 소요됩니다. 멀티스레딩으로 인해 사용자 모드에서 각 코어에서 소비된 총 CPU 시간은 평균 약 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

기여

  • 진행 상황 표시 없음
  • 프로그램을 중단하면 중단했던 지점부터 다시 시작할 수 없음

중요: 알려진 버그

제가 사용하는 (Apple의) base64 구현체는 때때로 버그가 있습니다. 모든 Base64 구현체가 동일하지 않기 때문입니다. 따라서 Base64 토큰의 복호화가 부분적으로만 작동하여, 올바르지 않은 토큰의 비밀 키를 찾게 될 수도 있습니다.

누군가 더 견고한 Base64 구현체를 구현해 주신다면 정말 좋을 것입니다 :)

도구 다운로드