AWS - IAM, Identity Center & SSO Enum

HackTricks рдХрд╛ рд╕рдорд░реНрдерди рдХрд░реЗрдВ

IAM

рдЖрдк IAM рдХрд╛ рд╡рд┐рд╡рд░рдг рдпрд╣рд╛рдБ рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВ:

Enumeration

рдореБрдЦреНрдп рдЕрдиреБрдорддрд┐рдпрд╛рдБ рдЖрд╡рд╢реНрдпрдХ рд╣реИрдВ:

  • iam:ListPolicies, iam:GetPolicy рдФрд░ iam:GetPolicyVersion

  • iam:ListRoles

  • iam:ListUsers

  • iam:ListGroups

  • iam:ListGroupsForUser

  • iam:ListAttachedUserPolicies

  • iam:ListAttachedRolePolicies

  • iam:ListAttachedGroupPolicies

  • iam:ListUserPolicies рдФрд░ iam:GetUserPolicy

  • iam:ListGroupPolicies рдФрд░ iam:GetGroupPolicy

  • iam:ListRolePolicies рдФрд░ iam:GetRolePolicy

# All IAMs
## Retrieves  information about all IAM users, groups, roles, and policies
## in your Amazon Web Services account, including their relationships  to
## one another. Use this operation to obtain a snapshot of the configura-
## tion of IAM permissions (users, groups, roles, and  policies)  in  your
## account.
aws iam get-account-authorization-details

# List users
aws iam get-user #Get current user information
aws iam list-users
aws iam list-ssh-public-keys #User keys for CodeCommit
aws iam get-ssh-public-key --user-name <username> --ssh-public-key-id <id> --encoding SSH #Get public key with metadata
aws iam list-service-specific-credentials #Get special permissions of the IAM user over specific services
aws iam get-user --user-name <username> #Get metadata of user, included permissions boundaries
aws iam list-access-keys #List created access keys
## inline policies
aws iam list-user-policies --user-name <username> #Get inline policies of the user
aws iam get-user-policy --user-name <username> --policy-name <policyname> #Get inline policy details
## attached policies
aws iam list-attached-user-policies --user-name <username> #Get policies of user, it doesn't get inline policies

# List groups
aws iam list-groups #Get groups
aws iam list-groups-for-user --user-name <username> #Get groups of a user
aws iam get-group --group-name <name> #Get group name info
## inline policies
aws iam list-group-policies --group-name <username> #Get inline policies of the group
aws iam get-group-policy --group-name <username> --policy-name <policyname> #Get an inline policy info
## attached policies
aws iam list-attached-group-policies --group-name <name> #Get policies of group, it doesn't get inline policies

# List roles
aws iam list-roles #Get roles
aws iam get-role --role-name <role-name> #Get role
## inline policies
aws iam list-role-policies --role-name <name> #Get inline policies of a role
aws iam get-role-policy --role-name <name> --policy-name <name> #Get inline policy details
## attached policies
aws iam list-attached-role-policies --role-name <role-name> #Get policies of role, it doesn't get inline policies

# List policies
aws iam list-policies [--only-attached] [--scope Local]
aws iam list-policies-granting-service-access --arn <identity> --service-namespaces <svc> # Get list of policies that give access to the user to the service
## Get policy content
aws iam get-policy --policy-arn <policy_arn>
aws iam list-policy-versions --policy-arn <arn>
aws iam get-policy-version --policy-arn <arn:aws:iam::975426262029:policy/list_apigateways> --version-id <VERSION_X>

# Enumerate providers
aws iam list-saml-providers
aws iam get-saml-provider --saml-provider-arn <ARN>
aws iam list-open-id-connect-providers
aws iam get-open-id-connect-provider --open-id-connect-provider-arn <ARN>

# Password Policy
aws iam get-account-password-policy

# MFA
aws iam list-mfa-devices
aws iam list-virtual-mfa-devices

Permissions Brute Force

