AWS - STS Enum

htARTE (HackTricks AWS Red Team 전문가)를 통해 **제로부터 영웅까지 AWS 해킹 배우기**!

다른 HackTricks 지원 방법:

STS

**AWS 보안 토큰 서비스 (STS)**는 주로 일시적이고 제한된 권한 자격 증명을 발급하는 데 사용됩니다. 이러한 자격 증명은 AWS Identity and Access Management (IAM) 사용자나 인증된 사용자(연합 사용자)를 위해 요청할 수 있습니다.

STS의 목적이 신원 위장을 위한 자격 증명을 발급하는 것이기 때문에, 이 서비스는 권한 상승 및 지속성 유지에 매우 유용하지만 다양한 옵션이 없을 수 있습니다.

역할 가정

AWS STS에서 제공하는 AssumeRole 작업은 주요한데, 이를 통해 주체가 다른 주체의 자격 증명을 획들할 수 있어서 사실상 그들을 위장할 수 있습니다. 호출 시 지정된 ARN에 해당하는 액세스 키 ID, 비밀 키 및 세션 토큰을 반환합니다.

펜 테스터 또는 레드팀 구성원들에게 이 기술은 권한 상승에 매우 중요합니다(자세한 내용은 여기에서 설명됨). 그러나 이 기술은 상당히 뚜렷하며 공격자를 놀라게 할 수 있지 않을 수도 있습니다.

역할 가정 논리

같은 계정에서 역할을 가정하려면 가정할 역할이 특정 역할 ARN을 허용하는 경우에:

{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::<acc_id>:role/priv-role"
},
"Action": "sts:AssumeRole",
"Condition": {}
}
]
}

이 경우의 priv-role 역할은 특별히 허용되지 않아도 해당 역할을 가정할 수 있습니다 (해당 허용이 충분합니다).

그러나 역할이 계정이 그 역할을 가정할 수 있도록 허용하는 경우, 다음과 같이:

{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::<acc_id>:root"
},
"Action": "sts:AssumeRole",
"Condition": {}
}
]
}

역할을 가정하려는 역할은 그 역할을 가정하기 위해 특정 sts:AssumeRole 권한이 필요합니다.

다른 계정에서 역할을 가정하려고 하는 경우, 가정된 역할은 그것을 허용해야 합니다(역할 ARN 또는 외부 계정을 나타냄), 그리고 가정하려는 역할은 다른 역할을 가정할 권한을 가져야만 합니다(이 경우 가정된 역할이 ARN을 지정하더라도 선택 사항이 아님).

열거

# Get basic info of the creds
aws sts get-caller-identity
aws sts get-access-key-info --access-key-id <AccessKeyID>

# Get CLI a session token with current creds
## Using CLI creds
## You cannot get session creds using session creds
aws sts get-session-token
## MFA
aws sts get-session-token --serial-number <arn_device> --token-code <otp_code>

권한 상승

다음 페이지에서 STS 권한을 남용하여 권한 상승하는 방법을 확인할 수 있습니다:

pageAWS - STS Privesc

사후 공격

pageAWS - STS Post Exploitation

지속성

pageAWS - IAM Persistence

참고 자료

htARTE (HackTricks AWS Red Team Expert)를 통해 제로부터 영웅이 될 때까지 AWS 해킹을 배우세요!

HackTricks를 지원하는 다른 방법:

最終更新