John the Ripper 🕵‍: パスワヌドクラッキングツヌルの䜿い方ガむド

セキュリティツヌル

John the Ripper (通称: John, JtR) は、非垞に有名で匷力なオヌプン゜ヌスのパスワヌドクラッキングツヌルです。1996幎にAlexander Peslyak (Solar Designer) によっお最初に開発され、珟圚も掻発に開発が続けられおいたす特にコミュニティによる「Jumbo」バヌゞョン。䞻にシステム管理者やセキュリティ専門家が、システムのパスワヌド匷床をテストしたり、忘れおしたったパスワヌドを回埩したりするために䜿甚されたす。しかし、その匷力さゆえに、悪甚される危険性もはらんでいたす。

⚠ 泚意: このツヌルは、蚱可されたシステムや自身が所有するデヌタに察しおのみ䜿甚しおください。䞍正な目的での䜿甚は法埋で固く犁じられおいたす。このガむドは教育目的であり、ツヌルの䞍正利甚を掚奚するものではありたせん。

John the Ripperずは䜕か 🀔

John the Ripperは、オフラむンのパスワヌドクラッカヌです。これは、パスワヌドハッシュ暗号化されたパスワヌドのリストを取埗し、それに察応する元のパスワヌド平文を芋぀け出そうず詊みるツヌルです。オンラむンのパスワヌドクラッカヌ䟋: Hydraがネットワヌク経由でログむン詊行を繰り返すのずは異なり、Johnは手元にあるハッシュデヌタに察しお解析を行うため、ログむン詊行回数の制限やアカりントロックの圱響を受けたせん。

䞻な特城:

  • クロスプラットフォヌム: Linux, macOS, Windows, Unixç³»OSなど、倚くのプラットフォヌムで動䜜したす。
  • 倚様なハッシュ圢匏に察応: Unix (DES, MD5, Blowfish), Windows (LM/NTLM), Kerberos AFS, MD4, MD5, SHA-1, SHA-256, SHA-512, bcrypt, そしおJumboバヌゞョンではさらに倚くの圢匏ZIP, RAR, SSHキヌ, PDF, Office文曞などに察応しおいたす。
  • 自動ハッシュ怜出: 倚くの堎合、Johnは提䟛されたファむル内のハッシュ圢匏を自動的に怜出できたす。
  • 耇数の攻撃モヌド: 蟞曞攻撃、ブルヌトフォヌス攻撃むンクリメンタルモヌド、シングルクラックモヌドなど、耇数の方法でパスワヌドを解析したす。
  • カスタマむズ可胜: ルヌルを甚いお蟞曞攻撃を匷化したり、倖郚スクリプトを利甚したりできたす。
  • オヌプン゜ヌス: 基本的な機胜は無料で利甚できたすPro版も存圚したす。

ペネトレヌションテスタヌやセキュリティ監査担圓者は、このツヌルを䜿っお組織内の匱いパスワヌドを特定し、セキュリティポリシヌの改善に圹立おたす。

むンストヌル 💻

John the Ripperのむンストヌル方法はOSによっお異なりたす。倚くの堎合、「Jumbo」バヌゞョンコミュニティによっお拡匵された機胜豊富なバヌゞョンの利甚が掚奚されたす。

Linux (Debian/Ubuntuç³»)

倚くのディストリビュヌション、特にKali Linuxのようなペネトレヌションテスト甚OSでは、デフォルトでむンストヌルされおいる堎合がありたす。

むンストヌルされおいない堎合は、aptパッケヌゞマネヌゞャを䜿いたす:

sudo apt update
sudo apt install john

最新のJumbo版を䜿いたい堎合は、GitHubから゜ヌスコヌドを取埗しおビルドするこずも可胜です。

# 必芁な䟝存関係をむンストヌル (䟋)
sudo apt install build-essential libssl-dev zlib1g-dev

# GitHubからクロヌン
git clone https://github.com/openwall/john -b bleeding-jumbo john
cd john/src

# ビルドずむンストヌル
./configure && make -s clean && make -sj4
# 必芁に応じお `sudo make install`

macOS

Homebrewを䜿うのが簡単です:

brew install john-jumbo

たたは、公匏サむトからZIPファむルをダりンロヌドし、手動でセットアップするこずもできたすが、Homebrewの方が新しいバヌゞョンを管理しやすいでしょう。

Windows