рдпрджрд┐ рдЖрдк рдЕрдкрдиреА рдЕрдиреБрдорддрд┐рдпреЛрдВ рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ рд▓реЗрдХрд┐рди рдЖрдкрдХреЗ рдкрд╛рд╕ IAM рдХреЛ рдХреНрд╡реЗрд░реА рдХрд░рдиреЗ рдХрд╛ рдПрдХреНрд╕реЗрд╕ рдирд╣реАрдВ рд╣реИ, рддреЛ рдЖрдк рд╣рдореЗрд╢рд╛ рдЙрдиреНрд╣реЗрдВ рдмреНрд░реВрдЯ-рдлреЛрд░реНрд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

bf-aws-permissions

рдЯреВрд▓ bf-aws-permissions рдмрд╕ рдПрдХ рдмреИрд╢ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╣реИ рдЬреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рднреА list*, describe*, get* рдХреНрд░рд┐рдпрд╛рдПрдБ рдЪрд▓рд╛рдПрдЧреА рдЬреЛ рдЗрд╕реЗ aws cli рд╕рд╣рд╛рдпрддрд╛ рд╕рдВрджреЗрд╢реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдорд┐рд▓ рд╕рдХрддреА рд╣реИрдВ рдФрд░ рд╕рдлрд▓ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд▓реМрдЯрд╛рдПрдЧреАред

# Bruteforce permissions
bash bf-aws-permissions.sh -p default > /tmp/bf-permissions-verbose.txt

bf-aws-perms-simulate

рдЙрдкрдХрд░рдг bf-aws-perms-simulate рдЖрдкрдХреА рд╡рд░реНрддрдорд╛рди рдЕрдиреБрдорддрд┐ (рдпрд╛ рдЕрдиреНрдп рдкреНрд░рд┐рдВрд╕рд┐рдкрд▓реЛрдВ рдХреА) рдХреЛ рдЦреЛрдЬ рд╕рдХрддрд╛ рд╣реИ рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдЕрдиреБрдорддрд┐ iam:SimulatePrincipalPolicy рд╣реИред

# Ask for permissions
python3 aws_permissions_checker.py --profile <AWS_PROFILE> [--arn <USER_ARN>]

Perms2ManagedPolicies

рдпрджрд┐ рдЖрдкрдиреЗ рдХреБрдЫ рдЕрдиреБрдорддрд┐рдпрд╛рдБ рдкрд╛рдИ рд╣реИрдВ рдЬреЛ рдЖрдкрдХреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдкрд╛рд╕ рд╣реИрдВ, рдФрд░ рдЖрдк рд╕реЛрдЪрддреЗ рд╣реИрдВ рдХрд┐ рдпреЗ рдкреНрд░рдмрдВрдзрд┐рдд AWS рднреВрдорд┐рдХрд╛ рджреНрд╡рд╛рд░рд╛ рджреА рдЬрд╛ рд░рд╣реА рд╣реИрдВ (рдФрд░ рдХрд┐рд╕реА рдХрд╕реНрдЯрдо рджреНрд╡рд╛рд░рд╛ рдирд╣реАрдВ)ред рдЖрдк рдЯреВрд▓ aws-Perms2ManagedRoles рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдпрд╣ рдЬрд╛рдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдХреМрди рд╕реА AWS рдкреНрд░рдмрдВрдзрд┐рдд рднреВрдорд┐рдХрд╛рдПрдБ рдЙрди рдЕрдиреБрдорддрд┐рдпреЛрдВ рдХреЛ рдкреНрд░рджрд╛рди рдХрд░рддреА рд╣реИрдВ рдЬреЛ рдЖрдкрдиреЗ рдЦреЛрдЬреА рд╣реИрдВред

# Run example with my profile
python3 aws-Perms2ManagedPolicies.py --profile myadmin --permissions-file example-permissions.txt

рдпрджрд┐ рдЖрдк рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдЙрди рд╕реЗрд╡рд╛рдУрдВ рдкрд░ рдЕрдиреБрдорддрд┐рдпрд╛рдБ рд╣реИрдВ рдЬреЛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХреА рдЬрд╛рддреА рд╣реИрдВ, рддреЛ рдпрд╣ "рдЬрд╛рдирдирд╛" рд╕рдВрднрд╡ рд╣реИ рдХрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ AWS рдкреНрд░рдмрдВрдзрд┐рдд рднреВрдорд┐рдХрд╛ рджреНрд╡рд╛рд░рд╛ рджреА рдЧрдИ рдЕрдиреБрдорддрд┐рдпрд╛рдБ рд╣реИрдВред

