Hashcatツールを使用してパスワードを解読する方法は?
公開: 2021-12-14倫理的なハッキングや侵入テストでは、システムやサーバーにアクセスするためにパスワードクラッキングが非常に重要です。
システムやデータベースでは、パスワードがプレーンテキスト形式で保存されることはめったにありません。
パスワードはデータベースに保存される前に常にハッシュされ、検証プロセス中にハッシュが比較されます。
採用されている暗号化に応じて、さまざまなシステムがさまざまな方法でパスワードハッシュを保存します。 また、ハッシュがある場合は、任意のパスワードを簡単に解読できます。
また、この記事では、便利で優れたHashcatコマンドラインツールを使用してパスワードハッシュを解読する方法について説明します。
それでは始めましょう。
しかしその前に…
ハッシュ関数とは何ですか?
ハッシュは、ハッシュ関数と呼ばれる数学関数を使用して、通常の入力テキストを固定サイズのテキスト文字列に変換するプロセスです。 長さに関係なく、任意のテキストは、アルゴリズムを使用して整数とアルファベットのランダムな組み合わせに変換できます。
- 入力とは、ハッシュされるメッセージを指します。
- ハッシュ関数は、文字列をハッシュ値に変換するMD5やSHA-256のような暗号化アルゴリズムです。
- そして最後に、ハッシュ値が結果になります。
Hashcatとは何ですか?
Hashcatは、最速のパスワード回復ツールです。 非常に複雑なパスワードを短時間で解読するように設計されています。 また、このツールは、ワードリスト攻撃とブルートフォース攻撃の両方に対応しています。
Hashcatには2つのバリエーションがあります。 CPUおよびGPU(グラフィックプロセッシングユニット)ベース。 GPUベースのツールは、CPUよりも短い時間でハッシュをクラックできます。 GPUドライバーの要件は、公式Webサイトで確認できます。
特徴
- 無料でオープンソース
- 200を超えるハッシュタイプのバリエーションを実装できます。
- Linux、Windows、macOSなどのマルチオペレーティングシステムをサポートします。
- CPUやGPUサポートなどのマルチプラットフォームが利用可能です。
- 複数のハッシュを同時に割ることができます。
- 自動パフォーマンスチューニングとともに、 16進ソルトおよび16進文字セットファイルがサポートされています。
- 組み込みのベンチマークシステムが利用可能です。
- 分散クラッキングネットワークは、オーバーレイを使用してサポートできます。
そして、あなたは彼らのウェブサイトからも他の機能を見ることができます。
Hashcatのインストール
まず、Linuxシステムが最新のプログラムとツールで最新であることを確認します。
このためには、ターミナルを開いて次のように入力します。
$ sudo apt update && sudo apt upgrade
Hashcatは通常、KaliLinuxにプリインストールされています。 このツールは、パスワードクラッキングセクションにあります。 ただし、Linuxディストリビューションに手動でインストールする必要がある場合は、ターミナルで次のコマンドを入力します。
$ sudo apt-get install hashcat
ツールの使用法
Hashcatの使用を開始するには、パスワードハッシュが必要です。 クラックするハッシュがない場合は、最初にいくつかのハッシュを作成します。
コマンドラインを使用してハッシュを作成するには、以下の形式に従ってください。
echo -n "input" | algorithm | tr -d "-">>outputfiename
たとえば、以下のmd5アルゴリズムを使用して、いくつかの単語をハッシュに変換したことがわかります。
┌──(rootkali)-[/home/writer/Desktop] └─# echo -n "geekflare" | md5sum | tr -d "-">>crackhash.txt echo -n "password123" | md5sum | tr -d "-">>crackhash.txt echo -n "Webtechnology" | md5sum | tr -d "-">>crackhash.txt echo -n "microsoftteams" | md5sum | tr -d "-">>crackhash.txt echo -n "recyclebin" | md5sum | tr -d "-">>crackhash.txt
そして、出力はcrackhash.txtファイルに保存されます。

