web-dev-qa-db-ja.com

Hashcatを使用してHMAC-SHA256をクラックする

Hashcatは200以上のハッシュアルゴリズムを解読する能力を誇っていますが、それらの多くに関するドキュメントはあまりありません。 Hashcat --helpは、HMACクラッキングをサポートしていることを示していますが、構文はそれほど単純ではありません(「1450 | HMAC-SHA256(key = $ pass)」とだけ表示されています)。 HMAC-SHA256は2つのパラメーターを受け取ることを理解しています。1つはキーで、もう1つはメッセージですが、Hashcatでこれらの両方を指定する方法がわかりません。

HashcatがHMAC-sha256をクラックするための適切な構文は何ですか? 2つのファイルがあります。1つはメッセージを含み、もう1つはハッシュを含みます。パスワードがわかっているので、openssl dgst -SHA256 -hmac "mypassphrase" message.txtを使用してHMACハッシュを確認できます

私が言っていることが大いに意味をなすことを願っています、それは長い週でした:/

1
snuggle_bunny

構文はhash:messageです。

メッセージの長さは51バイトに制限されていることに注意してください。

詳細については、hashcatの例のwikiページを参照してください。 https://hashcat.net/wiki/doku.php?id=example_hashes

4
atom

@ atom はすでに述べたように、ファイル形式はMAC:messageです。 「MAC」とは、HMACが生成する値、つまりハッシュを意味するため、MACが最初に来て、次にこのMACが署名しているというメッセージが来ます。このセットアップの目標は、メッセージの署名に使用されたキーを解読することです。 (-m 1460を使用して他の値をクラックすることもできるようですが、私はこれをテストしていません。)

基本的には次のようにします。

$ echo '320774ef5e33a2a0dfe8de47634f5e33d68166a51da9c84bd2f9e871c99eef2a:hi' > macmsg.txt
$ hashcat -m 1450 macmsg.txt

もちろん、そのhashcatはクラッキングオプションを望んでいます。ブルートフォーシングの簡単なhashcatコマンドは次のようになります。

$ hashcat -m 1450 -a 3 macmsg.txt

HashcatはMAC(ハッシュ)がバイナリデータであることを想定しているため、16進値として渡すと想定しています。ただし、メッセージは平文であることを想定しています。 16進数のメッセージも必要な場合は、--hex-saltを渡す必要があります。

$ echo '320774ef5e33a2a0dfe8de47634f5e33d68166a51da9c84bd2f9e871c99eef2a:6869' > macmsg.txt
$ hashcat -m 1450 -a 3 --hex-salt macmsg.txt

お役に立てれば!

3
Luc