Hashcat

**Hashcat**は、パスワード復元ツールである。以前はプロプライエタリソフトウェアであったが、2015年にオープンソースソフトウェアとして公開された。Linux、macOS及びWindowsで利用することができる。対応している暗号学的ハッシュ関数の例としてはLMハッシュ、MD4、MD5、SHAシリーズ、及びMySQLとで使用されているアルゴリズムなどがある。

Hashcatはその最適化によって公に注目されている。この最適化の一部は、hashcatの作者によって発見された他のソフトウェアの脆弱性などに基づいている。例えば、1Passwordのパスワードマネージャーのハッシュ化スキームの脆弱性がそれに該当する。また、HashcatはUSENIXの出版物で同様のソフトウェアと比較され、このことがArs Technicaで説明されている。

## 変種
以前は、hashcatには2つの変種が存在した:
* hashcat - CPUベースのパスワード復元ツール
* oclHashcat/cudaHashcat - GPGPUツール

hashcat v3.00からはこれらの変種がhashcatと呼ばれる単一のツールに統合された。CPUだけのバージョンはhashcat-legacyになった。これらはどちらもOpenCLが必要である。

hashcat-legacyが対応しているアルゴリズムの多くはGPUベースのhashcatを使用するとより短い時間で解読することができる。但し、全てのアルゴリズムをGPUによって高速化できるわけではない。bcryptがその一例である。データに依存する分岐、逐次化、メモリなどの要因によってoclHashcat/cudaHashcatはhashcat-legacyを包括的に置き換えることができなかった。

hashcat-legacyはLinux、macOS及びWindowsで利用することができる。hashcatはOpenCLに対応したGPU、CPU、FPGAやその他のアクセラレータカードを備えたLinux、macOS及びWindows環境で利用することができる。

## 出力例

```
$ hashcat -d 2 -a 0 -m 400 -O -w 4 example400.hash example.dict

hashcat (v5.1.0) starting...

OpenCL Platform #1: Intel(R) Corporation
========================================
* Device #1: Intel(R) Core(TM) i5-2500K CPU @ 3.30GHz, skipped.

OpenCL Platform #2: NVIDIA Corporation
======================================
* Device #2: GeForce GTX 970, 1010/4041 MB allocatable, 13MCU
* Device #3: GeForce GTX 750 Ti, skipped.

Hashes: 1 digests; 1 unique digests, 1 unique salts
Bitmaps: 16 bits, 65536 entries, 0x0000ffff mask, 262144 bytes, 5/13 rotates
Rules: 1

Applicable optimizers:
* Optimized-Kernel
* Zero-Byte
* Single-Hash
* Single-Salt

Minimum password length supported by kernel: 0
Maximum password length supported by kernel: 55

Watchdog: Temperature abort trigger set to 90c

Dictionary cache hit:
* Filename..: example.dict
* Passwords.: 128416
* Bytes.....: 1069601
* Keyspace..: 128416

The wordlist or mask that you are using is too small.
This means that hashcat cannot use the full parallel power of your device(s).
Unless you supply more work, your cracking speed will drop.
For tips on supplying more work, see: https://hashcat.net/faq/morework

Approaching final keyspace - workload adjusted.

$H$9y5boZ2wsUlgl2tI6b5PrRoADzYfXD1:hash234       
                                                 
Session..........: hashcat
Status...........: Cracked
Hash.Type........: phpass, WordPress (MD5), phpBB3 (MD5), Joomla (MD5)
Hash.Target......: $H$9y5boZ2wsUlgl2tI6b5PrRoADzYfXD1
Time.Started.....: Thu Apr 25 05:10:35 2019 (0 secs)
Time.Estimated...: Thu Apr 25 05:10:35 2019 (0 secs)
Guess.Base.......: File (example.dict)
Guess.Queue......: 1/1 (100.00%)
Speed.#2.........:  2654.9 kH/s (22.24ms) @ Accel:128 Loops:1024 Thr:1024 Vec:1
Recovered........: 1/1 (100.00%) Digests, 1/1 (100.00%) Salts
Progress.........: 128416/128416 (100.00%)
Rejected.........: 0/128416 (0.00%)
Restore.Point....: 0/128416 (0.00%)
Restore.Sub.#2...: Salt:0 Amplifier:0-1 Iteration:1024-2048
Candidates.#2....: 0 -> zzzzzzzzzzz
Hardware.Mon.#2..: Temp: 44c Fan: 40% Util: 50% Core:1265MHz Mem:3004MHz Bus:8

Started: Thu Apr 25 05:10:32 2019
Stopped: Thu Apr 25 05:10:37 2019
```


## 攻撃の種類
Hashcatは効果的な攻撃とハッシュの複雑な鍵空間を網羅するために以下のような複数の攻撃方法を提供している:
* 総当たり攻撃
* コンビネータ攻撃
* 辞書攻撃
* フィンガープリント攻撃
* ハイブリッド攻撃
* マスク攻撃
* 置換攻撃
* ルールベース攻撃
* ルックアップテーブル攻撃
* トグルケース攻撃
* PRINCE攻撃

従来の総当たり攻撃は時代遅れと考えられており、Hashcatの中心チームは完全な代替としてマスク攻撃を推奨している。

## 大会
Team Hashcatは、2010年、2012年、2014年、2015年及び2018年ので開催されたKoreLogicの「Crack Me If you Can」大会と2017年ので優勝した。

## 脚注

### 注釈

### 出典

## 関連項目

* 総当たり攻撃
* 力まかせ探索

* 
* パスワードクラック

## 外部リンク
* 
* A guide to password cracking with Hashcat 
* Talk: Confessions of a crypto cluster operator based on oclHashcat at Derbycon 2015
* Talk: Hashcat state of the union at Derbycon 2016