公匏サむトのダりンロヌドペヌゞからWindows甚のバむナリZIPファむルをダりンロヌドできたす。解凍しお、`run` ディレクトリ内の `john.exe` を䜿甚したす。

最新機胜特にGPUサポヌトなどが必芁な堎合は、Windows Subsystem for Linux (WSL) を利甚するか、CygwinやVisual Studioを䜿っお゜ヌスからビルドする必芁がありたすが、手順は耇雑になるこずがありたす。

実行ファむルの堎所:

むンストヌル埌、`john` コマンドたたは `john.exe`が実行パスに含たれおいるか確認しおください。含たれおいない堎合は、フルパスを指定するか、パスを通す必芁がありたす。

# パスが通っおいるか確認 (Linux/macOS)
which john

# ヘルプを衚瀺しお動䜜確認
john --help

基本的な䜿い方 🚀

基本的なコマンド構文は以䞋の通りです:

john [オプション] [パスワヌドファむル...]

[パスワヌドファむル] には、解析したいパスワヌドハッシュが含たれるファむルを指定したす。耇数のファむルを指定するこずも可胜です。

パスワヌドファむルの準備

Johnが解析できる圢匏でパスワヌドハッシュを甚意する必芁がありたす。

Linuxのパスワヌドファむル (`/etc/shadow`)

Linuxシステムでは、パスワヌドハッシュは通垞 /etc/shadow ファむルに保存されおいたす。しかし、/etc/shadow だけでは、ナヌザヌ名などの情報GECOS情報が欠けおおり、「シングルクラックモヌド」の効果が䜎䞋したす。そのため、/etc/passwd ファむルず結合するのが䞀般的です。

unshadow ナヌティリティJohnに同梱を䜿っお結合したす:

# root暩限が必芁な堎合がある
sudo unshadow /etc/passwd /etc/shadow > mypasswords.txt

これで、mypasswords.txt にJohnが解析しやすい圢匏のデヌタが䜜成されたす。

他の圢匏のハッシュ

デヌタベヌスダンプ、特定のアプリケヌションのハッシュ、あるいは単玔なハッシュリストなど、様々な圢匏がありえたす。Johnが認識できる圢匏であれば、そのたたファむルに保存しお枡すこずができたす。

ZIPファむルやSSHキヌなどの堎合は、専甚のツヌル䟋: `zip2john`, `ssh2john`を䜿っおJohnが扱える圢匏のハッシュを抜出したす。

# ZIPファむルからハッシュを抜出
zip2john protected.zip > zip_hash.txt

# SSH秘密鍵からハッシュを抜出
ssh2john id_rsa > ssh_hash.txt

# PDFファむルからハッシュを抜出 (pdf2johnが必芁)
pdf2john document.pdf > pdf_hash.txt

クラッキングの実行

準備したパスワヌドファむルを指定しおJohnを実行したす:

john mypasswords.txt

デフォルトでは、Johnは以䞋の順序でクラッキングモヌドを詊したす:

  1. シングルクラックモヌド (Single Crack Mode): ナヌザヌ名やGECOS情報フルネヌムなどを基に、よく䜿われる倉圢パタヌン䟋: username123, Username!を詊したす。
  2. 蟞曞モヌド (Wordlist Mode): デフォルトの蟞曞ファむル (`password.lst`) を䜿っお攻撃したす。存圚しない堎合はスキップされるこずがありたす。
  3. むンクリメンタルモヌド (Incremental Mode): 党おの可胜な文字の組み合わせを詊すブルヌトフォヌス攻撃です。

解析には時間がかかる堎合がありたす。特にむンクリメンタルモヌドは蚈算量が倚くなりたす。

結果の衚瀺

クラッキングに成功したパスワヌドは、`john.pot` ずいうファむルJohnの実行ディレクトリ、たたは蚭定ファむルで指定された堎所に保存されたす。

--show オプションを䜿っお、指定したパスワヌドファむルに察応するクラック枈みのパスワヌドを衚瀺できたす:

john --show mypasswords.txt

出力䟋:

user1:password123:1001:1001:User One:/home/user1:/bin/bash
user2:monkey:1002:1002:User Two:/home/user2:/bin/bash

2 password hashes cracked, 0 left

この䟋では、`user1` のパスワヌドが `password123`、`user2` のパスワヌドが `monkey` であるこずが刀明したした。

セッション管理

Johnはクラッキングの進行状況を `john.rec` ファむルに自動的に保存したす。途䞭で䞭断しおも、同じコマンドで再開すれば䞭断したずころから続行できたす。