Cloudtrail2IAM

CloudTrail2IAM рдПрдХ Python рдЙрдкрдХрд░рдг рд╣реИ рдЬреЛ AWS CloudTrail рд▓реЙрдЧ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рддрд╛ рд╣реИ рддрд╛рдХрд┐ рд╕рднреА рдпрд╛ рдХреЗрд╡рд▓ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдпрд╛ рднреВрдорд┐рдХрд╛ рджреНрд╡рд╛рд░рд╛ рдХрд┐рдП рдЧрдП рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдирд┐рдХрд╛рд▓рд╛ рдФрд░ рд╕рдВрдХреНрд╖реЗрдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗред рдпрд╣ рдЙрдкрдХрд░рдг рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдмрдХреЗрдЯ рд╕реЗ рд╣рд░ cloudtrail рд▓реЙрдЧ рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░реЗрдЧрд╛ред

git clone https://github.com/carlospolop/Cloudtrail2IAM
cd Cloudtrail2IAM
pip install -r requirements.txt
python3 cloudtrail2IAM.py --prefix PREFIX --bucket_name BUCKET_NAME --profile PROFILE [--filter-name FILTER_NAME] [--threads THREADS]

рдпрджрд┐ рдЖрдк .tfstate (Terraform рд╕реНрдерд┐рддрд┐ рдлрд╝рд╛рдЗрд▓реЗрдВ) рдпрд╛ CloudFormation рдлрд╝рд╛рдЗрд▓реЗрдВ (рдпреЗ рдЖрдорддреМрд░ рдкрд░ yaml рдлрд╝рд╛рдЗрд▓реЗрдВ рд╣реЛрддреА рд╣реИрдВ рдЬреЛ cf-templates рдЙрдкрд╕рд░реНрдЧ рдХреЗ рд╕рд╛рде рдПрдХ рдмрдХреЗрдЯ рдХреЗ рдЕрдВрджрд░ рд╕реНрдерд┐рдд рд╣реЛрддреА рд╣реИрдВ) рдкрд╛рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдЙрдиреНрд╣реЗрдВ aws рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдЦреЛрдЬрдиреЗ рдФрд░ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рднреА рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХрд┐рд╕реЗ рдХреМрди рд╕реА рдЕрдиреБрдорддрд┐рдпрд╛рдБ рджреА рдЧрдИ рд╣реИрдВред

enumerate-iam

рдЯреВрд▓ https://github.com/andresriancho/enumerate-iam рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдкрд╣рд▓реЗ рд╕рднреА API AWS рдПрдВрдбрдкреЙрдЗрдВрдЯреНрд╕ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЬрд┐рдирдореЗрдВ рд╕реЗ рд╕реНрдХреНрд░рд┐рдкреНрдЯ generate_bruteforce_tests.py рд╕рднреА "list_", "describe_", рдФрд░ "get_" рдПрдВрдбрдкреЙрдЗрдВрдЯреНрд╕ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдЧреАред рдФрд░ рдЕрдВрддрддрдГ, рдпрд╣ рджрд┐рдП рдЧрдП рдХреНрд░реЗрдбреЗрдВрд╢рд┐рдпрд▓реНрд╕ рдХреЗ рд╕рд╛рде рдЙрдиреНрд╣реЗрдВ рдПрдХреНрд╕реЗрд╕ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдЧреА рдФрд░ рдпрд╣ рдмрддрд╛рдПрдЧреА рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рд╕рдлрд▓ рд░рд╣рд╛ред

(рдореЗрд░реЗ рдЕрдиреБрднрд╡ рдореЗрдВ, рдЯреВрд▓ рдХрд┐рд╕реА рдмрд┐рдВрджреБ рдкрд░ рд▓рдЯрдХ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕ рдлрд┐рдХреНрд╕ рдХреЛ рджреЗрдЦреЗрдВ рдЗрд╕реЗ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рдпрд╛рд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП)ред

