Files
hacktricks-cloud/src/pentesting-cloud/aws-security/aws-persistence/aws-lambda-persistence/README.md

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

  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

{{#include ../../../../banners/hacktricks-training.md}}