Cipher Block Chaining CBC-MAC

htARTE(HackTricks AWS Red Team Expert) を通じてゼロからヒーローまでAWSハッキングを学ぶ

HackTricksをサポートする他の方法:

CBC

もしクッキーユーザー名だけ(またはクッキーの最初の部分がユーザー名)であり、ユーザー名を "admin" に偽装したい場合、ユーザー名 "bdmin" を作成し、クッキーの最初のバイトブルートフォースすることができます。

CBC-MAC

暗号学において、Cipher Block Chaining Message Authentication CodeCBC-MAC)はブロック暗号からメッセージ認証コードを構築するための技術です。メッセージは、いくつかのブロック暗号アルゴリズムをCBCモードで暗号化して、前のブロックの適切な暗号化に依存するブロックの連鎖を作成します。この相互依存性により、平文のビットを変更すると、最終的な暗号化されたブロックが予測できず、鍵を知らないと対抗できない方法で変更されます。

脆弱性

通常、CBC-MAC では使用されるIV は 0です。 これは、2つの既知のメッセージ(m1m2)が独立して2つの署名(s1s2)を生成するという問題があります。つまり:

  • E(m1 XOR 0) = s1

  • E(m2 XOR 0) = s2

その後、m1 と m2 を連結したメッセージ(m3)は、2つの署名(s31 と s32)を生成します:

  • E(m1 XOR 0) = s31 = s1

  • E(m2 XOR s1) = s32

これは、暗号の鍵を知らなくても計算可能です。

8 バイトのブロックで名前 Administrator を暗号化していると想像してください:

  • Administ

  • rator\00\00\00

Administ(m1)の署名(s1)を取得できます。 次に、rator\00\00\00 XOR s1 の結果となるユーザー名を作成できます。これにより E(m2 XOR s1 XOR 0) が生成され、s32 となります。 これで、s32 を Administrator のフルネームの署名として使用できます。

要約

  1. ユーザー名 Administ(m1)の署名である s1 を取得します

  2. ユーザー名 rator\x00\x00\x00 XOR s1 XOR 0 の署名である s32 を取得します**。**

  3. クッキーを s32 に設定すると、ユーザー Administrator の有効なクッキーになります。

IV を制御する攻撃

使用される IV を制御できる場合、攻撃は非常に簡単になります。 クッキーが単に暗号化されたユーザー名である場合、ユーザー "administrator" を偽装するためにユーザー "Administrator" を作成し、そのクッキーを取得できます。 そして、IV を制御できる場合、IV の最初のバイトを変更して IV[0] XOR "A" == IV'[0] XOR "a" とし、ユーザー Administrator のクッキーを再生成できます。このクッキーは、初期の IVadministrator ユーザーを偽装するために有効です。

参考文献

詳細はhttps://en.wikipedia.org/wiki/CBC-MACを参照してください。

htARTE(HackTricks AWS Red Team Expert) を通じてゼロからヒーローまでAWSハッキングを学ぶ

HackTricksをサポートする他の方法:

Last updated