рдореЗрд░реЗ рдЕрдиреБрднрд╡ рдореЗрдВ, рдпрд╣ рдЯреВрд▓ рдкрд┐рдЫрд▓реЗ рд╡рд╛рд▓реЗ рдХреА рддрд░рд╣ рд╣реИ рд▓реЗрдХрд┐рди рдЦрд░рд╛рдм рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ рдФрд░ рдХрдо рдЕрдиреБрдорддрд┐рдпреЛрдВ рдХреА рдЬрд╛рдВрдЪ рдХрд░ рд░рд╣рд╛ рд╣реИред

# Install tool
git clone git@github.com:andresriancho/enumerate-iam.git
cd enumerate-iam/
pip install -r requirements.txt

# Download API endpoints
cd enumerate_iam/
git clone https://github.com/aws/aws-sdk-js.git
python3 generate_bruteforce_tests.py
rm -rf aws-sdk-js
cd ..

# Enumerate permissions
python3 enumerate-iam.py --access-key ACCESS_KEY --secret-key SECRET_KEY [--session-token SESSION_TOKEN] [--region REGION]

weirdAAL

рдЖрдк рдЗрд╕ рдЙрдкрдХрд░рдг weirdAAL рдХрд╛ рднреА рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рдЙрдкрдХрд░рдг рдХрдИ рд╕рд╛рдорд╛рдиреНрдп рд╕реЗрд╡рд╛рдУрдВ рдкрд░ рдХрдИ рд╕рд╛рдорд╛рдиреНрдп рд╕рдВрдЪрд╛рд▓рди рдХреА рдЬрд╛рдВрдЪ рдХрд░реЗрдЧрд╛ (рдХреБрдЫ enumeration рдЕрдиреБрдорддрд┐рдпреЛрдВ рдФрд░ рдХреБрдЫ privesc рдЕрдиреБрдорддрд┐рдпреЛрдВ рдХреА рднреА рдЬрд╛рдВрдЪ рдХрд░реЗрдЧрд╛)ред рд▓реЗрдХрд┐рди рдпрд╣ рдХреЗрд╡рд▓ рдХреЛрдбрд┐рдд рдЬрд╛рдВрдЪреЛрдВ рдХреА рдЬрд╛рдВрдЪ рдХрд░реЗрдЧрд╛ (рдЕрдзрд┐рдХ рдЪреАрдЬреЛрдВ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХрд╛ рдПрдХрдорд╛рддреНрд░ рддрд░реАрдХрд╛ рдЕрдзрд┐рдХ рдкрд░реАрдХреНрд╖рдг рдХреЛрдб рдХрд░рдирд╛ рд╣реИ)ред

# Install
git clone https://github.com/carnal0wnage/weirdAAL.git
cd weirdAAL
python3 -m venv weirdAAL
source weirdAAL/bin/activate
pip3 install -r requirements.txt

# Create a .env file with aws credentials such as
[default]
aws_access_key_id = <insert key id>
aws_secret_access_key = <insert secret key>

# Setup DB
python3 create_dbs.py

# Invoke it
python3 weirdAAL.py -m ec2_describe_instances -t ec2test # Just some ec2 tests
python3 weirdAAL.py -m recon_all -t MyTarget # Check all permissions
# You will see output such as:
# [+] elbv2 Actions allowed are [+]
# ['DescribeLoadBalancers', 'DescribeAccountLimits', 'DescribeTargetGroups']

BF рдЕрдиреБрдорддрд┐рдпреЛрдВ рдХреЛ рдордЬрдмреВрдд рдХрд░рдиреЗ рдХреЗ рдЙрдкрдХрд░рдг

# Export env variables
./index.js --console=text --config ./config.js --json /tmp/out-cloudsploit.json

# Filter results removing unknown
jq 'map(select(.status | contains("UNKNOWN") | not))' /tmp/out-cloudsploit.json | jq 'map(select(.resource | contains("N/A") | not))' > /tmp/out-cloudsploit-filt.json

