AWS - Lambda Persistence
Lambda
Per ulteriori informazioni controlla:
pageAWS - Lambda EnumPersistenza di Lambda Layer
È possibile introdurre/creare un backdoor in un layer per eseguire codice arbitrario quando la lambda viene eseguita in modo stealthy:
pageAWS - Lambda Layers PersistencePersistenza di Lambda Extension
Abusando dei Lambda Layers è anche possibile abusare delle estensioni e persistere nella lambda ma anche rubare e modificare le richieste.
pageAWS - Abusing Lambda ExtensionsAttraverso le politiche delle risorse
È possibile concedere l'accesso a diverse azioni lambda (come invocare o aggiornare il codice) a account esterni:
Versioni, Alias e Pesi
Una Lambda può avere diverse versioni (con codice diverso per ogni versione). Quindi, è possibile creare diversi alias con diverse versioni della lambda e impostare pesi diversi per ciascuno. In questo modo un attaccante potrebbe creare una versione backdoor 1 e una versione 2 con solo il codice legittimo e eseguire solo la versione 1 nel 1% delle richieste per rimanere stealth.
Backdoor della Versione + API Gateway
Copia il codice originale della Lambda
Crea una nuova versione backdooring il codice originale (o solo con codice dannoso). Pubblica e distribuisci quella versione a $LATEST
Chiama l'API gateway relativa alla lambda per eseguire il codice
Crea una nuova versione con il codice originale, Pubblica e distribuisci quella versione a $LATEST.
Questo nasconderà il codice backdoored in una versione precedente
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
Nota il :1 finale dell'arn che indica la versione della funzione (la versione 1 sarà quella backdoored in questo scenario).
Seleziona il metodo POST creato e nelle Azioni seleziona
Deploy API
Ora, quando chiami la funzione tramite POST il tuo Backdoor verrà invocato
Attuatore Cron/Evento
Il fatto che tu possa far eseguire le funzioni lambda quando accade qualcosa o quando passa del tempo rende lambda un modo piacevole e comune per ottenere persistenza ed evitare la rilevazione. Ecco alcune idee per rendere la tua presenza in AWS più stealth 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 creato un nuovo ruolo lambda fornisce autorizzazioni di assumere il ruolo agli utenti compromessi.
Ogni volta che vengono generati nuovi log di cloudtrail, eliminarli/alterarli
Last updated