はじめに
Hashcat は強力で人気のパスワードリカバリツールです。パスワードのクラッキングは非常に時間のかかるプロセスであり、時には数時間、数日、あるいは数週間かかることもあります。そのため、これらの長時間実行されるタスクを管理する方法を知ることが非常に重要です。システムリソースを解放するためにタスクを一時停止する必要がある場合や、予期しないシステムシャットダウンに直面する場合があります。適切なセッション管理なしでは、プロセス全体を最初からやり直す必要があり、貴重な時間を無駄にしてしまいます。
この実験では、Hashcat におけるセッション管理の基本を学びます。名前付きセッションの開始、インタラクティブな一時停止と再開、そして Hashcat の組み込みセッション管理機能を使用した停止と復元を実践します。これらのスキルは、Hashcat のあらゆる実践的な使用において不可欠です。
長時間クラッキングセッションの開始
このステップでは、パスワードクラッキングタスクを開始し、特定のセッション名を付けます。セッションに名前を付けることは、管理のための最初で最も重要なステップです。これにより、Hashcat はこの特定のタスクの進捗を追跡および保存するようになります。
基本的な辞書攻撃を使用します。コマンド構造はいくつかのフラグを使用します。
-m 0: ハッシュタイプを指定します。0は MD5 に対応します。-a 0: 攻撃モードを指定します。0はストレート(辞書)攻撃に対応します。--session <name>: 現在のセッションに名前を割り当てます。これは一時停止と復元に不可欠です。
まず、セットアップスクリプトが必要なファイル(hashes.txt および wordlist.txt)を作成した ~/project ディレクトリにいることを確認してください。
次に、my_session という名前のクラッキングセッションを開始するために、次のコマンドを実行します。
hashcat -m 0 -a 0 hashes.txt wordlist.txt --session my_session
コマンドを実行すると、Hashcat が初期化され、ターミナルにステータス画面が表示されます。この画面は、クラッキングの進捗に関するリアルタイム情報を提供します。
hashcat (v6.2.x) starting...
...
Session..........: my_session
Status...........: Running
Hash.Name........: MD5
Hash.Target......: 5f4dcc3b5aa765d61d8327deb882cf99
Time.Started.....: ...
Time.Estimated...: ...
Guess.Base.......: File (wordlist.txt)
Guess.Queue......: 1/1 (100.00%)
Speed.#*.........: ...
...
Progress.........: 123456/1000001 (12.34%)
...
[s]tatus [p]ause [r]esume [b]ypass [q]uit =>
セッション名を確認する Session..........: my_session の行に注目してください。Status は Running であり、Progress バーが進んでいます。次のステップに進む前に、プロセスを数分間実行させてください。
「p」キーを押してセッションを一時停止する
このステップでは、アクティブな Hashcat セッションを一時停止する方法を学びます。これは、クラッキングの進捗を失うことなく、コンピューターのリソースを一時的に別のタスクに割り当てる必要がある場合に役立ちます。
Hashcat は、ステータス画面の下部にインタラクティブなメニューを提供します。利用可能なオプションが表示されます:[s]tatus [p]ause [r]esume [b]ypass [q]uit。
セッションを一時停止するには、Hashcat のターミナルウィンドウがアクティブな状態で、キーボードの p キーを押すだけです。Enter キーを押す必要はありません。
今すぐ p を押してください。
画面の Status フィールドが Running から Paused に即座に変更されるのがわかります。
...
Session..........: my_session
Status...........: Paused
...
[s]tatus [p]ause [r]esume [b]ypass [q]uit =>
セッションが一時停止されている間、Hashcat はすべての処理を停止し、タスクの GPU/CPU 使用率はゼロに低下します。ただし、アプリケーションはターミナルでアクティブなまま、次の指示を待機します。
「r」キーを押してセッションを再開する
このステップでは、先ほど一時停止したセッションを再開します。
一時停止に p キーを使用したのと同じように、再開には r キーを使用できます。これにより、Hashcat は一時停止された時点からクラッキングプロセスを続行するようになります。
Hashcat のターミナルがアクティブなまま、r キーを押してください。
Status フィールドが Paused から Running に戻り、Progress および Speed インジケーターが再びアクティブになるのがわかります。
...
Session..........: my_session
Status...........: Running
...
[s]tatus [p]ause [r]esume [b]ypass [q]uit =>
セッションは再び実行されており、進捗は失われていません。この一時停止/再開サイクルは、必要に応じて何度でも繰り返すことができます。
セッションを停止し、.restore ファイルを理解する
このステップでは、セッションを完全に停止する方法と、Hashcat が状態を保存するために使用するファイルを確認する方法を学びます。これは一時停止とは異なり、アプリケーションを完全に終了させます。コンピューターをシャットダウンする必要がある場合にこれを行います。
セッションを正常に停止するには、q キー(quit の略)を押します。
今すぐ q を押してください。
Hashcat はクラッキングプロセスを停止して終了し、コマンドプロンプトに戻ります。
名前付きセッションを使用すると、Hashcat は自動的に進捗を復元ファイルに保存します。このファイルはセッションと同じ名前で、拡張子は .restore です。
このファイルが作成されたことを確認しましょう。現在のディレクトリのファイルを一覧表示します。
ls -l
ファイルリストに my_session.restore が表示されるはずです。
-rw-r--r-- 1 labex labex 28 Jul 10 10:30 hashes.txt
-rw-r--r-- 1 labex labex 48 Jul 10 10:32 my_session.restore
-rw-r--r-- 1 labex labex 8888898 Jul 10 10:30 wordlist.txt
このファイルには、元のコマンドライン引数やテストされた最後のパスワード候補など、Hashcat が後でセッションを再開するために必要なすべての情報が含まれています。cat コマンドでその内容を表示できます。
cat my_session.restore
出力は、セッションの設定と進捗を含む一連の行になります。このファイルは、Hashcat の強力なセッション管理機能の鍵となります。
--session および --restore フラグを使用して以前のセッションを復元する
この最終ステップでは、完全に停止したセッションを復元する方法を学びます。これは、再起動後や、意図的に長時間実行されるタスクを停止した後で作業を続行する場合に非常に役立ちます。
セッションを復元するには、再開するセッションを指定するために --session フラグと共に --restore フラグを使用します。この方法の大きな利点は、元のハッシュタイプ、攻撃モード、またはファイルパスを再度提供する必要がないことです。Hashcat はそれらのすべての情報を .restore ファイルから読み取ります。
my_session を復元するには、次のコマンドを実行します。
hashcat --session my_session --restore
Hashcat は再び起動し、my_session.restore ファイルから状態を自動的に読み込みます。ステータス画面が表示され、重要なのは、Progress が最初からではなく、停止した時点から開始されることです。
...
Session..........: my_session
Status...........: Running
...
Progress.........: 123456/1000001 (12.34%) -> (Resuming from where it was stopped)
...
[s]tatus [p]ause [r]esume [b]ypass [q]uit =>
停止したセッションを正常に復元しました。これで、完了まで実行させるか、q を押して再度終了させることができます。
まとめ
この実験では、Hashcat でクラッキングセッションを管理するための基本的なスキルを学びました。これにより、中断による進捗の損失を恐れることなく、長時間実行されるタスクを処理できるようになりました。
以下のことを学びました。
- セッション管理の基盤となる
--sessionフラグを使用して名前付きセッションを開始する方法。 pを押して一時停止し、rを押して再開することにより、実行中のセッションをインタラクティブに制御する方法。qでセッションを正常に停止し、Hashcat が状態を保存するために.restoreファイルを自動的に作成することを理解する方法。--sessionおよび--restoreフラグを使用して完全に停止したセッションを復元し、効率的に作業を継続できるようにする方法。
これらの機能を習得することは、些細ではないパスワードクラッキングタスクで Hashcat を効果的に使用するために不可欠です。


