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

Lambda

Per ulteriori informazioni controlla:

AWS - Lambda Enum

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:

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

  1. Copia il codice originale del Lambda
  2. Crea una nuova versione backdooring il codice originale (o solo con codice malevolo). Pubblica e deplora quella versione su $LATEST
  3. Chiama l'API gateway relativo al lambda per eseguire il codice
  4. Crea una nuova versione con il codice originale, Pubblica e deplo quella versione su $LATEST.
  5. Questo nasconderà il codice backdoored in una versione precedente
  6. 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
  7. Nota il finale :1 dell'arn che indica la versione della funzione (la versione 1 sarà quella backdoored in questo scenario).
  8. Seleziona il metodo POST creato e in Azioni seleziona Deploy API
  9. 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