Hashcat Pot ファイルと出力ファイル

LinuxBeginner
オンラインで実践に進む

はじめに

Hashcat は強力で人気のあるパスワード回復ツールです。クラッキングセッションを実行する際、Hashcat は結果を管理する方法を必要とします。どのパスワードが正常にクラックされ、どのパスワードが未解決のまま残っているかを知ることは極めて重要です。

この実験(Lab)では、Hashcat の出力管理の基本を学びます。自動的にクラックされたパスワードを保存する hashcat.potfile について探ります。また、クラックされたパスワードを表示するための --show、結果を指定したファイルに保存するための -o、そしてまだクラックされていないハッシュを特定するための --left のようなコマンドラインオプションの使用方法についても学習します。これらの機能を習得することは、効果的なパスワード監査または回復ワークフローにとって不可欠です。

hashcat.potfile の目的を理解する

このステップでは、Hashcat の重要なコンポーネントである hashcat.potfile について学習します。将来のセッションで同じハッシュを再クラックするのを避けるため、Hashcat は成功裏にクラックされたすべてのハッシュとその対応する平文パスワードを自動的にファイルに保存します。このファイルが「potfile」と呼ばれます。デフォルトでは、ファイル名は hashcat.potfile であり、~/.local/share/hashcat/ ディレクトリに配置されます。

いくつかのハッシュをクラックするために、基本的な辞書攻撃を実行してみましょう。これにより、potfile が生成されます。MD5 ハッシュを含む hashes.txt という名前のファイルと、試行する可能性のあるパスワードを含む wordlist.txt ファイルがあります。

攻撃を開始するには、次のコマンドを実行します。

hashcat -m 0 -a 0 hashes.txt wordlist.txt

コマンドの内訳は次のとおりです。

  • -m 0: ハッシュタイプを指定します。ここで 0 は MD5 に対応します。
  • -a 0: 攻撃モードを指定します。ここで 0 はストレート辞書攻撃です。
  • hashes.txt: クラック対象のハッシュを含む入力ファイルです。
  • wordlist.txt: 試行するパスワードを含む辞書ファイルです。

Hashcat が起動するのを確認できます。私たちの wordlist にはすべてのハッシュの正しいパスワードが含まれているため、プロセスはすぐに終了します。

...
Session..........: hashcat
Status...........: Cracked
Hash.Name........: MD5
Hash.Target......: hashes.txt
Time.Started.....: ...
Time.Estimated...: 0 secs
Guess.Base.......: File (wordlist.txt)
Guess.Queue......: 1/1 (100.00%)
Speed.#1.........:  ... H/s (0.00ms) @ Accel:128 Loops:1 Thr:1 Vec:8
Recovered........: 4/4 (100.00%) Digests, 0/1 (0.00%) Salts
Progress.........: 5/5 (100.00%)
Rejected.........: 0/5 (0.00%)
Restore.Point....: 5/5 (100.00%)
Restore.Sub.#1...: Salt:0 Amplifier:0-1 Iteration:0-1
Candidates.#1....: password -> testing
Hardware.Mon.#1..: Temp: 46c Fan: 33%
...
Started: ...
Stopped: ...

出力は、4 つのハッシュすべてが回復されたことを示しています。これは、hashcat.potfile が作成され、これらの結果で入力されたことを意味します。

potfile 内のクラックされたハッシュとパスワードのペアを表示する

このステップでは、hashcat.potfile の内容を直接確認します。これにより、Hashcat がクラックされた認証情報をどのように保存するかを理解するのに役立ちます。形式はシンプルかつ効果的です。各行には、ハッシュ、コロンの区切り文字、そしてクラックされた平文パスワードが含まれます。

potfile の内容を表示するには、cat コマンドを使用します。このファイルは、ホームフォルダー内の隠しディレクトリにあります。

cat ~/.local/share/hashcat/hashcat.potfile

出力には、前のステップで正常にクラックされたハッシュとパスワードのペアが表示されます。

5f4dcc3b5aa765d61d8327deb882cf99:password
e10adc3949ba59abbe56e057f20f883e:123456
d8578edf8458ce06fbc5bb76a58c5ca4:qwerty
f9664ea1803311b35f81d07d8c9e072d:lab

ご覧のとおり、ファイルには wordlist.txt のパスワードと一致した hashes.txt からの 4 つのハッシュが含まれています。potfile を直接表示することはその構造を理解するのに役立ちますが、数千のクラックされたパスワードがある実際のシナリオでは、煩雑になり読みにくくなる可能性があります。次のステップでは、特定のタスクの結果をより効率的に表示する方法を学びます。

特定のハッシュリストに対するクラックされたパスワードを表示するために '--show' を使用する

