# AWS - Lambda Persistence {{#include ../../../../banners/hacktricks-training.md}} ## Lambda Za više informacija proverite: {{#ref}} ../../aws-services/aws-lambda-enum.md {{#endref}} ### Lambda Layer Persistence Moguće je **uvesti/otvoriti backdoor u layer za izvršavanje proizvoljnog koda** kada se lambda izvršava na diskretan način: {{#ref}} aws-lambda-layers-persistence.md {{#endref}} ### Lambda Extension Persistence Zloupotrebom Lambda Layers takođe je moguće zloupotrebiti ekstenzije i persistirati u lambdi, ali i ukrasti i izmeniti zahteve. {{#ref}} aws-abusing-lambda-extensions.md {{#endref}} ### Via resource policies Moguće je dodeliti pristup različitim lambda akcijama (kao što su pozivanje ili ažuriranje koda) spoljnim računima:
### Versions, Aliases & Weights Lambda može imati **različite verzije** (sa različitim kodom za svaku verziju).\ Zatim, možete kreirati **različite alias-e sa različitim verzijama** lambde i postaviti različite težine za svaku.\ Na ovaj način napadač bi mogao da kreira **backdoored verziju 1** i **verziju 2 sa samo legitimnim kodom** i **izvršava samo verziju 1 u 1%** zahteva kako bi ostao diskretan.
### Version Backdoor + API Gateway 1. Kopirajte originalni kod Lambde 2. **Kreirajte novu verziju sa backdoor-om** originalnog koda (ili samo sa zlonamernim kodom). Objavite i **implementirajte tu verziju** na $LATEST 1. Pozovite API gateway povezan sa lambdom da izvrši kod 3. **Kreirajte novu verziju sa originalnim kodom**, objavite i implementirajte tu **verziju** na $LATEST. 1. Ovo će sakriti backdoored kod u prethodnoj verziji 4. Idite na API Gateway i **kreirajte novu POST metodu** (ili izaberite bilo koju drugu metodu) koja će izvršiti backdoored verziju lambde: `arn:aws:lambda:us-east-1::function::1` 1. Imajte na umu konačno :1 u arn **koji označava verziju funkcije** (verzija 1 će biti backdoored u ovom scenariju). 5. Izaberite kreiranu POST metodu i u Akcijama izaberite **`Deploy API`** 6. Sada, kada **pozovete funkciju putem POST-a, vaš Backdoor** će biti aktiviran ### Cron/Event actuator Činjenica da možete **pokrenuti lambda funkcije kada se nešto dogodi ili kada prođe određeno vreme** čini lambdu lepim i uobičajenim načinom za postizanje persistencije i izbegavanje otkrivanja.\ Evo nekoliko ideja kako da učinite svoju **prisutnost u AWS-u diskretnijom kreiranjem lambdi**. - Svaki put kada se kreira novi korisnik, lambda generiše novi korisnički ključ i šalje ga napadaču. - Svaki put kada se kreira nova uloga, lambda dodeljuje dozvole za preuzimanje uloge kompromitovanim korisnicima. - Svaki put kada se generišu novi cloudtrail logovi, obrišite/izmenite ih {{#include ../../../../banners/hacktricks-training.md}}