次に、指定されたファイルに保存されたハッシュを確認します。
┌──(rootkali)-[/home/writer/Desktop] └─# cat crackhash.txt 066d45208667198296e0688629e28b14 482c811da5d5b4bcd497ffeaa98491e3 72a2bc267579aae943326d17e14a8048 2192d208d304b75bcd00b29bc8de5024 caae8dd682acb088ed63e2d492fe1e13
ご覧のとおり、今、私たちはいくつかのハッシュをクラックする必要があります。 これは、選択したアルゴリズムを使用してハッシュを作成する手順です。
次のステップは、LinuxマシンでHashcatツールをキックスタートすることです。 次のコマンドを使用して、Hashcatを使用します。
$ hashcat --help
ツールを実行するために知っておく必要のあるすべてのオプションが表示されます。 ターミナルでは、すべての攻撃モードとハッシュモードを見つけることができます。
コマンドの一般的な形式は次のとおりです。
$ hashcat -a num -m num hashfile wordlistfile
ここで、「num」は使用する特定の攻撃とハッシュモードを表します。 ターミナルをスクロールすると、md4の場合は0、sha256アルゴリズムの場合は1740のように、すべての攻撃とハッシュモードの正確な数を見つけることができます。
私が使用するワードリストはrockyouワードリストです。 そのワードリストは、パス/ usr / share/wordlistsで簡単に見つけることができます。
Locateコマンドを使用して、そのワードリストパスを検索することもできます。
┌──(rootkali)-[/home/writer] └─# locate rockyou.txt
最後に、wordlistファイルを使用してハッシュをクラックするには、次のコマンドを使用します。
$ hashcat -a 0 -m 0 ./crackhash.txt rockyou.txt
このコマンドを実行すると、簡単に解決できるランタイムエラー(トークン長例外エラー)が発生する場合があります。
これを解決するには、各ハッシュを別々のファイルに個別に保存します。 このエラーは、CPUまたはGPUの速度が低い場合に発生します。 コンピュータに高速プロセッサが搭載されている場合は、1つのファイル自体として同時にすべてのハッシュを簡単に解読できます。
したがって、エラーとすべてを修正すると、結果は次のようになります。
┌──(rootkali)-[/home/writer/Desktop] └─# hashcat -a 0 -m 0 hashcrack.txt rockyou.txt hashcat (v6.1.1) starting... OpenCL API (OpenCL 1.2 pocl 1.6, None+Asserts, LLVM 9.0.1, RELOC, SLEEF, DISTRO, POCL_DEBUG) - Platform #1 [The pocl project] ============================================================================================================================= * Device #1: pthread-Intel(R) Core(TM) i5-8265U CPU @ 1.60GHz, 2403/2467 MB (1024 MB allocatable), 4MCU Minimum password length supported by kernel: 0 Maximum password length supported by kernel: 256 Hashes: 1 digests; 1 unique digests, 1 unique salts Bitmaps: 16 bits, 65536 entries, 0x0000ffff mask, 262144 bytes, 5/13 rotates Rules: 1 Dictionary cache built: * Filename..: rockyou.txt * Passwords.: 14344405 * Bytes.....: 139921671 * Keyspace..: 14344398 * Runtime...: 1 sec 8276b0e763d7c9044d255e025fe0c212: [email protected] Session..........: hashcat Status...........: Cracked Hash.Name........: MD5 Hash.Target......: 8276b0e763d7c9044d255e025fe0c212 Time.Started.....: Sun Dec 12 08:06:15 2021 (0 secs) Time.Estimated...: Sun Dec 12 08:06:15 2021 (0 secs) Guess.Base.......: File (rockyou.txt) Guess.Queue......: 1/1 (100.00%) Speed.#1.........: 1059.6 kH/s (0.52ms) @ Accel:1024 Loops:1 Thr:1 Vec:8 Recovered........: 1/1 (100.00%) Digests Progress.........: 4096/14344398 (0.03%) Rejected.........: 0/4096 (0.00%) Restore.Point....: 0/14344398 (0.00%) Restore.Sub.#1...: Salt:0 Amplifier:0-1 Iteration:0-1 Candidates.#1....: 123456 -> pampam Started: Sun Dec 12 08:06:13 2021 Stopped: Sun Dec 12 08:06:16 2021
上記の結果では、辞書キャッシュの詳細の後で、ハッシュがクラックされ、パスワードが明らかにされていることがわかります。
結論
Hashcatを使用してパスワードを解読する方法について理解を深めていただければ幸いです。
また、侵入テスト用のさまざまなブルートフォースツールや最高の侵入テストツールのいくつかについて知りたいと思うかもしれません。