3.0 KiB
AWS - Lambda Persistence
{{#include ../../../../banners/hacktricks-training.md}}
Lambda
Per ulteriori informazioni controlla:
{{#ref}} ../../aws-services/aws-lambda-enum.md {{#endref}}
Persistenza del Lambda Layer
È possibile introdurre/backdoor un layer per eseguire codice arbitrario quando il lambda viene eseguito in modo furtivo:
{{#ref}} aws-lambda-layers-persistence.md {{#endref}}
Persistenza dell'Estensione Lambda
Abusando dei Lambda Layers è anche possibile abusare delle estensioni e persistere nel lambda ma anche rubare e modificare le richieste.
{{#ref}} aws-abusing-lambda-extensions.md {{#endref}}
Tramite politiche delle risorse
È possibile concedere accesso a diverse azioni lambda (come invocare o aggiornare il codice) a account esterni:

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.

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
{{#include ../../../../banners/hacktricks-training.md}}