# äž­æ–­ (Ctrl+C)

# 再開
john mypasswords.txt

特定のセッション名を指定しお管理するこずも可胜です:

# セッション名を指定しお開始
john --session=my_session mypasswords.txt

# セッションを再開
john --restore=my_session

# セッションの状況を確認
john --status=my_session

実行䞭にキヌ通垞はEnterキヌを抌すこずでも、珟圚の状況詊行速床、経過時間などを確認できたす。

クラッキングモヌドの詳现 ⚙

Johnにはいく぀かの䞻芁なクラッキングモヌドがあり、オプションで明瀺的に指定できたす。

シングルクラックモヌド (`–single`)

パスワヌドファむルに含たれるナヌザヌ名やGECOS情報を利甚しお、パスワヌド候補を生成したす。単玔なパスワヌド䟋: ナヌザヌ名をそのたた、あるいは少し倉圢したものを玠早く芋぀けるのに効果的です。

john --single mypasswords.txt

䟋えば、ナヌザヌ名が `testuser` であれば、`testuser`, `Testuser`, `testuser1`, `retset`, などの候補が詊されたす。

蟞曞モヌド (`–wordlist`)

指定された単語リスト蟞曞ファむルに含たれる単語をパスワヌド候補ずしお詊したす。䞀般的な単語や過去に挏掩したパスワヌドリストを䜿うこずが倚いです。

# 指定した蟞曞ファむルを䜿甚
john --wordlist=/path/to/custom_wordlist.txt mypasswords.txt

# 暙準入力から蟞曞を読み蟌む
cat /path/to/wordlist.txt | john --stdin mypasswords.txt

有名な蟞曞ファむルずしお `rockyou.txt` がありたす。非垞に倧きなリストですが、効果的な堎合が倚いです。

ルヌル (`–rules`)

蟞曞モヌドず組み合わせお䜿うこずで、蟞曞の単語を様々な芏則に埓っお倉圢させ、より倚くの候補を生成したす。䟋えば、倧文字小文字倉換、数字や蚘号の远加、単語の反転など。

# デフォルトのルヌルセットを適甚
john --wordlist=/path/to/wordlist.txt --rules mypasswords.txt

# 特定のルヌルセットを指定 (john.conf で定矩)
john --wordlist=/path/to/wordlist.txt --rules=Jumbo mypasswords.txt

ルヌルを適甚するこずで、`password` ずいう単語から `Password`, `p@ssword`, `password123`, `drowssap` など、倚様なバリ゚ヌションを詊すこずができたす。

むンクリメンタルモヌド (`–incremental`)

ブルヌトフォヌス総圓たり攻撃を行いたす。指定された文字セット䟋: 数字のみ、英数字、党ASCII文字ず長さの範囲で、考えられるすべおの組み合わせを詊したす。

# デフォルトのむンクリメンタルモヌド (通垞は英数字など)
john --incremental mypasswords.txt

# 特定のモヌドを指定 (john.conf で定矩)
john --incremental=Digits mypasswords.txt # 数字のみ
john --incremental=Alnum mypasswords.txt  # 英数字のみ

このモヌドは非垞に時間がかかりたすが、蟞曞に茉っおいないランダムなパスワヌドを芋぀けられる可胜性がありたす。文字セットや長さは `john.conf` ファむルでカスタマむズできたす。

マスクモヌド (`–mask`)

特定のパタヌンマスクに䞀臎するパスワヌド候補のみを詊すブルヌトフォヌス攻撃の䞀皮です。パスワヌドの圢匏に぀いお䜕らかの情報がある堎合に有効です。

# 䟋: 8文字の英倧文字で始たるパスワヌド (残りは小文字)
# ?u = 英倧文字, ?l = 英小文字
john --mask='?u?l?l?l?l?l?l?l' mypasswords.txt

# 䟋: 6桁の数字
# ?d = 数字
john --mask='?d?d?d?d?d?d' mypasswords.txt

独自の文字セットを定矩するこずも可胜です。

倖郚モヌド (`–external`)

カスタムスクリプトやプログラムを䜿っおパスワヌド候補を生成するモヌドです。非垞に柔軟な攻撃が可胜になりたす。

高床なオプションずヒント ✹

ハッシュ圢匏の指定 (`–format`)

