AWS - Lambda Persistence
Reading time: 4 minutes
tip
Impara e pratica il hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Impara e pratica il hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)
Impara e pratica il hacking Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Supporta HackTricks
- Controlla i piani di abbonamento!
- Unisciti al 💬 gruppo Discord o al gruppo telegram o seguici su Twitter 🐦 @hacktricks_live.
- Condividi trucchi di hacking inviando PR ai HackTricks e HackTricks Cloud repos su github.
Lambda
Per ulteriori informazioni controlla:
Persistenza del Lambda Layer
È possibile introdurre/backdoor un layer per eseguire codice arbitrario quando il lambda viene eseguito in modo furtivo:
AWS - Lambda Layers Persistence
Persistenza dell'Estensione Lambda
Abusando dei Lambda Layers è anche possibile abusare delle estensioni e persistere nel lambda ma anche rubare e modificare le richieste.
AWS - Abusing Lambda Extensions
Tramite politiche delle risorse
È possibile concedere accesso a diverse azioni lambda (come invocare o aggiornare il codice) a account esterni:
.png)
Versioni, Alias e Pesi
Un Lambda può avere diverse versioni (con codice diverso per ogni versione).
Poi, puoi creare diversi alias con diverse versioni del lambda e impostare pesi diversi per ciascuno.
In questo modo un attaccante potrebbe creare una versione 1 backdoored e una versione 2 con solo il codice legittimo e eseguire solo la versione 1 nel 1% delle richieste per rimanere furtivo.
.png)
Backdoor della Versione + API Gateway
- Copia il codice originale del Lambda
- Crea una nuova versione backdooring il codice originale (o solo con codice malevolo). Pubblica e deplora quella versione su $LATEST
- Chiama l'API gateway relativo al lambda per eseguire il codice
- Crea una nuova versione con il codice originale, Pubblica e deplo quella versione su $LATEST.
- Questo nasconderà il codice backdoored in una versione precedente
- Vai all'API Gateway e crea un nuovo metodo POST (o scegli un altro metodo) che eseguirà la versione backdoored del lambda:
arn:aws:lambda:us-east-1:<acc_id>:function:<func_name>:1
- Nota il finale :1 dell'arn che indica la versione della funzione (la versione 1 sarà quella backdoored in questo scenario).
- Seleziona il metodo POST creato e in Azioni seleziona
Deploy API
- Ora, quando chiami la funzione via POST la tua Backdoor sarà invocata
Attuatore Cron/Event
Il fatto che puoi far eseguire funzioni lambda quando accade qualcosa o quando passa del tempo rende lambda un modo piacevole e comune per ottenere persistenza ed evitare il rilevamento.
Ecco alcune idee per rendere la tua presenza in AWS più furtiva creando lambdas.
- Ogni volta che viene creato un nuovo utente, lambda genera una nuova chiave utente e la invia all'attaccante.
- Ogni volta che viene creata una nuova funzione, lambda concede permessi di assunzione del ruolo agli utenti compromessi.
- Ogni volta che vengono generati nuovi log di cloudtrail, cancellali/modificali
tip
Impara e pratica il hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Impara e pratica il hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)
Impara e pratica il hacking Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Supporta HackTricks
- Controlla i piani di abbonamento!
- Unisciti al 💬 gruppo Discord o al gruppo telegram o seguici su Twitter 🐦 @hacktricks_live.
- Condividi trucchi di hacking inviando PR ai HackTricks e HackTricks Cloud repos su github.