Hashcat はパスワード ブラスト アーティファクトであり、情報セキュリティに必要なツールの 1 つです。緊急時に備えて、この記事の記録と要約を収集します。また、この記事を読むネットユーザーにも役立つ可能性があります。
Hashcat は世界最速のパスワード クラッカーであり、マルチ プラットフォームとマルチ アルゴリズムをサポートするオープン ソースの分散ツールです。
公式: https://hashcat.net/hashcat/
Github:https://github.com/hashcat/hashcat
https://github.com/hashcat/hashcat/releases 下载最新版压缩包,解压根据自己的平台运行 hashcat64.exe 或者 hashcat32.exe
クラックするハッシュ タイプを指定し、その後にハッシュ タイプに対応する数字
使用するクラック モードを指定します。その値は次のパラメータを参照します:
- [ Attack Modes ] - # | モード ===+==== 0 | ストレート # ダイレクト辞书クラック 1 | コンビネーション # コンビネーションクラック 3 | ブルートフォース # マスク暴力クラック 6 | ハイブリッド ワードリスト + マスク # 辞書+マスククラック 7 | ハイブリッド マスク + ワードリスト # マスク+辞書クラック
インクリメンタルクラックモードを有効にし、hashcatが指定されたパスワード長範囲内でクラックを実行できるようにします
パスワードの最小長さ、その後は整数に直接等しく、インクリメントモードを構成して
パスワードの最大長さを使用し、その後は整数に直接等しく、インクリメントモードを構成して
を使用します。
--outfile クラッキングが成功した後のハッシュと対応する平文パスワードの保存場所を指定します
--optimized-kernel-enable 最適化されたカーネルを有効にする(パスワードの長さを制限する)
--opencl-devices opencl のデバイスを指定します。ここでサポートされているデバイスのリストは次のとおりです。
コード
* デバイス #1: Intel(R) Core(TM) i7-9750H CPU @ 2.60GHz、 スキップ。* デバイス #2: Intel(R) UHD グラフィックス 630、 384/1536 MB 割り当て可能、 24MCU * デバイス #3: AMD Radeon Pro 555X Compute エンジン、 1024/4096 MB 割り当て可能、 12MCU
--opencl-device-types opencl のデバイス タイプを指定します。Hashcat は次のデバイス タイプをサポートします:
bash
1 | CPU2 | GPU3 | FPGA、 DSP、 コプロセッサ
GPUクラック
bash
? | 文字セット===+==
l | abcdefghijklmnopqrstuvwxyz # 小文字 a-z
u | ABCDEFGHIJKLMNOPQRSTUVWXYZ # 大文字 A-Z
d | 0123456789 # 数字 0-9
h | 0123456789abcdef # デジタル + abcdef
H | 0123456789ABCDEF # 数値 + ABCDEF
s | !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~ # 特殊文字
A | ?l?う?d?s # キーボード上に表示されるすべての文字
b | 0 - 0xff # おそらく bash
--custom-charset1 [chars] は -1 に相当します --custom-charset2 [chars]は -2に相当します --custom-charset3 [chars]は -3に相当します --custom-charset4 [chars]は -4
マスクで を使用することに相当しますか?1、?2、?3、?
bash
--custom-charset1 abcd123456!@-+
この時?1は abcd123456を意味します!@-+
bash
--custom-charset2 ?l?d
この時?2は を意味しますか?l?d つまり ?h 数字+小文字:
bash
-3 abcdef -4 123456
この時点で ?3?3?3?3?4?4?4?4 は、最初の 4 ビットが abcdef であり、最後の 4 ビットが 123456
コード
1q2w3e4r`MD5値は`5416d7cd6ef195a0f7622a9c56b55e84
bash
hashcat -a 0 -m 0 '5416d7cd6ef195a0f7622a9c56b55e84' hashpass.txt -o success.txt
クラックされたときに次のようなプロンプトが表示されることがあります。
コード
INFO: All hashes found in potfile! Use --show to display them.
これは、パスワードが以前に正常に解読されたことを示しているため、Hashcat は表示されなくなりました。パラメータ --show を追加してパスワードを表示できます。
bash
hashcat -a 0 -m 0 'cbc8f5435c87e13c5d14e6ce92358d68' hashpass.txt --表示 cbc8f5435c87e13c5d14e6ce92358d68:123456@abc
hashcat が正常にクラックされたパスワード ファイルを保存する場所は、~/.hashcat/hashcat.potfile
クラックされたパスワードを直接表示したい場合は、ファイルを直接削除できます。
bash
bash
hashcat -a 1 -m 0 '5416d7cd6ef195a0f7622a9c56b55e84' hashpass1.txt hashpass1.txt
bash
echo -n admin888 |openssl MD5 7fef6171469e80d32c0559f88b377245
admin888 の MD5 値をクラック:
bash
hashcat -a 6 -m 0 '7fef6171469e80d32c0559f88b377245' hashpass.txt -O
bash
hashcat -a 7 -m 0 '7fef6171469e80d32c0559f88b377245' 'admi?l?d?d?d' hashpass.txt -O
へ 23323323 MD5暗号化:
bash
$ echo -n 23323323 |openssl MD5 5a745e31dbbd93f4c86d1ef82281688b
hashcatを使ってクラックします:
bash
hashcat -a 3 -m 0 --force '5a745e31dbbd93f4c86d1ef82281688b' '?d?d?d?d?d?d?d?d' -O
bash
$ echo -n パスワード |openssl MD5 a9d402bfcde5792a8b531b3a82669585
hashcatを使ってクラックします:
bash
hashcat -a 3 -m 0 -1 '?l?u' --力 'a9d402bfcde5792a8b531b3a82669585' '?1?1?1?1?1?1?1?1' -O
ここでは、カスタムルール -1 が定義されています。このとき、 ?1 は を意味しますか?l?u、つまり大文字と小文字です。
Admin88 MD5値は 2792e40d60bac94b4b163b93566e65a9
bash
hashcat -a 3 -m 0 -1 '?l?う?d' --force '2792e40d60bac94b4b163b93566e65a9' --increment --increment-min 5 --increment-max 7 '?1?1?1?1?1?1?1' -O
ここではカスタムルール -1が定義されています。このとき、 ?1 は を意味します。l?う?d、つまり大文字と小文字 + 数字。
admin23323 MD5値は a9991129897a44e0d1c2855c3d7dccc4
bash
hashcat -a 3 -m 0 -1 '?l?う?d' --強制 'a9991129897a44e0d1c2855c3d7dccc4' '管理者?1?1?1?1?1' -O
MySQL のパスワードを表示します:
MySQL
MySQL> select Password from mysql.user; +-------------------------------------------+ | パスワード | +-------------------------------------------+ | *81F5E21E35407D884A6CD4A731AEBFB6AF209E1B | | *81F5E21E35407D884A6CD4A731AEBFB6AF209E1B | | *81F5E21E35407D884A6CD4A731AEBFB6AF209E1B | | *81F5E21E35407D884A6CD4A731AEBFB6AF209E1B | +-------------------------------------------+ 4 rows in set (0.00 sec)
次に辞书を使用してクラックを开始します。
bash
hashcat -a 0 -m 300 --force '81F5E21E35407D884A6CD4A731AEBFB6AF209E1B' hashpass.txt -O
/etc/shadow パスワードファイルを表示します:
bash
root@kali-linux:~# cat /etc/shadowroot:$6$4ojiBMDPrehqrLkX$d2T7Cn8LKkLk4SDXgCh1IEqjhnsUekXaNUXSxiZIwUTndSqyd.9sEcu80sX9DuEHGmHOeoMev2O0ACYtjMett1:18201:0:999999:7::: デーモン:*:18024:0:99999:7::: ビン:*:18024:0:99999:7::: システム:*:18024:0:99999:7::: 同期:*:18024:0:99999:7::: ゲーム:*:18024:0:99999:7::: 男性:*:18024:0:99999:7::: lp:*:18024:0:99999:7::: メール:*:18024:0:99999:7::: ニュース:*:18024:0:99999:7::: uucp:*:18024:0:99999:7::: プロキシ:*:18024:0:99999:7::: www-data:*:18024:0:99999:7::: バックアップ:*:18024:0:99999:7::: リスト:*:18024:0:99999:7::: irc:*:18024:0:99999:7::: ナッツ:*:18024:0:99999:7::: 誰も:*:18024:0:99999:7::: _apt:*:18024:0:99999:7::: systemd-timesync:*:18024:0:99999:7::: システムネットワーク:*:18024:0:99999:7::: systemd-resolve:*:18024:0:99999:7::: mysql:!:18024:0:99999:7::: ntp:*:18024:0:99999:7::: メッセージバス:*:18024:0:99999:7::: ARPウォッチ:!:18024:0:99999:7::: Debian-exim:!:18024:0:99999:7::: uuidd:*:18024:0:99999:7::: レッドソックス:!:18024:0:99999:7::: tss:*:18024:0:99999:7::: rwhod:*:18024:0:99999:7::: ヨウ素:*:18024:0:99999:7::: ミレド:*:18024:0:99999:7::: dnsmasq:*:18024:0:99999:7::: ポストグレス:*:18024:0:99999:7::: usbmux:*:18024:0:99999:7::: rtkit:*:18024:0:99999:7::: スタンネル4:!:18024:0:99999:7::: sshd:*:18024:0:99999:7::: デビアン-snmp:!:18024:0:99999:7::: sslh:!:18024:0:99999:7::: パルス:*:18024:0:99999:7::: スピーチディスパッチャー:!:18024:0:99999:7::: アヴァヒ:*:18024:0:99999:7::: サネド:*:18024:0:99999:7::: inetsim:*:18024:0:99999:7::: 色:*:18024:0:99999:7::: ジオクルー:*:18024:0:99999:7::: キングフィッシャー:*:18024:0:99999:7::: デビアン-gdm:*:18024:0:99999:7::: ドラディス:*:18024:0:99999:7::: 牛肉-xss:*:18024:0:99999:7::: systemd-coredump:!!:18082:
root にはパスワードが付いていることがわかります。 $6 表面ハッシュの暗号化方法は sha512crypt $6$、SHA512 (Unix) です。
bash
# マスククラッキングルートパスワード クラッキング成功のハッシュをポットファイルに記録しない パスワード を実行するデバイス2(コアディスプレイ)を指定し、最適化hashcat -a 3 -m 1800 --force '$6$4ojiBMDPrehqrLkX$d2T7Cn8LKkLk4SDXgCh1IEqjhnsUekXaNUXSxiZIwUTndSqyd.9sEcu80sX9DuEHGmHOeoMev2O0ACYtjMett1' '?l?l?l?l' -O -d 2 --potfile-disable# マスククラックルートパスワード ユーザー名を無視 クラック成功をポットファイルに記録しないハッシュ デバイス2(コアディスプレイ)を指定してパスワード を実行し、最適化を開始しますhashcat -a 3 -m 1800 --force 'root:$6$4ojiBMDPrehqrLkX$d2T7Cn8LKkLk4SDXgCh1IEqjhnsUekXaNUXSxiZIwUTndSqyd.9sEcu80sX9DuEHGmHOeoMev2O0ACYtjMett1' '?l?l?l?l' -O -d 2 --username --potfile-disable
macOS に付属している CPU と独立したグラフィックスはクラックできません。ここでは、Guoguang 自身がコア ディスプレイを使用して - d 2 を手動で切り替えて実行に成功しました:
bash
hashcat -a 0 -m 3000 --force '921988ba001dc8e14a3b108f3fa6cb6d' password.txt
bash
hashcat -a 0 -m 1000 --force 'e19ccf75ee54e06b06a5907af13cef42' password.txt
| パラメータ | タイプ | 説明 | 国光の理解 | 例 |
|---|---|---|---|---|
| –brain-server | | Enable brain server | プライマリを有効にする | |
| -z、-brain-client | 脳クライアントを有効にし、-S | をアクティブにします分散クライアントの有効化 | ||
| –brain-client-features | Num | brain クライアントの機能を定義します。以下を参照してください | クライアント機能の定義 | –brain-client-features=3 |
| –brain-host | Str | Brain server host (IP またはドメイン) | プライマリサーバーの IP またはドメイン | –brain-host=127.0.0.1 |
| –brain-port | port | Brain server Port | プライマリサーバーポート | –brain-port=13743 |
| –brain-password | Str | Brain server authentication password | プライマリサーバーの認証パスワード | –brain-password=e8acfc7280c48009 |
| –brain-session | Hex | 自動的に計算された脳セッションをオーバーライドします | 計算済みのプライマリセッションを自動的に上書き | -brain-session=0x2ae611db |
| -brain-session-whitelist | 16進 | 指定されたセッションのみを許可し、カンマで区切ります | 指定された会話のみを許可し、カンマで区切ります | –brain-session-whitelist=0x2ae611db |
bash
- [ ブレイン クライアント 機能 ] - # | 機能 ===+== 1 | 送信 ハッシュ パスワード # クラックされたパスワードの送信 2 | 送信 攻撃 位置 # クラックされた场所を送信する 3 | Send hashed passwords and attack positions # クラックされたパスワードとクラックされた位置を送信する