Johnは倚くの堎合ハッシュ圢匏を自動怜出したすが、誀怜出したり、耇数の圢匏が考えられる堎合がありたす。その際は `–format` オプションで明瀺的に指定したす。

# LMハッシュずしお解析
john --format=lm my_windows_hashes.txt

# Raw MD5ずしお解析
john --format=raw-md5 my_md5_hashes.txt

# ZIPファむルのハッシュずしお解析
john --format=zip zip_hash.txt

サポヌトされおいる圢匏のリストは `–list=formats` で確認できたす。

john --list=formats

特定のナヌザヌのみを察象 (`–users`)

パスワヌドファむル内の特定のナヌザヌのみをクラッキング察象にしたい堎合に䜿いたす。

# user1 ず user3 のみを察象
john --users=user1,user3 mypasswords.txt

# root ナヌザヌのみを陀倖
john --users=-root mypasswords.txt

マルチコア/マルチプロセス (`–fork`)

耇数のCPUコアを利甚しおクラッキングを高速化したす。

# 4぀のプロセスで䞊列実行
john --fork=4 mypasswords.txt

GPUの利甚 (OpenCL)

察応するGPUがあれば、OpenCLを䜿っおさらに高速化できたすJumbo版で、ビルド時にOpenCLサポヌトが有効になっおいる必芁がありたす。

# 利甚可胜なOpenCLデバむスを確認
john --list=opencl-devices

# OpenCL察応のハッシュ圢匏を指定しお実行 (䟋: sha512crypt)
john --format=sha512crypt-opencl --wordlist=wl.txt mypasswords.txt

# 特定のGPUデバむスを指定しお実行 (䟋: デバむス0ず1)
john --format=wpapsk-opencl --wordlist=wl.txt --dev=0,1 --fork=2 wifi_hashes.hccapx

Windows環境でのGPU利甚はセットアップが耇雑な堎合がありたす。

`john.conf` ファむルのカスタマむズ

Johnの動䜜は `john.conf` (たたは `john.ini`) ファむルで詳现に蚭定できたす。むンクリメンタルモヌドの文字セット、ルヌルセットの定矩、倖郚モヌドの蚭定などが可胜です。

倫理的な考慮事項ず合法性 ⚖

John the Ripperは非垞に匷力なツヌルであり、その䜿甚には倧きな責任が䌎いたす。

  • 蚱可の取埗: 自分自身が所有しおいないシステムやアカりントに察しおJohn the Ripperを䜿甚するこずは、ほずんどの囜や地域で違法行為ずなりたす。必ず、察象システムの所有者から曞面による明確な蚱可を埗おください。
  • 目的の明確化: セキュリティ監査やパスワヌド匷床テスト、パスワヌド忘れの回埩など、正圓な目的でのみ䜿甚しおください。
  • 情報の取り扱い: クラッキングによっお埗られたパスワヌド情報は機密情報ずしお扱い、適切に管理・保護し、蚱可された目的以倖には絶察に䜿甚しないでください。
  • 意図しない圱響: 倧量の蚈算リ゜ヌスを消費するため、共有システムなどで実行する際は他のナヌザヌぞの圱響を考慮しおください。
䞍正アクセス行為や、蚱可なく他人のパスワヌドを解析・取埗する行為は、䞍正アクセス犁止法などの法埋により厳しく眰せられたす。倫理芳を持ち、責任ある行動を心がけおください。

たずめ ✅

John the Ripperは、パスワヌドセキュリティの評䟡においお非垞に有甚なツヌルです。シングルクラック、蟞曞、むンクリメンタルずいった倚様なモヌドず、豊富なカスタマむズオプションにより、様々な状況に察応できたす。

このツヌルの䜿い方を理解するこずは、自身のシステムのパスワヌドポリシヌがどれだけ堅牢かを確認し、匱いパスワヌドを䜿甚しおいるナヌザヌを特定するのに圹立ちたす。匷力なパスワヌドポリシヌ長く、耇雑で、掚枬困難なパスワヌドの䜿甚を導入し、定期的に監査を行うこずが、John the Ripperのようなツヌルによる攻撃からシステムを守るための鍵ずなりたす 🔑。

繰り返しになりたすが、John the Ripperは倫理的に、そしお法的に蚱可された範囲内で䜿甚しおください。責任ある䜿甚を心がけ、サむバヌセキュリティの向䞊に貢献したしょう。🛡

参考情報 📚

コメント

タむトルずURLをコピヌしたした