このステップでは、結果を確認するためのより実用的な方法を学びます。potfile 全体を手動で読み取る代わりに、Hashcat の --show オプションを使用できます。このコマンドは、Hashcat に対して、指定されたハッシュリストを potfile と照合し、そのリストからのクラックされたハッシュのみを表示するように指示します。新しいクラッキング処理は実行されません。

これは、多くの異なるセッションからの結果を含む可能性のある巨大な potfile をふるい分けることなく、特定のターゲットリストの結果をすばやく確認したい場合に非常に役立ちます。

hashes.txt ファイルからクラックされたハッシュを表示するには、次のコマンドを実行します。

hashcat -m 0 --show hashes.txt

Hashcat は即座に potfile をチェックし、クリーンで読みやすい形式で結果を出力します。

5f4dcc3b5aa765d61d8327deb882cf99:password
e10adc3949ba59abbe56e057f20f883e:123456
d8578edf8458ce06fbc5bb76a58c5ca4:qwerty
f9664ea1803311b35f81d07d8c9e072d:lab

出力はクリーンであり、「hashes.txt のうち、どのハッシュをすでにクラックしたか?」という質問に直接答えます。これは、特定のセッションからのクラックされたパスワードを確認するための推奨される方法です。

'-o' を使用してクラックされたパスワードを専用の出力ファイルに保存する

このステップでは、クラッキングの結果を別のファイルに保存する方法を学びます。potfile は Hashcat の優れた内部データベースですが、レポート作成や分析のためにクリーンな出力ファイルが必要になることがよくあります。これは、-o (または --outfile) オプションを使用して実現されます。

攻撃コマンドに --show と共に -o を追加すると、Hashcat は potfile からクラックされたハッシュとパスワードのペアを取得し、指定された出力ファイルに書き込みます。これは、ハッシュがすでにクラックされて potfile に存在する場合に特に便利で、それらの結果を迅速に抽出して専用ファイルに保存できます。

クラックされた結果を保存するために、--show オプションと -o オプションの両方を使用してコマンドを実行してみましょう。

hashcat -a 0 -m 0 --show -o cracked.txt hashes.txt wordlist.txt

Hashcat は即座に potfile をチェックし、クラックされたすべてのパスワードペアを cracked.txt に書き込みます。

それでは、新しい出力ファイルの内容を確認してみましょう。

cat cracked.txt

出力は、クラックされたペアのクリーンなリストになります。

5f4dcc3b5aa765d61d8327deb882cf99:password
e10adc3949ba59abbe56e057f20f883e:123456
d8578edf8458ce06fbc5bb76a58c5ca4:qwerty
f9664ea1803311b35f81d07d8c9e072d:lab

この cracked.txt ファイルは、メインの potfile とは別に、この特定の攻撃から得られた成功した結果のポータブルな記録となります。

クラックされなかったハッシュを確認するために '--left' を使用する

このステップでは、どのハッシュが未クラックのまま残っているかを特定する方法を学びます。これは、どのハッシュを解決したかを知ることと同じくらい重要です。なぜなら、これにより、後続の攻撃(例えば、別の単語リストや攻撃モードの使用)で労力を集中させることができるからです。Hashcat はこの目的のために --left オプションを提供しています。

--show と一緒に使用すると、--left フラグは、potfile に存在しない入力リストからのすべてのハッシュを表示します。

hashes.txt のうち、まだクラックされていないハッシュを見てみましょう。

hashcat -m 0 --show --left hashes.txt

リスト内のすべてのハッシュはクラックされているため、出力は空になります(未クラックのハッシュは残りません)。

また、--left-o オプションと組み合わせて、残りのハッシュを新しいファイルに保存することもできます。これは、次のクラッキング試行のためのワークリストを作成するためによく行われる手順です。

hashcat -m 0 -a 0 hashes.txt wordlist.txt --left -o uncracked.txt

次に、uncracked.txt ファイルの内容を確認します。

cat uncracked.txt

すべてのハッシュがクラックされたため、uncracked.txt ファイルは空になります。

まとめ

この実験(Lab)では、Hashcat の出力を管理および解釈するための基本的なテクニックを学びました。これらのスキルは、効率的なパスワードクラッキングワークフローを整理するための基礎となります。

学んだこと:

  • すべてのクラックされたパスワードの自動データベースとしての hashcat.potfile の役割。
  • 特定のハッシュリストからクラックされたパスワードをきれいに表示するために hashcat --show を使用する方法。
  • レポート作成と分析のためにクラックされたパスワードを専用の出力ファイルに保存するために -o オプションを使用する方法。
  • 将来の取り組みを効果的に集中させるために、未クラックのハッシュを分離するために --left オプションを使用する方法。

これらの出力およびファイル管理機能を習得することで、より整理され、効率的で、効果的なパスワード復旧セッションを Hashcat で実行できるようになります。