AWS - Lambda Persistence
Last updated
Last updated
Impara e pratica Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE) Impara e pratica Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)
Per ulteriori informazioni controlla:
AWS - Lambda EnumÈ possibile introdurre/backdoor un layer per eseguire codice arbitrario quando la lambda viene eseguita in modo furtivo:
AWS - Lambda Layers PersistenceAbusando delle Lambda Layers è anche possibile abusare delle estensioni e persistere nella lambda ma anche rubare e modificare le richieste.
AWS - Abusing Lambda ExtensionsÈ possibile concedere accesso a diverse azioni lambda (come invocare o aggiornare codice) a account esterni:
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.
Copia il codice originale della Lambda
Crea una nuova versione backdooring il codice originale (o solo con codice malevolo). Pubblica e deplora quella versione su $LATEST
Chiama l'API gateway relativo alla lambda per eseguire il codice
Crea una nuova versione con il codice originale, Pubblica e deploia quella versione su $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 finale :1 dell'arn che indica la versione della funzione (la versione 1 sarà quella backdoored in questo scenario).
Seleziona il metodo POST creato e in Azioni seleziona Deploy API
Ora, quando chiami la funzione via POST la tua Backdoor verrà invocata
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 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 funzione, la lambda concede permessi di assunzione ruolo agli utenti compromessi.
Ogni volta che vengono generati nuovi log di cloudtrail, cancellali/modificali.
Impara e pratica Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE) Impara e pratica Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)