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)