
Try hack meのCrack the hashをhashcatで解いてみる
Try hack meについて
TryHackMeは、サイバーセキュリティの基礎から実践まで学べる初心者向けのオンラインプラットフォームです。ハッキングやセキュリティ対策を実際の仮想環境で体験しながら学習できるため、理論だけでなく実践的なスキルも身につけられます。
Crack the hash (Level 1)
この記事では、TryHackMeの「Crack the Hash」という問題を、ネットツールやHashcatを使って解いていきます。Hashcatの使い方を詳しく確認したい方は、過去の記事も参考にしてください。
Hash解読の流れは以下のようになります。
ハッシュ値をCrack stationで検索する
(Crack stationでヒットしない場合)ハッシュ値からアルゴリズムを推測する
hashcatで解読する
Crack stationとは
オンラインでパスワードやハッシュの解析を行うための無料ツールです。ユーザーが入力したハッシュ値を、事前に計算された膨大なデータベースと照合し、元のパスワードを特定する仕組みになっています。
初級編のCrack the Hashについては、ほとんどがCrack stationで見つかるハッシュ解析の練習問題となります。
Task 1 (Level 1)
(1) 48bb6e862e54f2a795ffc4e541caed4d
⇒Crack stationでヒットします。
(2) CBFDAC6008F9CAB4083784CBD1874F76618D2A97
⇒Crack stationでヒットします。
(3) 1C8BFE8F801D79745C4631D09FFF36C82AA37FC4CCE4FC946683D7B336B63032
⇒Crack stationでヒットします。
(4) $2y$12$Dwt1BZj6pcyc3Dy1FWZ5ieeUznr71EeNkJkUlypTsgbX1H68wsRom
⇒Crack stationではヒットしませんが、「$2y$12$」という書き出しからアルゴリズムはBcryptと推測できます。
Bcrypのパスワードハッシュの構造
「$2y」はハッシュアルゴリズムのバージョン
「$12」はストレッチング回数
「$Dwt…」の23文字はハッシュ化に使用するソルト
最後の31文字がハッシュ値
単純にrockyou.txtを用いた辞書攻撃を試すと、普通のPCでは一か月かかる解析となります。
hashcat -m 3200 -a 0 hash.txt rockyou.txt
-m 3200 : bcrypt
-a 0 : Straight mode(辞書攻撃)

そこでヒントを参照すると、「Bcryptのハッシュ解読にはとても長い時間がかかるので、文字数をフィルターして解析するように」という意味合いの記載があります。
回答欄のマスクから答えは四文字のアルファベットと予想して、rockyou.txtからgrepやfindstr(もしくはExcel)を用いて、四文字のテキストのみを抽出した辞書ファイルで解析しましょう。
findstr "^[a-zA-Z][a-zA-Z][a-zA-Z][a-zA-Z]$" rockyou.txt > rockyou-four.txt
hashcat -m 3200 -a 0 hash.txt rockyou-four.txt
(5) 279412f945939ba78ce0758d3fd83daa
⇒Crack stationでヒットします。
Task 2 (Level 2)
(1) F09EDCB1FCEFC6DFB23DC3505A882655FF77375ED8AA2D1C13F640FCCC2D0C85
⇒Crack stationでヒットします。
(2) 1DFECA0C002AE40B8619ECF94819CC1B
⇒Crack stationでヒットします。
(3) $6$aReallyHardSalt$6WKUTqzq.UQQmrm0p/T7MPpMbGNnzXPMAXi4bJMl9be.cfi3/qxIf.hsGpS41BqMhSrHVXgMpdjS6xeKZAs02.
⇒Crack stationではヒットしませんが、書き出しからアルゴリズムはSHA-512と推測できます。
hashcat -m 1800 -a 0 hash.txt rockyou.txt
-m 1800 : sha512
-a 0 : Straight mode(辞書攻撃)
(4) e5d8870e5bdd26602cab8dbe07a942c8669e56d6:tryhackme
⇒Crack stationではヒットしませんが、40文字の文字列からアルゴリズムはSHA-1と推測できます。hash.txtにsaltを忘れないようにしましょう。
hashcat -m 160 -a 0 hash.txt rockyou.txt
-m 160 : HMAC-SHA1 (key = $salt)
-a 0 : Straight mode(辞書攻撃)