john-the-ripper
John the Ripper を使って、オフラインでパスワードハッシュを解析し、不明なハッシュ形式の特定、忘れられたパスワードの復旧、CTFチャレンジへの挑戦、所有システムのハッシュ強度の監査などを効率的に行うSkill。
📜 元の英語説明(参考)
Crack password hashes offline with John the Ripper. Use when a user asks to identify an unknown hash format, recover a forgotten password from a local database or ZIP file, run a CTF hash challenge, or audit the strength of hashes from a system they own.
🇯🇵 日本人クリエイター向け解説
John the Ripper を使って、オフラインでパスワードハッシュを解析し、不明なハッシュ形式の特定、忘れられたパスワードの復旧、CTFチャレンジへの挑戦、所有システムのハッシュ強度の監査などを効率的に行うSkill。
※ jpskill.com 編集部が日本のビジネス現場向けに補足した解説です。Skill本体の挙動とは独立した参考情報です。
下記のコマンドをコピーしてターミナル(Mac/Linux)または PowerShell(Windows)に貼り付けてください。 ダウンロード → 解凍 → 配置まで全自動。
mkdir -p ~/.claude/skills && cd ~/.claude/skills && curl -L -o john-the-ripper.zip https://jpskill.com/download/15026.zip && unzip -o john-the-ripper.zip && rm john-the-ripper.zip
$d = "$env:USERPROFILE\.claude\skills"; ni -Force -ItemType Directory $d | Out-Null; iwr https://jpskill.com/download/15026.zip -OutFile "$d\john-the-ripper.zip"; Expand-Archive "$d\john-the-ripper.zip" -DestinationPath $d -Force; ri "$d\john-the-ripper.zip"
完了後、Claude Code を再起動 → 普通に「動画プロンプト作って」のように話しかけるだけで自動発動します。
💾 手動でダウンロードしたい(コマンドが難しい人向け)
- 1. 下の青いボタンを押して
john-the-ripper.zipをダウンロード - 2. ZIPファイルをダブルクリックで解凍 →
john-the-ripperフォルダができる - 3. そのフォルダを
C:\Users\あなたの名前\.claude\skills\(Win)または~/.claude/skills/(Mac)へ移動 - 4. Claude Code を再起動
⚠️ ダウンロード・利用は自己責任でお願いします。当サイトは内容・動作・安全性について責任を負いません。
🎯 このSkillでできること
下記の説明文を読むと、このSkillがあなたに何をしてくれるかが分かります。Claudeにこの分野の依頼をすると、自動で発動します。
📦 インストール方法 (3ステップ)
- 1. 上の「ダウンロード」ボタンを押して .skill ファイルを取得
- 2. ファイル名の拡張子を .skill から .zip に変えて展開(macは自動展開可)
- 3. 展開してできたフォルダを、ホームフォルダの
.claude/skills/に置く- · macOS / Linux:
~/.claude/skills/ - · Windows:
%USERPROFILE%\.claude\skills\
- · macOS / Linux:
Claude Code を再起動すれば完了。「このSkillを使って…」と話しかけなくても、関連する依頼で自動的に呼び出されます。
詳しい使い方ガイドを見る →- 最終更新
- 2026-05-18
- 取得日時
- 2026-05-18
- 同梱ファイル
- 1
📖 Skill本文(日本語訳)
※ 原文(英語/中国語)を Gemini で日本語化したものです。Claude 自身は原文を読みます。誤訳がある場合は原文をご確認ください。
John the Ripper
概要
John the Ripper (JtR) は、古典的なオフラインパスワードクラッカーです。ハッシュ形式を識別し、辞書攻撃、インクリメンタル(ブルートフォース)攻撃、およびルールベースの攻撃を実行します。また、一般的なファイル形式(ZIP、PDF、SSH keys、KeePass、LUKS)をクラック可能なハッシュに変換する *2john ヘルパーが付属しています。コミュニティ版の "Jumbo" フォークは、数百の形式をサポートしています。JtR は CPU 志向です。高速なハッシュに対する GPU 作業には hashcat を使用してください。
手順
ステップ 1: ハッシュ形式の識別
# JtR に推測させる
echo '$6$saltsalt$...' > unknown.hash
john unknown.hash
# Loaded 1 password hash (sha512crypt, crypt(3) $6$ [SHA512 256/256 AVX2 4x])
# または hashid を使用する
hashid '$2a$12$R9h...'
# Analyzing '$2a$12$R9h...'
# [+] Blowfish(OpenBSD)
# [+] bcrypt
# サポートされているすべての形式をリスト表示する
john --list=formats | tr ',' '\n' | grep -i bcrypt
ステップ 2: ファイルをクラック可能なハッシュに変換する
# パスワードで保護された ZIP
zip2john secret.zip > secret.hash
john secret.hash
# パスワードで保護された PDF
pdf2john.pl confidential.pdf > pdf.hash
john pdf.hash
# 暗号化された SSH プライベートキー
ssh2john id_rsa > idrsa.hash
john idrsa.hash
# KeePass データベース
keepass2john db.kdbx > kp.hash
john kp.hash
# macOS keychain、Office ドキュメント、LUKS、1Password — *2john ヘルパーは Jumbo に付属
ls /usr/share/john/*2john*
ステップ 3: 攻撃の実行
# ワードリスト攻撃
john --wordlist=/usr/share/wordlists/rockyou.txt secret.hash
# ワードリスト + ルール (単語を加工: "Summer" → "Summer!", "summer2026", "S0mmer")
john --wordlist=rockyou.txt --rules=Jumbo secret.hash
# インクリメンタル (ブルートフォース) — 高速なハッシュまたは短いパスワードに対してのみ使用する
john --incremental=ASCII secret.hash
# マスク攻撃 — パターンがわかっている場合
john --mask='?u?l?l?l?l?d?d?d?d' secret.hash
# ?u upper, ?l lower, ?d digit, ?s symbol, ?a all
# 期間を制限する。後で再開する
john --max-run-time=3600 secret.hash
john --restore
ステップ 4: 結果の表示とエクスポート
# クラックされた結果を表示する
john --show secret.hash
# secret.zip:hunter2:::::secret.zip
# カウントのみ / クラックされていないもののみ
john --show=left secret.hash
# Pot ファイル (既にクラックされたキャッシュ) は ~/.john/john.pot に存在する
cat ~/.john/john.pot
# クラックされたパスワードを 1 行に 1 つずつエクスポートする
john --show secret.hash | awk -F: 'NF>1 {print $2}'
ステップ 5: チューニングとマルチコア
# すべての CPU コア (OpenMP ビルド)
john --fork=8 secret.hash
# マシン間で分散する (ノード 1/4)
john --node=1/4 --fork=8 secret.hash
# ハードウェアのベンチマーク
john --test --format=bcrypt
john --test --format=sha512crypt
例
例 1: /etc/shadow エントリのクラック (自身のシステム)
# 自身のシステムで
sudo cp /etc/shadow /tmp/shadow
sudo cp /etc/passwd /tmp/passwd
chmod 644 /tmp/shadow /tmp/passwd
# JtR 入力に結合する
unshadow /tmp/passwd /tmp/shadow > creds.txt
head -1 creds.txt
# root:$6$abc...:0:0:root:/root:/bin/bash
john --wordlist=/usr/share/wordlists/rockyou.txt --rules=Single creds.txt
john --show creds.txt
# root:hunter2:0:0:root:/root:/bin/bash
rm /tmp/shadow /tmp/passwd creds.txt
例 2: CTF — ZIP パスワードの回復
# CTF からの challenge.zip が与えられた場合
zip2john challenge.zip > zip.hash
cat zip.hash
# challenge.zip:$zip2$*0*3*0*...*$/zip2$:::challenge.zip
# まず rockyou を試す
john --wordlist=/usr/share/wordlists/rockyou.txt zip.hash
# ストレートな辞書攻撃が失敗する場合はルールを追加する
john --wordlist=rockyou.txt --rules=KoreLogic zip.hash
# 結果を表示する
john --show zip.hash
# challenge.zip:flag2026
# 回復したパスワードで解凍する
unzip -P flag2026 challenge.zip
ガイドライン
- 自身が所有している、またはクラックする権限を与えられているハッシュのみをクラックしてください。 許可なく第三者のハッシュを所持およびクラックすることは、ほとんどの法域で違法です。
- 常に最初にハッシュ形式を識別してください。間違ったものを選択すると、時間が無駄になるか、サイレントな誤ったクラックが発生します。
- "Jumbo" コミュニティビルド (
john-jumbo) は、アップストリームよりもはるかに多くの形式をサポートしています。ディストリビューションからインストールするか、ソースからコンパイルしてください。 - 攻撃の順序: ワードリスト → ワードリスト+ルール → マスク (パターンがわかっている場合) → インクリメンタル。ブルートフォースから開始しないでください。
- 高速なハッシュ (MD5、NTLM、SHA1) は、GPU を使用した hashcat に適しています。JtR は、低速なハッシュ (bcrypt、sha512crypt、PBKDF2) に優れています。
- マルチコアシステムでは
--fork=Nを使用してください。デフォルトの JtR は 1 つのスレッドしか使用しません。 - 部分的な作業を保存してください。JtR は、
~/.john/john.recに 1 分ごとに進捗状況を書き込みます。john --restoreで再開します。 john.potファイルは、組織の記憶です。同じハッシュを二度とクラックしないようにバックアップしてください。
📜 原文 SKILL.md(Claudeが読む英語/中国語)を展開
John the Ripper
Overview
John the Ripper (JtR) is the classic offline password cracker. It identifies hash formats, runs dictionary, incremental (brute-force), and rule-based attacks, and ships *2john helpers that convert common file formats (ZIP, PDF, SSH keys, KeePass, LUKS) into crackable hashes. The community "Jumbo" fork supports hundreds of formats. JtR is CPU-oriented — use hashcat for GPU work on fast hashes.
Instructions
Step 1: Identify the Hash Format
# Let JtR guess
echo '$6$saltsalt$...' > unknown.hash
john unknown.hash
# Loaded 1 password hash (sha512crypt, crypt(3) $6$ [SHA512 256/256 AVX2 4x])
# Or use hashid
hashid '$2a$12$R9h...'
# Analyzing '$2a$12$R9h...'
# [+] Blowfish(OpenBSD)
# [+] bcrypt
# List all supported formats
john --list=formats | tr ',' '\n' | grep -i bcrypt
Step 2: Convert Files into Crackable Hashes
# Password-protected ZIP
zip2john secret.zip > secret.hash
john secret.hash
# Password-protected PDF
pdf2john.pl confidential.pdf > pdf.hash
john pdf.hash
# Encrypted SSH private key
ssh2john id_rsa > idrsa.hash
john idrsa.hash
# KeePass database
keepass2john db.kdbx > kp.hash
john kp.hash
# macOS keychain, Office docs, LUKS, 1Password — *2john helpers ship in Jumbo
ls /usr/share/john/*2john*
Step 3: Run Attacks
# Wordlist attack
john --wordlist=/usr/share/wordlists/rockyou.txt secret.hash
# Wordlist + rules (mangles words: "Summer" → "Summer!", "summer2026", "S0mmer")
john --wordlist=rockyou.txt --rules=Jumbo secret.hash
# Incremental (brute-force) — use only against fast hashes or short passwords
john --incremental=ASCII secret.hash
# Mask attack — you know the pattern
john --mask='?u?l?l?l?l?d?d?d?d' secret.hash
# ?u upper, ?l lower, ?d digit, ?s symbol, ?a all
# Limit duration; resume later
john --max-run-time=3600 secret.hash
john --restore
Step 4: Show and Export Results
# Display cracked results
john --show secret.hash
# secret.zip:hunter2:::::secret.zip
# Only count / only uncracked
john --show=left secret.hash
# Pot file (already-cracked cache) lives at ~/.john/john.pot
cat ~/.john/john.pot
# Export cracked passwords, one per line
john --show secret.hash | awk -F: 'NF>1 {print $2}'
Step 5: Tuning and Multi-Core
# All CPU cores (OpenMP builds)
john --fork=8 secret.hash
# Distribute across machines (node 1 of 4)
john --node=1/4 --fork=8 secret.hash
# Benchmark your hardware
john --test --format=bcrypt
john --test --format=sha512crypt
Examples
Example 1: Crack an /etc/shadow Entry (Own System)
# On the system you own
sudo cp /etc/shadow /tmp/shadow
sudo cp /etc/passwd /tmp/passwd
chmod 644 /tmp/shadow /tmp/passwd
# Combine into JtR input
unshadow /tmp/passwd /tmp/shadow > creds.txt
head -1 creds.txt
# root:$6$abc...:0:0:root:/root:/bin/bash
john --wordlist=/usr/share/wordlists/rockyou.txt --rules=Single creds.txt
john --show creds.txt
# root:hunter2:0:0:root:/root:/bin/bash
rm /tmp/shadow /tmp/passwd creds.txt
Example 2: CTF — Recover a ZIP Password
# Given challenge.zip from a CTF
zip2john challenge.zip > zip.hash
cat zip.hash
# challenge.zip:$zip2$*0*3*0*...*$/zip2$:::challenge.zip
# Try rockyou first
john --wordlist=/usr/share/wordlists/rockyou.txt zip.hash
# Add rules if the straight dictionary fails
john --wordlist=rockyou.txt --rules=KoreLogic zip.hash
# Show the result
john --show zip.hash
# challenge.zip:flag2026
# Unzip with the recovered password
unzip -P flag2026 challenge.zip
Guidelines
- Only crack hashes you own or are authorized to crack. Possessing and cracking third-party hashes without permission is illegal in most jurisdictions.
- Always identify the hash format first — picking the wrong one wastes hours or produces silent miscracks.
- The "Jumbo" community build (
john-jumbo) supports far more formats than upstream. Install via your distro or compile from source. - Order of attacks: wordlist → wordlist+rules → mask (if you know the pattern) → incremental. Don't start with brute-force.
- Fast hashes (MD5, NTLM, SHA1) belong on hashcat with a GPU. JtR excels at slow hashes (bcrypt, sha512crypt, PBKDF2).
- Use
--fork=Non multi-core systems; default JtR only uses one thread. - Save partial work — JtR writes progress to
~/.john/john.recevery minute.john --restoreresumes. - The
john.potfile is your institutional memory. Back it up so you never crack the same hash twice.