# Get services by regions
jq 'group_by(.region) | map({(.[0].region): ([map((.resource | split(":"))[2]) | unique])})' ~/Desktop/pentests/cere/greybox/core-dev-dev-cloudsploit-filtered.json

<YourTool>

рдкрд┐рдЫрд▓реЗ рдХрд┐рд╕реА рднреА рдЙрдкрдХрд░рдг рдореЗрдВ рд╕рднреА рдЕрдиреБрдорддрд┐рдпреЛрдВ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрджрд┐ рдЖрдк рдПрдХ рдмреЗрд╣рддрд░ рдЙрдкрдХрд░рдг рдЬрд╛рдирддреЗ рд╣реИрдВ рддреЛ PR рднреЗрдЬреЗрдВ!

рдЕрдирдзрд┐рдХреГрдд рдкрд╣реБрдВрдЪ

рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рд╡реГрджреНрдзрд┐

рдЕрдЧрд▓реА рдкреГрд╖реНрда рдкрд░ рдЖрдк IAM рдЕрдиреБрдорддрд┐рдпреЛрдВ рдХрд╛ рджреБрд░реБрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рдмрдврд╝рд╛рдиреЗ рдХрд╛ рддрд░реАрдХрд╛ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ:

IAM рдкреЛрд╕реНрдЯ рд╢реЛрд╖рдг

IAM рд╕реНрдерд┐рд░рддрд╛

IAM рдкрд╣рдЪрд╛рди рдХреЗрдВрджреНрд░

рдЖрдк IAM рдкрд╣рдЪрд╛рди рдХреЗрдВрджреНрд░ рдХрд╛ рд╡рд┐рд╡рд░рдг рдпрд╣рд╛рдБ рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВ:

CLI рдХреЗ рд╕рд╛рде SSO рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВ

# Connect with sso via CLI aws configure sso
aws configure sso

[profile profile_name]
sso_start_url = https://subdomain.awsapps.com/start/
sso_account_id = <account_numbre>
sso_role_name = AdministratorAccess
sso_region = us-east-1

Enumeration

Identity Center рдХреЗ рдореБрдЦреНрдп рддрддреНрд╡ рд╣реИрдВ:

  • рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдФрд░ рд╕рдореВрд╣

  • рдЕрдиреБрдорддрд┐ рд╕реЗрдЯ: рдиреАрддрд┐рдпрд╛рдБ рд╕рдВрд▓рдЧреНрди рд╣реИрдВ

  • AWS рдЦрд╛рддреЗ

рдлрд┐рд░, рд╕рдВрдмрдВрдз рдмрдирд╛рдП рдЬрд╛рддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛/рд╕рдореВрд╣реЛрдВ рдХреЗ рдкрд╛рд╕ AWS рдЦрд╛рддреЗ рдкрд░ рдЕрдиреБрдорддрд┐ рд╕реЗрдЯ рд╣реЛред

рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдПрдХ рдЕрдиреБрдорддрд┐ рд╕реЗрдЯ рдкрд░ рдиреАрддрд┐рдпрд╛рдБ рд╕рдВрд▓рдЧреНрди рдХрд░рдиреЗ рдХреЗ 3 рддрд░реАрдХреЗ рд╣реИрдВред AWS рдкреНрд░рдмрдВрдзрд┐рдд рдиреАрддрд┐рдпреЛрдВ рдХреЛ рд╕рдВрд▓рдЧреНрди рдХрд░рдирд╛, рдЧреНрд░рд╛рд╣рдХ рдкреНрд░рдмрдВрдзрд┐рдд рдиреАрддрд┐рдпрд╛рдБ (рдЗрди рдиреАрддрд┐рдпреЛрдВ рдХреЛ рд╕рднреА рдЦрд╛рддреЛрдВ рдореЗрдВ рдмрдирд╛рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдЬрд┐рди рдкрд░ рдЕрдиреБрдорддрд┐ рд╕реЗрдЯ рдкреНрд░рднрд╛рд╡ рдбрд╛рд▓ рд░рд╣рд╛ рд╣реИ), рдФрд░ рдЗрдирд▓рд╛рдЗрди рдиреАрддрд┐рдпрд╛рдБ (рдпрд╣рд╛рдБ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХреА рдЧрдИ рд╣реИрдВ)ред

