AWS - Lambda Persistence
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.
Lambda
Za više informacija pogledajte:
Lambda Layer Persistence
Moguće je introduce/backdoor a layer to execute arbitrary code kada se Lambda izvršava na prikriven način:
AWS - Lambda Layers Persistence
Lambda Extension Persistence
Zloupotrebom Lambda Layers moguće je i zloupotrebiti extensions i persist u Lambda, a takođe i steal i modify requests.
AWS - Abusing Lambda Extensions
Via resource policies
Moguće je dodeliti pristup različitim lambda actions (kao što su invoke ili update code) eksternim nalozima:
.png)
Versions, Aliases & Weights
A Lambda can have different versions (with different code each version).
Zatim, možete kreirati different aliases with different versions of the Lambda i postaviti različite weights za svaki.
Na ovaj način napadač može napraviti backdoored version 1 i version 2 with only the legit code i samo izvršavati version 1 u 1% zahteva da bi ostao neprimetan.
.png)
Version Backdoor + API Gateway
- Kopirajte originalni kod Lambda-e
- Create a new version backdooring originalni kod (ili jednostavno ubacite malicious code). Publish i deploy that version na $LATEST
- Pozovite API gateway povezan sa Lambda-om da izvršite kod
- Create a new version with the original code, Publish i deploy-ujte tu version na $LATEST.
- Ovo će sakriti backdoored kod u prethodnoj verziji
- Idite na API Gateway i create a new POST method (ili izaberite neki drugi method) koji će izvršiti backdoored verziju Lambda-e:
arn:aws:lambda:us-east-1:<acc_id>:function:<func_name>:1 - Obratite pažnju na final :1 u arn-u koji ukazuje na version funkcije (version 1 će u ovom scenariju biti backdoored).
- Izaberite kreirani POST method i u Actions izaberite
Deploy API - Sada, kada call the function via POST your Backdoor će biti invoked
Cron/Event actuator
Fakt da možete naterati lambda functions run when something happen or when some time pass čini Lambda-ove pogodnim i čestim načinom za obezbeđivanje persistence i izbegavanje detekcije.
Evo nekoliko ideja kako da vaša presence in AWS bude stealth kreiranjem Lambdas.
- Svaki put kada se kreira novi user, Lambda generiše novi user key i šalje ga napadaču.
- Svaki put kada se kreira nova role, Lambda daje assume role permissions kompromitovanim korisnicima.
- Svaki put kada se generišu novi CloudTrail logs, obrišite/izmenite ih
RCE abusing AWS_LAMBDA_EXEC_WRAPPER + Lambda Layers
Iskoristite environment variable AWS_LAMBDA_EXEC_WRAPPER da izvršite wrapper script pod kontrolom napadača pre nego što runtime/handler počne. Dostavite wrapper preko Lambda Layer-a na /opt/bin/htwrap, postavite AWS_LAMBDA_EXEC_WRAPPER=/opt/bin/htwrap, i potom invoke-ujte funkciju. Wrapper se izvršava unutar procesa funkcijskog runtime-a, nasleđuje function execution role, i na kraju exec-uje pravi runtime tako da originalni handler i dalje normalno radi.
AWS - Lambda Exec Wrapper Persistence
AWS - Lambda Function URL Public Exposure
Iskoristite Lambda asynchronous destinations zajedno sa Recursion konfiguracijom da biste naterali funkciju da se kontinuirano ponovo invoke-uje bez eksternog scheduler-a (bez EventBridge, cron, itd.). Po defaultu, Lambda terminira recursive loops, ali podešavanjem recursion config na Allow ponovo omogućavate iste. Destinations isporučuju na nivou servisa za async invokes, tako da jedan seed invoke kreira stealthy, code-free heartbeat/backdoor channel. Opcionalno throttle-ujte sa reserved concurrency da biste držali noise nizak.
AWS - Lambda Async Self Loop Persistence
AWS - Lambda Alias-Scoped Resource Policy Backdoor
Kreirajte skriveni Lambda version sa attacker logic i scope-ujte resource-based policy na tu specifičnu version (ili alias) koristeći --qualifier parametar u lambda add-permission. Dodelite samo lambda:InvokeFunction na arn:aws:lambda:REGION:ACCT:function:FN:VERSION attacker principal-u. Normalna invokacija putem imena funkcije ili primarnog alias-a ostaje nepromenjena, dok napadač može direktno invoke-ovati backdoored version ARN.
Ovo je stealthier nego izlaganje Function URL i ne menja primarni traffic alias.
AWS - Lambda Alias Version Policy Backdoor
Freezing AWS Lambda Runtimes
Napadač koji ima lambda:InvokeFunction, logs:FilterLogEvents, lambda:PutRuntimeManagementConfig, i lambda:GetRuntimeManagementConfig permissions može izmeniti runtime management configuration funkcije. Ovaj napad je posebno efikasan kada je cilj zadržati Lambda funkciju na vulnerable runtime version ili očuvati kompatibilnost sa malicious layers koji možda nisu kompatibilni sa novijim runtime-ovima.
Napadač menja runtime management configuration da bi pin-ovao runtime version:
# 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
Proverite primenjenu konfiguraciju:
aws lambda get-runtime-management-config \
--function-name $TARGET_FN \
--region us-east-1
Opcionalno: zaključajte na određenu verziju runtime-a
# 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)
Ograničite na određenu verziju runtime-a:
aws lambda put-runtime-management-config \
--function-name $TARGET_FN \
--update-runtime-on Manual \
--runtime-version-arn $RUNTIME_ARN \
--region us-east-1
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

