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
모든 역할은 역할 신뢰 정책과 함께 생성됩니다. 이 정책은 누가 생성된 역할을 맡을 수 있는지를 나타냅니다. 같은 계정의 역할이 특정 계정이 이를 맡을 수 있다고 말하면, 이는 해당 계정이 역할에 접근할 수 있음을 의미합니다 (그리고 잠재적으로 privesc).
예를 들어, 다음 역할 신뢰 정책은 누구나 이를 맡을 수 있음을 나타내므로, 모든 사용자가 해당 역할과 관련된 권한으로 privesc를 할 수 있습니다.
당신은 다음을 실행하여 역할을 가장할 수 있습니다:
잠재적 영향: 역할에 대한 권한 상승.
이 경우 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)