tip

AWSハッキングを学び、実践する:HackTricks Training AWS Red Team Expert (ARTE)
GCPハッキングを学び、実践する:HackTricks Training GCP Red Team Expert (GRTE) Azureハッキングを学び、実践する:HackTricks Training Azure Red Team Expert (AzRTE)

HackTricksをサポートする

CBC

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

CBC-MAC

暗号ブロック連鎖メッセージ認証コードCBC-MAC)は、暗号学で使用される方法です。これは、メッセージをブロックごとに暗号化し、各ブロックの暗号化が前のブロックにリンクされることで機能します。このプロセスはブロックの連鎖を作成し、元のメッセージのビットを1つ変更するだけでも、暗号化されたデータの最後のブロックに予測不可能な変化をもたらすことを保証します。このような変更を行うまたは逆にするためには、暗号化キーが必要であり、セキュリティが確保されます。

メッセージmのCBC-MACを計算するには、ゼロ初期化ベクトルでCBCモードでmを暗号化し、最後のブロックを保持します。以下の図は、秘密鍵kとブロック暗号Eを使用して、ブロックからなるメッセージのCBC-MACの計算を概略しています!https://wikimedia.org/api/rest_v1/media/math/render/svg/bbafe7330a5e40a04f01cc776c9d94fe914b17f5

https://upload.wikimedia.org/wikipedia/commons/thumb/b/bf/CBC-MAC_structure_(en).svg/570px-CBC-MAC_structure_(en).svg.png

脆弱性

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

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

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

  • 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のクッキーを再生成できます。このクッキーは、初期IVを使用してユーザーadministrator偽装するのに有効です。

参考文献

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

tip

AWSハッキングを学び、実践する:HackTricks Training AWS Red Team Expert (ARTE)
GCPハッキングを学び、実践する:HackTricks Training GCP Red Team Expert (GRTE) Azureハッキングを学び、実践する:HackTricks Training Azure Red Team Expert (AzRTE)

HackTricksをサポートする