Hashcat のインストールとシステムベンチマーク

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

はじめに

Hashcat は、最も高速で高度なパスワード回復ツールの一つとして広く認識されています。幅広いハッシュアルゴリズムをサポートしており、CPU と GPU の両方を活用してパスワードクラッキングのプロセスを高速化できます。

この実験(Lab)では、Linux システム上で Hashcat を使い始めるための基本的な手順を順を追って学習します。標準のパッケージマネージャを使用したインストール方法、インストールが成功したことの確認方法、そして最も重要な点として、システムのパフォーマンス能力を把握するためのベンチマークの実行方法を学びます。これは、ペネトレーションテスト、システムセキュリティ監査、またはパフォーマンス分析に関心のある人にとって不可欠な最初のステップです。

この実験(Lab)を終える頃には、Hashcat の初期設定と評価に習熟しているでしょう。

apt パッケージマネージャを使用した Hashcat のインストール

このステップでは、お使いの Ubuntu システムに Hashcat をインストールします。Debian ベースの Linux ディストリビューション(Ubuntu など)でソフトウェアを管理するための標準ツールである apt パッケージマネージャを使用します。

まず、最新のソフトウェアバージョンを入手できるように、システムのパッケージリストを更新することが推奨されます。ターミナルで次のコマンドを実行してください。

sudo apt update

リポジトリからパッケージリストがダウンロードされるのが確認できます。

次に、Hashcat をインストールできます。-y フラグは、インストールプロセス中に表示されるすべてのプロンプトに自動的に「はい」と答えるために使用され、非対話型で実行されます。

sudo apt install hashcat -y

システムは Hashcat およびその依存関係をダウンロードしてインストールします。インストールの進捗状況を示す出力が表示されます。サンプルの出力は次のようになります(正確なパッケージとバージョンは異なる場合があります)。

Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following additional packages will be installed:
  hashcat-data ocl-icd-libopencl1
The following NEW packages will be installed:
  hashcat hashcat-data ocl-icd-libopencl1
0 upgraded, 3 newly installed, 0 to remove and XX not upgraded.
Need to get X,XXX kB of archives.
After this operation, XX.X MB of additional disk space will be used.
...
Setting up hashcat-data (X.X.X+ds1-1) ...
Setting up ocl-icd-libopencl1:amd64 (X.X.X-1) ...
Setting up hashcat (X.X.X+ds1-1) ...
Processing triggers for man-db (X.X.X-1) ...
Processing triggers for libc-bin (X.X.X-0ubuntu1) ...

コマンドプロンプトが戻ってきたら、Hashcat はシステムにインストールされています。

'hashcat --version' で Hashcat のインストールを検証する

このステップでは、Hashcat が正しくインストールされ、ターミナルからアクセス可能であることを確認します。コマンドラインツールがインストールされ、動作しているかを確認する一般的な方法は、そのバージョン番号を問い合わせることです。

インストールされた Hashcat のバージョンを表示するには、次のコマンドを実行します。

hashcat --version

インストールが成功した場合、このコマンドは Hashcat バイナリのバージョン番号を出力します。出力は次のような形式になるはずです。

vX.X.X

バージョン番号が表示されることで、オペレーティングシステムが hashcat プログラムを見つけて実行できることが確認できます。

'hashcat -I' で利用可能なコンピューティングデバイスを一覧表示する

このステップでは、Hashcat がその操作に使用できるコンピューティングデバイスを特定します。Hashcat は、中央処理装置(CPU)とグラフィックス処理装置(GPU)を含む最新のハードウェアの並列処理能力を活用するように設計されています。

システム上の互換性のあるすべての OpenCL デバイスのリストを表示するには、-I(大文字の i)フラグを使用できます。

次のコマンドを実行します。

hashcat -I

このコマンドはシステムをスキャンし、使用可能なすべてのデバイスとその詳細を一覧表示します。この仮想環境では、おそらく CPU のみがリストされているのが確認できるでしょう。専用のグラフィックスカードを搭載したマシンで実行している場合は、それもリストに表示されます。

出力は次のような形式になります。

hashcat (vX.X.X) starting...

OpenCL Info:
============

Platform ID #1
  Vendor  : ...
  Name    : ...
  Version : OpenCL X.X ...

  Device ID #1
    Type           : CPU
    Vendor ID      : XXX
    Vendor         : ...
    Name           : Intel(R) Xeon(R) ...
    Version        : OpenCL X.X ...
    Processor(s)   : X
    Clock          : XXXX MHz
    ...

