2.9 KiB
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
- Kopirajte originalni kod Lambde
- Kreirajte novu verziju sa backdoor-om originalnog koda (ili samo sa zlonamernim kodom). Objavite i implementirajte tu verziju na $LATEST
- Pozovite API gateway povezan sa lambdom da izvrši kod
- Kreirajte novu verziju sa originalnim kodom, objavite i implementirajte tu verziju na $LATEST.
- Ovo će sakriti backdoored kod u prethodnoj verziji
- 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:<acc_id>:function:<func_name>:1 - Imajte na umu konačno :1 u arn koji označava verziju funkcije (verzija 1 će biti backdoored u ovom scenariju).
- Izaberite kreiranu POST metodu i u Akcijama izaberite
Deploy API - 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}}