Hashcat
JohnTheRipperと比べたときの利点
JohnTheRipperだとハッシュファイルを作成して形式を合わせる必要があってやや面倒。 hashcatだとハッシュ値を直接引数に渡せて便利。
ヘルプがとても親切で見やすい。
Hashcat 使い方
例で使ってるハッシュ値はecho -n "xxxx" | md5sumを使って生成してる。
別にsha1でもsha2でも良いが、-nを付けないと改行が入ってうまく解析できなくなるので注意。
一度クラックしたハッシュは保存されるので、繰り返し試すのに向いていない。
~/.hashcat/hashcat.potfile内にクラックしたハッシュが保存されているので、試すときは適宜削除しよう。
--removeオプションもあったが使い方が分からなかった。
単純なクラック
基本的には-mオプションでハッシュ形式の指定、-aオプションで攻撃モードの指定、そしてハッシュ値を渡す。
結果の表示には--showオプションを使用する。
下はブルートフォースする例
# echo -n 'hello' | md5sum # -m 0: md5 # -a 3: ブルートフォース # hashcat --helpでハッシュの種類のIDが見れる hashcat -a 3 -m 0 5d41402abc4b2a76b9719d911017c592 # 結果の表示 hashcat -a 3 -m 0 5d41402abc4b2a76b9719d911017c592 --show # => 5d41402abc4b2a76b9719d911017c592:hello
ヘルプの表示
--help、普通。
でも表示がとても親切なのでJohnより分かりやすい。
辞書攻撃
-a 0を指定すると辞書攻撃ができる。
# echo -n 'P@ssw0rd' | md5sum hashcat -a 0 -m 0 161ebd7d45089b3446ee4e0d86dbcf92 rockyou.txt
2つの辞書を組み合わせて、あたらしくワードを作って攻撃することもできる。 最初に指定した辞書が左側、後に指定した辞書が右側になる(見た目の位置と一致するので分かりやすい)。
ルールによる変換
ワードリスト中の単語の先頭を大文字にするとか、3回繰り返すとかのルールを設定して攻撃できる。
どういうルールがあるかは公式のリファレンスを見よう。
攻撃モードが0、6、7で使うことができる。
ルールの指定は-j, -k, -rで指定できる。
-j, -kではそれぞれ左の辞書、右の辞書の単一のルールを指定できる。
-rではルールが書かれたファイルを指定することができて、複数のルールを同時に試行できる。
単一の辞書に単一のルールを適用する例
# echo -n 'P@SSW0RD' | md5sum # -j u: ワード中のアルファベットを大文字にするルール hashcat -a 0 -m 0 -j u b46f685f85e0af830d82ddbbe795eff3 rockyou.txt
マスク
マスクによって使う文字の種類と位置を指定してブルートフォースを実行できる。 どういう指定ができるかは公式のリファレンスを見よう。
4ケタの数字のハッシュをクラックする例。
# echo -n '1231' | md5sum # ?d: 数字、?d?d?d?dで4ケタの数字を意味する hashcat -a 3 -m 0 6c14da109e294d1e8155be8aa4b1ce8e '?d?d?d?d'
その他
基本的な使い方はこんな感じになる。 他にもOpenCL使って高速化したりできる。