0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

TryHackMe-Blue タスク4でJohn the Ripperを使ってみた

0
Last updated at Posted at 2026-01-22

きっかけ

もともとCrackStationを使って解いていたのですが、John the Ripperを使った場合にどうなるのか気になり実行してみました。今回はそのまとめを書いていきます。

John the Ripperの概要 

※John the Ripper=JtRと省略して書かせていただきます。

JtRは、UNIXやMacOS、Windowsなど複数のOSに対応している、オープンソースのパスワードクラックツールです。

ハッシュ化されたパスワード(パスワードハッシュ)から、元のパスワードを特定するために使用します。そのため、利用するには事前にパスワードハッシュを別途入手しなければなりません。(サイバー情報局から参照)
参照元:https://eset-info.canon-its.jp/malware_info/tool/240717.html

JtRと同様にhashcatというツールがあります。
JtRはhashcatと比較すると、クラックできるハッシュ形式数は劣りますがどちらも非常に便利です。

対応しているハッシュ形式

JtRが対応しているハッシュ形式は以下の通りです。
descrypt, bsdicrypt, md5crypt, md5crypt-long, bcrypt, scrypt, LM, AFSなど…

記述しているハッシュ形式は一部にすぎません。
全て確認したい場合は、下のコマンドを打ち込んでください。

$ john --list=formats

実行するとこのように対応しているハッシュ形式が表示されます。
Screenshot_2026-01-20_13_54_34.png

TryHackMe-Blue タスク4

問題名:Blue URL:https://tryhackme.com/room/blue

meterpreter内でhashdumpを打ち込むとハッシュ化された情報が出てきます。
Screenshot_2026-01-22_09_36_25.png

Jonさんのパスワードをクラックするので、Jonさんのデータをコピーして空のファイルに保存しておきます。
私は、hash.txtというファイルを作成して保存しました。
Screenshot_2026-01-22_09_42_50.png

※JtRを使う場合は、クラックしたい対象データをJtRが理解できる形式に変換してあげる必要があります。しかし、今回のデータは JtR が理解できる形式にもともとなっているため、形式を変換する必要はありません。

実行

準備が整ったので、JtRを使ってクラックしていきたいと思います。
以下のコマンドを打ち込んでください。

john --format=NT --wordlist=/usr/share/wordlists/rockyou.txt hash.txt

コマンドの解説

john は JtRのことを表しています。

--format=NTはJtRにクラック対象はNTハッシュだと定義してます。

--wordlist=/usr/share/wordlists/rockyou.txt はJtRで使う辞書を指定します。

今回はrockyou.txtという世界的に広く知られている辞書を使いました。
この辞書には沢山の単語が登録されており、その中の単語とハッシュ化されたパスワードが一致するかを調査します。

最後にパスワードを保存してあるファイル名を書きます。

--format=NTが必要な理由

今回クラックする対象のデータは2種類のハッシュ形式が記載されています。

Jon:1000:aad3b435b51404eeaad3b435b51404ee:ffb43f0de35be4d9917ac0cc8ad57f8d:::

構造

ユーザー名 : RID(Relative Identifier) : LMハッシュ : NTハッシュ : : :
aad3b435b51404eeaad3b435b51404eeは無効化時の固定値であり、LMハッシュの代わりに空のハッシュが入っていることが分かります。
よってクラックすべきハッシュはNT形式の方です。
しかし、JtRはより弱く解析しやすいLMハッシュが優先される傾向があるため、NTハッシュをクラックしてくださいと指定する必要があるからです。

実行後の画面
Screenshot_2026-01-22_09_51_11.png

Jonさんのパスワードをクラックすることができました!
Jonさんのパスワードは、alqfna22です。

※すでにJonのパスワードをクラックしているため、'No password hashes left to crack'と表示されていますが、初回の人はパスワードが画面上に表示されているはずです。

パスワードが表示されない方用

JtRは一度クラックしたパスワードのデータを保存してくれます。
確認したい場合は、以下のコマンドを打ち込んでください。

john --show --format=NT hash.txt

今回は、--format=NTを指定してクラックしたので--showオプションの後に--format=NTと入力します。

実行するとパスワードを含めた情報が表示されます。
Screenshot_2026-01-22_09_51_12.png

--format=NTをつけなくても一応データは表示されるかもしれませんが、NT形式ではなくLM形式のクラック結果を表示してしまう事態が発生します。

下の画像は--format=NTをつけなかった場合と、--format=LMをつけた場合の結果であり、どちらも同じデータが返ってきていることがわかります。

実行結果 
image.png
よって、--format=NTとしっかり定義してあげることが大事だと思います。

おまけ

Blueではクラック対象のハッシュ形式がすでにJtRで理解できる形式に変換されていたため、ハッシュ形式の変換を行いませんでした。
しかし、今回のようなケースはあまりない気がします
そこでJtRが理解できる形式に変換する方法を記載しておきます。

JtRの形式へ変換するには?

形式を変換するには 2john というコマンドを使います。
この 2john はクラックしたいデータの形式によってコマンド名が少し変わります。
例えば、zipファイルにつけられたパスワードを解読したい場合は zip2john を使います。
実際のコマンドは下のようになります。

zip2john zipfile > zipfile_hash.txt

これは zip2john で zipfile のデータをハッシュ化し、 zipfile_hash.txt に保存するという流れになっています。

これでJtRが理解できる形式に無事変換することができました!
あとはこのファイルを使って、
john --wordlist=/usr/share/wordlists/rockyou.txt zipfile_hash.txt のように JtR でクラックしてあげるだけです。

ここまで閲覧していただき、ありがとうございます。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?