AWS - Lambda Persistence
Lambda
Per maggiori informazioni controlla:
AWS - Lambda EnumLambda Layer Persistence
È possibile introdurre/backdoor un layer per eseguire codice arbitrario quando la lambda viene eseguita in modo furtivo:
AWS - Lambda Layers PersistenceLambda Extension Persistence
Abusando dei Lambda Layers è anche possibile abusare delle estensioni e persistere nella lambda ma anche rubare e modificare le richieste.
AWS - Abusing Lambda ExtensionsVia resource policies
È possibile concedere l'accesso a diverse azioni lambda (come invocare o aggiornare il codice) a account esterni:
Versions, Aliases & Weights
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 ciascuno. In questo modo un attaccante potrebbe creare una versione 1 con backdoor e una versione 2 con solo il codice legittimo e eseguire solo la versione 1 nell'1% delle richieste per rimanere furtivo.
Version Backdoor + API Gateway
Copia il codice originale della Lambda
Crea una nuova versione con backdoor del codice originale (o solo con codice malevolo). Pubblica e distribuisci quella versione su $LATEST
Chiama l'API gateway correlato alla lambda per eseguire il codice
Crea una nuova versione con il codice originale, Pubblica e distribuisci quella versione su $LATEST.
Questo nasconderà il codice con backdoor in una versione precedente
Vai all'API Gateway e crea un nuovo metodo POST (o scegli qualsiasi altro metodo) che eseguirà la versione con backdoor della 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 con backdoor in questo scenario).
Seleziona il metodo POST creato e in Azioni seleziona
Deploy API
Ora, quando chiami la funzione tramite POST la tua Backdoor verrà invocata
Cron/Event actuator
Il fatto che tu possa far eseguire le funzioni lambda quando succede qualcosa o quando passa del tempo rende lambda un modo interessante 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 creato un nuovo ruolo, lambda concede permessi di assunzione ruolo agli utenti compromessi.
Ogni volta che vengono generati nuovi log cloudtrail, cancellarli/modificarli
Last updated