AWS - Lambda Persistence
Tip
Leer & oefen AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Leer & oefen GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Leer & oefen Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Ondersteun HackTricks
- Kyk na die subscription plans!
- Sluit aan by die 💬 Discord group of die telegram group of volg ons op Twitter 🐦 @hacktricks_live.
- Deel hacking tricks deur PRs in te dien by die HackTricks en HackTricks Cloud github repos.
Lambda
Vir meer inligting, sien:
Lambda Layer Persistence
Dit is moontlik om introduce/backdoor a layer to execute arbitrary code wanneer die lambda op ’n stealthy wyse uitgevoer word:
AWS - Lambda Layers Persistence
Lambda Extension Persistence
Deur Lambda Layers te abuse is dit ook moontlik om extensions te misbruik en in die lambda te persist, en ook requests te steel en te wysig.
AWS - Abusing Lambda Extensions
Via resource policies
Dit is moontlik om toegang tot verskillende lambda-aksies (soos invoke of update code) aan eksterne rekeninge te verleen:
.png)
Versions, Aliases & Weights
A Lambda kan different versions hê (met verskillende code per version).
Dan kan jy different aliases with different versions van die lambda skep en verskillende weights aan elkeen toewys.
Op hierdie manier kan ’n aanvaller ’n backdoored version 1 skep en ’n version 2 with only the legit code, en only execute the version 1 in 1% van die requests om stealth te bly.
.png)
Version Backdoor + API Gateway
- Copy the original code of the Lambda
- Create a new version backdooring the original code (or just with malicious code). Publish and deploy that version to $LATEST
- Call the API gateway related to the lambda to execute the code
- Create a new version with the original code, Publish and deploy that version to $LATEST.
- This will hide the backdoored code in a previous version
- Go to the API Gateway and create a new POST method (or choose any other method) that will execute the backdoored version of the lambda:
arn:aws:lambda:us-east-1:<acc_id>:function:<func_name>:1 - Note the final :1 of the arn indicating the version of the function (version 1 will be the backdoored one in this scenario).
- Select the POST method created and in Actions select
Deploy API - Now, when you call the function via POST your Backdoor will be invoked
Cron/Event actuator
Die feit dat jy lambda functions run when something happen or when some time pass maak lambda ’n gewilde manier om persistence te verkry en detectie te vermy.
Hier is ’n paar idees om jou presence in AWS more stealth by creating lambdas.
- Elke keer as ’n nuwe user geskep word, genereer die lambda ’n nuwe user key en stuur dit aan die attacker.
- Elke keer as ’n nuwe role geskep word, gee die lambda assume role permissies aan gecompromitteerde users.
- Elke keer as nuwe cloudtrail logs gegenereer word, delete/alter hulle
RCE abusing AWS_LAMBDA_EXEC_WRAPPER + Lambda Layers
Misbruik die omgewingveranderlike AWS_LAMBDA_EXEC_WRAPPER om ’n attacker-controlled wrapper script uit te voer voordat die runtime/handler begin. Plaas die wrapper via ’n Lambda Layer by /opt/bin/htwrap, stel AWS_LAMBDA_EXEC_WRAPPER=/opt/bin/htwrap, en roep dan die funksie aan. Die wrapper hardloop binne die funksie se runtime-proses, erf die function execution role, en uiteindelik execs die werklike runtime sodat die oorspronklike handler steeds normaal uitvoer.
AWS - Lambda Exec Wrapper Persistence
AWS - Lambda Function URL Public Exposure
Misbruik Lambda asynchronous destinations saam met die Recursion configuration om ’n funksie aanhoudend weer self te laat invoke sonder ’n eksterne scheduler (geen EventBridge, cron, ens.). By verstek beëindig Lambda recursive loops, maar deur die recursion config op Allow te sit word dit weer geaktiveer. Destinations deliver op die service-side vir async invokes, so ’n enkele seed invoke skep ’n stealthy, code-free heartbeat/backdoor channel. Opsioneel kan jy met reserved concurrency throttle om geraas laag te hou.
AWS - Lambda Async Self Loop Persistence
AWS - Lambda Alias-Scoped Resource Policy Backdoor
Skep ’n verborge Lambda version met attacker logic en scope ’n resource-based policy na daardie spesifieke version (of alias) deur die --qualifier parameter in lambda add-permission te gebruik. Gee slegs lambda:InvokeFunction op arn:aws:lambda:REGION:ACCT:function:FN:VERSION aan ’n attacker principal. Normale invocations via die function name of primêre alias bly onaangeraak, terwyl die attacker direk die backdoored version ARN kan invoke.
Dit is stealthier as om ’n Function URL bloot te stel en verander nie die primêre traffic alias nie.
AWS - Lambda Alias Version Policy Backdoor
Freezing AWS Lambda Runtimes
’n Attacker wat lambda:InvokeFunction, logs:FilterLogEvents, lambda:PutRuntimeManagementConfig, en lambda:GetRuntimeManagementConfig permissies het, kan ’n funksie se runtime management configuration wysig. Hierdie aanval is veral effektief wanneer die doel is om ’n Lambda-funksie op ’n kwetsbare runtime version te hou of om versoenbaarheid met malicious layers te bewaar wat dalk onversoenbaar is met nuwer runtimes.
Die attacker wysig die runtime management configuration om die runtime version te pin:
# Invoke the function to generate runtime logs
aws lambda invoke \
--function-name $TARGET_FN \
--payload '{}' \
--region us-east-1 /tmp/ping.json
sleep 5
# Freeze automatic runtime updates on function update
aws lambda put-runtime-management-config \
--function-name $TARGET_FN \
--update-runtime-on FunctionUpdate \
--region us-east-1
Verifieer die toegepaste konfigurasie:
aws lambda get-runtime-management-config \
--function-name $TARGET_FN \
--region us-east-1
Opsioneel: Speld vas aan ’n spesifieke runtime-weergawe
# Extract Runtime Version ARN from INIT_START logs
RUNTIME_ARN=$(aws logs filter-log-events \
--log-group-name /aws/lambda/$TARGET_FN \
--filter-pattern "INIT_START" \
--query 'events[0].message' \
--output text | grep -o 'Runtime Version ARN: [^,]*' | cut -d' ' -f4)
Vastmaak aan ’n spesifieke runtime-weergawe:
aws lambda put-runtime-management-config \
--function-name $TARGET_FN \
--update-runtime-on Manual \
--runtime-version-arn $RUNTIME_ARN \
--region us-east-1
Tip
Leer & oefen AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Leer & oefen GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Leer & oefen Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Ondersteun HackTricks
- Kyk na die subscription plans!
- Sluit aan by die 💬 Discord group of die telegram group of volg ons op Twitter 🐦 @hacktricks_live.
- Deel hacking tricks deur PRs in te dien by die HackTricks en HackTricks Cloud github repos.
HackTricks Cloud

