AWS - Lambda Persistence

Supporta HackTricks

Lambda

Per ulteriori informazioni controlla:

AWS - Lambda Enum

Persistenza della Lambda Layer

È possibile introdurre/backdoor un layer per eseguire codice arbitrario quando la lambda viene eseguita in modo furtivo:

AWS - Lambda Layers Persistence

Persistenza dell'estensione Lambda

Abusando delle Lambda Layers è anche possibile abusare delle estensioni e persistere nella 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 codice) a account esterni:

Versioni, Alias e Pesi

Una Lambda può avere diverse versioni (con codice diverso per ogni versione). Poi, puoi creare diversi alias con diverse versioni della lambda e impostare pesi diversi per ciascuna. 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 della 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 alla lambda per eseguire il codice

  4. Crea una nuova versione con il codice originale, Pubblica e deploia 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 qualsiasi altro metodo) che eseguirà la versione backdoored della 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 tramite POST, la tua Backdoor verrà invocata

Attuatore Cron/Event

Il fatto che puoi far eseguire funzioni lambda quando accade qualcosa o quando passa del tempo rende lambda un modo interessante e comune per ottenere persistenza ed evitare la rilevazione. Ecco alcune idee per rendere la tua presenza in AWS più furtiva creando lambdas.

  • Ogni volta che viene creato un nuovo utente, la lambda genera una nuova chiave utente e la invia all'attaccante.

  • Ogni volta che viene creata una nuova role, la lambda concede permessi di assunzione della role agli utenti compromessi.

  • Ogni volta che vengono generati nuovi log di cloudtrail, cancellali/modificali.

Supporta HackTricks

Last updated