この情報は、Hashcat がどのデバイスを使用するか、また複数のデバイスが利用可能な場合に特定のタスクに対してデバイスを選択するために役立ちます。

'hashcat -b -m 0' で MD5 のシステムベンチマークを実行する

このステップでは、特定のハッシュに対するシステムのパフォーマンスを測定するためのベンチマークを実行します。これは、システムがパスワードをどれだけ速くクラックできるかを理解するために不可欠なステップです。

Hashcat の組み込みベンチマークモードを使用します。このコマンドでは、2 つの重要なフラグを使用します。

  • -b または --benchmark: これにより、Hashcat は実際のクラッキングセッションの代わりにベンチマークモードで実行されます。
  • -m 0: これはベンチマーク対象のハッシュタイプを指定します。数値の 0 は MD5 アルゴリズムに対応します。MD5 は非常に一般的で比較的速いハッシュアルゴリズムです。

それでは、ターミナルでベンチマークコマンドを実行してください。

hashcat -b -m 0

Hashcat はベンチマークプロセスを開始します。検出されたすべてのデバイスで指定されたアルゴリズム (MD5) をテストし、速度を報告します。このプロセスには数分かかる場合があります。出力は詳細ですが、最も重要な部分は最後に表示される速度の要約です。

hashcat (vX.X.X) starting in benchmark mode...

... (初期化メッセージ) ...

Benchmark relevant options:
===========================
* Hash-Type: 0 (MD5)

... (デバイス情報) ...

[s]tatus [p]ause [r]esume [b]ypass [q]uit =>

... (ステータス更新) ...

Benchmark.Final:
================
* Hash-Type: 0 (MD5)

Speed.Dev.#1.:   XXX.X MH/s (XX.XXms)

...

次のステップに進む前に、ベンチマークが完了するまで待ってください。

Speed.Dev.#1. の行は、プライマリデバイス(この場合は CPU)のパフォーマンスを示しています。

ベンチマーク速度の結果を解釈する

この最終ステップでは、実行したベンチマークの出力を分析します。これは概念的なステップであり、実行する新しいコマンドはありません。

前のステップで実行した hashcat -b -m 0 コマンドの出力を振り返ってください。重要な情報は Speed で始まる行です。

Speed.Dev.#1.:   XXX.X MH/s (XX.XXms)

これを分解してみましょう。

  • Speed.Dev.#1.: これはデバイス #1 の速度を指します。これはステップ 3 で特定したもの(おそらくお使いの CPU)です。
  • XXX.X MH/s: これが最も重要な指標です。「メガハッシュ/秒 (Mega Hashes per second)」の略です。100.0 MH/s という値は、お使いのシステムが毎秒 1 億個の MD5 ハッシュを計算・検証できることを意味します。この数値が高いほど、ブルートフォース攻撃や辞書攻撃を高速に実行できることを示します。
  • (XX.XXms): この値は、一連の操作にかかった遅延時間(レイテンシ)を示しており、パフォーマンスチューニングにおいてより重要になります。基本的なベンチマークにおいては、H/s の値がパフォーマンスの主要な指標となります。

表示される速度は、MD5 アルゴリズム (-m 0) に固有のものです。bcrypt (-m 3200) のようなより複雑なアルゴリズムをベンチマークした場合、bcrypt は意図的に計算が遅くなるように設計されているため、速度は劇的に低下します(MH/s ではなく、H/s または kH/s で測定されます)。

お使いのシステムのベンチマーク速度を理解することは、パスワードクラッキングタスクに必要な時間を推定するために不可欠です。

まとめ

おめでとうございます!この Hashcat のインストールとベンチマークに関する実験(Lab)を無事に完了しました。

この実験(Lab)で、以下のスキルを習得しました。

  • apt パッケージマネージャを使用して Linux システムに Hashcat ツールをインストールする方法。
  • バージョンを確認することで、ソフトウェアのインストールを検証する方法。
  • Hashcat が利用できる CPU および GPU コンピューティングデバイスを識別する方法。
  • 特定のハッシュアルゴリズム(MD5)のシステムパフォーマンスベンチマークを実行する方法。
  • ベンチマーク結果を解釈し、システムのハッシュクラッキング能力を理解する方法。

これらの基礎スキルは、セキュリティ監査、パスワード回復、またはシステムパフォーマンス評価のために Hashcat を使用しようとするすべての人にとって不可欠です。これで、Hashcat のより高度な機能を探求する準備が整いました。