AWS - STS Privesc
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)
sts:AssumeRole
すべてのロールはロール信頼ポリシーで作成され、このポリシーは誰が作成されたロールを引き受けることができるかを示します。同じアカウントのロールがアカウントがそれを引き受けることができると言っている場合、それはそのアカウントがロールにアクセスできることを意味します(そして潜在的にプライベートエスカレーション)。
例えば、以下のロール信頼ポリシーは誰でもそれを引き受けることができることを示しているため、任意のユーザーがそのロールに関連付けられた権限にプライベートエスカレーションできることになります。
あなたは次のコマンドを実行することでロールをなりすますことができます:
潜在的な影響: 役割への権限昇格。
この場合、権限 sts:AssumeRole
は 悪用する役割に示される必要があり、攻撃者に属するポリシーには示されてはいけません。
一つの例外を除いて、異なるアカウントから役割を引き受けるためには、攻撃者アカウントもその役割に対して sts:AssumeRole
を持っている必要があります。
sts:GetFederationToken
この権限を持つことで、任意のユーザーを偽装するための資格情報を生成することが可能です:
これは、他のユーザーを偽装するアクセスを与えずに、この権限を安全に付与する方法です:
sts:AssumeRoleWithSAML
このロールの信頼ポリシーは、SAMLを介して認証されたユーザーにロールを偽装するアクセスを許可します。
この権限を持つ信頼ポリシーの例は次のとおりです:
一般的に、ロールを偽装するための資格情報を生成するには、次のようなものを使用できます:
しかし、プロバイダーは、これを簡単にするための独自のツールを持っているかもしれません。例えば、onelogin-aws-assume-role:
潜在的な影響: ロールへの権限昇格。
sts:AssumeRoleWithWebIdentity
この権限は、モバイル、ウェブアプリケーション、EKS... でウェブアイデンティティプロバイダーを使用して認証されたユーザーのために、一連の一時的なセキュリティ資格情報を取得する権限を付与します。ここで詳しく学ぶ。
例えば、EKSサービスアカウントがIAMロールを偽装できる必要がある場合、/var/run/secrets/eks.amazonaws.com/serviceaccount/token
にトークンがあり、次のようにしてロールを引き受けて資格情報を取得できます:
AWSハッキングを学び、実践する:HackTricks Training AWS Red Team Expert (ARTE) GCPハッキングを学び、実践する:HackTricks Training GCP Red Team Expert (GRTE)