AWS - Identity Center & SSO Unauthenticated Enum
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
最初にこのブログ記事で提案されたように、AWS SSOを使用しているユーザーにリンクを送信することが可能で、ユーザーが受け入れれば、攻撃者はユーザーを偽装するためのトークンを取得し、Identity Centerでユーザーがアクセスできるすべてのロールにアクセスできるようになります。
この攻撃を実行するための要件は次のとおりです:
被害者はIdentity Centerを使用している必要があります
攻撃者は被害者が使用しているサブドメインを知っている必要があります <victimsub>.awsapps.com/start
前述の情報だけで、攻撃者はユーザーにリンクを送信でき、受け入れられれば、攻撃者はAWSユーザーアカウントへのアクセスを得ることができます。
サブドメインの特定
攻撃者の最初のステップは、被害者の会社がIdentity Centerで使用しているサブドメインを特定することです。これはOSINTまたは推測 + ブルートフォースを使用して行うことができ、ほとんどの会社はここで自社名またはそのバリエーションを使用しています。
この情報をもとに、Identity Centerが設定されたリージョンを取得することが可能です:
被害者のリンクを生成して送信する
次のコードを実行して、被害者が認証できるAWS SSOログインリンクを生成します。 デモのために、このコードをPythonコンソールで実行し、後でトークンを取得するためにいくつかのオブジェクトが必要になるので、終了しないでください:
送信されたリンクを被害者にあなたの素晴らしいソーシャルエンジニアリングスキルを使って送信してください!
被害者がそれを受け入れるのを待つ
被害者がすでにAWSにログインしている場合、権限を付与することを受け入れるだけで済みます。ログインしていない場合は、ログインしてから権限を付与することを受け入れる必要があります。 これが現在のプロンプトの見た目です:
SSOアクセストークンを取得する
被害者がプロンプトを受け入れた場合、このコードを実行してユーザーを偽装してSSOトークンを生成します:
SSOアクセストークンは8時間有効です。
ユーザーをなりすます
以前の攻撃が**「フィッシング不可能なMFA」(webAuth)が使用されていても機能することを知るのは楽しいです。これは、以前のワークフローが使用されているOAuthドメインを離れないためです。他のフィッシング攻撃とは異なり、ユーザーがログインドメインを偽装する必要がない場合、デバイスコードワークフローが準備されているため、デバイスによって知られているコードがあり、ユーザーは異なるマシンでもログインできます。プロンプトを受け入れると、デバイスは初期コードを知っているだけで**、ユーザーのために資格情報を取得することができます。
詳細については、この投稿を確認してください。
AWSハッキングを学び、実践する:HackTricks Training AWS Red Team Expert (ARTE) GCPハッキングを学び、実践する:HackTricks Training GCP Red Team Expert (GRTE)