# Check if IAM Identity Center is used
aws sso-admin list-instances

# Get Permissions sets. These are the policies that can be assigned
aws sso-admin list-permission-sets --instance-arn <instance-arn>
aws sso-admin describe-permission-set --instance-arn <instance-arn> --permission-set-arn <perm-set-arn>

## Get managed policies of a permission set
aws sso-admin list-managed-policies-in-permission-set --instance-arn <instance-arn> --permission-set-arn <perm-set-arn>
## Get inline policies of a permission set
aws sso-admin get-inline-policy-for-permission-set --instance-arn <instance-arn> --permission-set-arn <perm-set-arn>
## Get customer managed policies of a permission set
aws sso-admin list-customer-managed-policy-references-in-permission-set --instance-arn <instance-arn> --permission-set-arn <perm-set-arn>
## Get boundaries of a permission set
aws sso-admin get-permissions-boundary-for-permission-set --instance-arn <instance-arn> --permission-set-arn <perm-set-arn>

## List accounts a permission set is affecting
aws sso-admin list-accounts-for-provisioned-permission-set --instance-arn <instance-arn> --permission-set-arn <perm-set-arn>
## List principals given a permission set in an account
aws sso-admin list-account-assignments --instance-arn <instance-arn> --permission-set-arn <perm-set-arn> --account-id <account_id>

# Get permissions sets affecting an account
aws sso-admin list-permission-sets-provisioned-to-account --instance-arn <instance-arn> --account-id <account_id>

# List users & groups from the identity store
aws identitystore list-users --identity-store-id <store-id>
aws identitystore list-groups --identity-store-id <store-id>
## Get members of groups
aws identitystore list-group-memberships --identity-store-id <store-id> --group-id <group-id>
## Get memberships or a user or a group
aws identitystore list-group-memberships-for-member --identity-store-id <store-id> --member-id <member-id>

Local Enumeration

рдпрд╣ рд╕рдВрднрд╡ рд╣реИ рдХрд┐ рдлрд╝реЛрд▓реНрдбрд░ $HOME/.aws рдХреЗ рдЕрдВрджрд░ рдлрд╝рд╛рдЗрд▓ config рдмрдирд╛рдИ рдЬрд╛рдП рддрд╛рдХрд┐ рдЙрди рдкреНрд░реЛрдлрд╛рдЗрд▓ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗ рдЬреЛ SSO рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реБрд▓рдн рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:

[default]
region = us-west-2
output = json

[profile my-sso-profile]
sso_start_url = https://my-sso-portal.awsapps.com/start
sso_region = us-west-2
sso_account_id = 123456789012
sso_role_name = MySSORole
region = us-west-2
output = json

[profile dependent-profile]
role_arn = arn:aws:iam::<acc-id>:role/ReadOnlyRole
source_profile = Hacktricks-Admin

рдпрд╣ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрдорд╛рдВрдб рдХреЗ рд╕рд╛рде рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:

# Login in ms-sso-profile
aws sso login --profile my-sso-profile
# Use dependent-profile
aws s3 ls --profile dependent-profile

рдЬрдм SSO рд╕реЗ рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдХреБрдЫ рдЬрд╛рдирдХрд╛рд░реА рддрдХ рдкрд╣реБрдБрдЪрдиреЗ рдХреЗ рд▓рд┐рдП, рддреЛ рдХреНрд░реЗрдбреЗрдВрд╢рд┐рдпрд▓реНрд╕ рдПрдХ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдХреИрд╢ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ рдЬреЛ рдлрд╝реЛрд▓реНрдбрд░ $HOME/.aws/sso/cache рдХреЗ рдЕрдВрджрд░ рд╣реЛрддреА рд╣реИред рдЗрд╕рд▓рд┐рдП рдЗрдиреНрд╣реЗрдВ рд╡рд╣рд╛рдБ рд╕реЗ рдкрдврд╝рд╛ рдФрд░ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЕрдзрд┐рдХ рдХреНрд░реЗрдбреЗрдВрд╢рд┐рдпрд▓реНрд╕ рдлрд╝реЛрд▓реНрдбрд░ $HOME/.aws/cli/cache рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рдХреИрд╢ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рддрдм рдЙрдкрдпреЛрдЧ рдХреА рдЬрд╛рддреА рд╣реИ рдЬрдм рдЖрдк AWS CLI рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдЬреЛ IAM рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреНрд░реЗрдбреЗрдВрд╢рд┐рдпрд▓реНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреА рд╣реИрдВ рдпрд╛ IAM рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд░реЛрд▓реНрд╕ рдХреЛ рдЕрд╕реБрдо рдХрд░рддреА рд╣реИрдВ (рдмрд┐рдирд╛ SSO рдХреЗ)ред рдХреЙрдиреНрдлрд╝рд┐рдЧ рдЙрджрд╛рд╣рд░рдг:

