# UUID Insecurities
ゼロからヒーローまでのAWSハッキングを学ぶ htARTE(HackTricks AWS Red Team Expert)!
HackTricksをサポートする他の方法:
* **HackTricksで企業を宣伝したい**または**HackTricksをPDFでダウンロードしたい**場合は、[**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)をチェックしてください!
* [**公式PEASS&HackTricksグッズ**](https://peass.creator-spring.com)を入手する
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションを見つける
* **💬 [Discordグループ](https://discord.gg/hRep4RUj7f)**に参加するか、[telegramグループ](https://t.me/peass)に参加するか、**Twitter** 🐦で私たちをフォローする [**@carlospolopm**](https://twitter.com/hacktricks\_live)**。**
* **ハッキングトリックを共有するために** [**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のgithubリポジトリにPRを提出する
## 基本情報
ユニバーサルユニーク識別子(UUID)は、コンピュータシステムで情報を一意に識別するために使用される**128ビットの番号**です。 UUIDは、一意の識別子が中央調整なしで必要なアプリケーションで不可欠です。データベースキーとして一般的に使用され、ドキュメントやセッションなどのさまざまな要素を参照できます。
UUIDは一意で**推測しにくい**ように設計されています。特定の形式で構造化され、32桁の16進数で表される5つのグループに分かれています。異なるバージョンのUUIDがあり、それぞれ異なる目的を果たしています:
* **UUID v1**は時間ベースで、タイムスタンプ、クロックシーケンス、およびノードID(MACアドレス)を組み込んでいますが、システム情報を公開する可能性があります。
* **UUID v2**はv1に似ていますが、ローカルドメイン向けの変更が含まれています(あまり使用されません)。
* **UUID v3およびv5**は、名前空間と名前からハッシュ値を使用してUUIDを生成し、v3はMD5を使用し、v5はSHA-1を使用します。
* **UUID v4**はほぼ完全にランダムに生成され、高い匿名性を提供しますが、わずかな重複のリスクがあります。
{% hint style="success" %}
UUIDのバージョンとサブバージョンは通常、UUID内の同じ位置に表示されます。例えば:\
12345678 - abcd - 1a56 - a539 - 103755193864\
xxxxxxxx - xxxx - Mxxx - Nxxx - xxxxxxxxxxxx
* **Mの位置**はUUIDの**バージョン**を示します。上記の例では、UUID v**1**です。
* **Nの位置**はUUIDのバリアントを示します。
{% endhint %}
## サンドイッチ攻撃
"サンドイッチ攻撃"は、特にパスワードリセットなどの機能で**UUID v1の生成の予測可能性を悪用する**特定のタイプの攻撃です。 UUID v1は時間、クロックシーケンス、およびノードのMACアドレスに基づいて生成されるため、攻撃者がこれらのUUIDのいくつかを時間の近い範囲で取得できれば、それをある程度予測可能にする可能性があります。
### 例
UUID v1をパスワードリセットリンクの生成に使用するWebアプリケーションを想像してみてください。攻撃者がこれを悪用して不正アクセスを得る方法は次のとおりです:
1. **初期設定**:
* 攻撃者は2つの電子メールアカウントをコントロールしています:\`attacker1@acme.com\`と\`attacker2@acme.com\`。
* ターゲットの電子メールアカウントは\`victim@acme.com\`です。
2. **実行**:
* 攻撃者は最初のアカウント(\`attacker1@acme.com\`)のパスワードリセットをトリガーし、UUID付きのパスワードリセットリンクを受け取ります。例えば\`99874128-7592-11e9-8201-bb2f15014a14\`とします。
* 直後に、攻撃者はターゲットのアカウント(\`victim@acme.com\`)のパスワードリセットをトリガーし、その後すぐに2番目の攻撃者がコントロールするアカウント(\`attacker2@acme.com\`)のパスワードリセットをトリガーします。
* 攻撃者は、2番目のアカウントのリセットリンクをUUID付きで受け取り、例えば\`998796b4-7592-11e9-8201-bb2f15014a14\`とします。
3. **分析**:
* 攻撃者は今、時間の近い範囲で生成された2つのUUID(\`99874128\`および\`998796b4\`)を持っています。時間ベースのUUIDの連続的な性質を考えると、ターゲットのアカウントのUUIDはおそらくこれらの2つの値の間にあるでしょう。
4. **ブルートフォース攻撃**:
* 攻撃者は、これらの2つの値の間でUUIDを生成するツールを使用し、生成された各UUIDをテストしてパスワードリセットリンクにアクセスを試みます(例:\`https://www.acme.com/reset/\\`)。
* Webアプリケーションがこのような試行を十分にレート制限したりブロックしない場合、攻撃者は範囲内のすべての可能なUUIDを迅速にテストできます。
5. **アクセスが得られる**:
* ターゲットのパスワードリセットリンクの正しいUUIDが見つかると、攻撃者はターゲットのパスワードをリセットし、そのアカウントに不正アクセスできます。
### ツール
* このサンドイッチ攻撃を自動的に実行するために、ツールを使用できます:[**https://github.com/Lupin-Holmes/sandwich**](https://github.com/Lupin-Holmes/sandwich)
* 拡張機能[**UUID Detector**](https://portswigger.net/bappstore/65f32f209a72480ea5f1a0dac4f38248)を使用して、Burp SuiteでこのタイプのUUIDを検出できます。
## 参考文献
* [https://versprite.com/blog/universally-unique-identifiers/](https://versprite.com/blog/universally-unique-identifiers/)
ゼロからヒーローまでのAWSハッキングを学ぶ htARTE(HackTricks AWS Red Team Expert)!
HackTricksをサポートする他の方法:
* **HackTricksで企業を宣伝したい**または**HackTricksをPDFでダウンロードしたい**場合は、[**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)をチェックしてください!
* [**公式PEASS&HackTricksグッズ**](https://peass.creator-spring.com)を入手する
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションを見つける
* **💬 [Discordグループ](https://discord.gg/hRep4RUj7f)**に参加するか、[telegramグループ](https://t.me/peass)に参加するか、**Twitter** 🐦で私たちをフォローする [**@carlospolopm**](https://twitter.com/hacktricks\_live)**。**
* **ハッキングトリックを共有するために** [**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のgithubリポジトリにPRを提出する