[profile crossaccountrole]
role_arn = arn:aws:iam::234567890123:role/SomeRole
source_profile = default
mfa_serial = arn:aws:iam::123456789012:mfa/saanvi
external_id = 123456

рдЕрдирдзрд┐рдХреГрдд рдкрд╣реБрдБрдЪ

рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рд╡реГрджреНрдзрд┐

рдкреЛрд╕реНрдЯ рд╢реЛрд╖рдг

рд╕реНрдерд┐рд░рддрд╛

рдПрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдмрдирд╛рдПрдВ рдФрд░ рдЙрд╕реЗ рдЕрдиреБрдорддрд┐рдпрд╛рдБ рд╕реМрдВрдкреЗрдВ

# Create user identitystore:CreateUser
aws identitystore create-user --identity-store-id <store-id> --user-name privesc --display-name privesc --emails Value=sdkabflvwsljyclpma@tmmbt.net,Type=Work,Primary=True --name Formatted=privesc,FamilyName=privesc,GivenName=privesc
## After creating it try to login in the console using the selected username, you will receive an email with the code and then you will be able to select a password
  • рдПрдХ рд╕рдореВрд╣ рдмрдирд╛рдПрдВ рдФрд░ рдЗрд╕реЗ рдЕрдиреБрдорддрд┐рдпрд╛рдБ рд╕реМрдВрдкреЗрдВ рдФрд░ рдЙрд╕ рдкрд░ рдПрдХ рдирд┐рдпрдВрддреНрд░рд┐рдд рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕реЗрдЯ рдХрд░реЗрдВ

  • рдПрдХ рдирд┐рдпрдВрддреНрд░рд┐рдд рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдпрд╛ рд╕рдореВрд╣ рдХреЛ рдЕрддрд┐рд░рд┐рдХреНрдд рдЕрдиреБрдорддрд┐рдпрд╛рдБ рджреЗрдВ

  • рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдХреЗрд╡рд▓ рдкреНрд░рдмрдВрдзрди рдЦрд╛рддреЗ рдХреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рдкрд╛рд╕ IAM рдкрд╣рдЪрд╛рди рдХреЗрдВрджреНрд░ рддрдХ рдкрд╣реБрдБрдЪрдиреЗ рдФрд░ рдЙрд╕реЗ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рд╣реЛрдЧреАред

рд╣рд╛рд▓рд╛рдВрдХрд┐, рдбреЗрд▓реАрдЧреЗрдЯ рдкреНрд░рд╢рд╛рд╕рдХ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдХ рдЕрд▓рдЧ рдЦрд╛рддреЗ рдХреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдЗрд╕реЗ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдирд╛ рд╕рдВрднрд╡ рд╣реИред рдЙрдирдХреЗ рдкрд╛рд╕ рдмрд┐рд▓реНрдХреБрд▓ рд╡рд╣реА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рд╣реЛрдЧреА, рд▓реЗрдХрд┐рди рд╡реЗ рдкреНрд░рдмрдВрдзрди рдЧрддрд┐рд╡рд┐рдзрд┐рдпрд╛рдБ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдВрдЧреЗред

HackTricks рдХрд╛ рд╕рдорд░реНрдерди рдХрд░реЗрдВ

Last updated