AWS - Lambda Post Exploitation

Reading time: 5 minutes

tip

Impara e pratica il hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Impara e pratica il hacking GCP: HackTricks Training GCP Red Team Expert (GRTE) Impara e pratica il hacking Azure: HackTricks Training Azure Red Team Expert (AzRTE)

Supporta HackTricks

Lambda

Per maggiori informazioni consulta:

AWS - Lambda Enum

Esfiltrare le credenziali di Lambda

Lambda usa le variabili d'ambiente per iniettare le credenziali a runtime. Se puoi accedervi (leggendo /proc/self/environ o usando la funzione vulnerabile stessa), puoi usarle tu stesso. Risiedono nelle variabili di default AWS_SESSION_TOKEN, AWS_SECRET_ACCESS_KEY e AWS_ACCESS_KEY_ID.

Per impostazione predefinita, queste hanno accesso per scrivere in un cloudwatch log group (il cui nome è memorizzato in AWS_LAMBDA_LOG_GROUP_NAME) e per creare log group arbitrari; tuttavia le funzioni lambda spesso hanno permessi aggiuntivi assegnati in base al loro uso previsto.

lambda:Delete*

Un attacker a cui è concesso lambda:Delete* può eliminare Lambda functions, versions/aliases, layers, event source mappings e altre configurazioni associate.

bash
aws lambda delete-function \
--function-name <LAMBDA_NAME>

Steal Others Lambda URL Requests

Se un attacker in qualche modo riesce a ottenere RCE all'interno di una Lambda, potrà rubare le richieste HTTP di altri utenti verso la lambda. Se le richieste contengono informazioni sensibili (cookies, credentials...) potrà sottrarle.

AWS - Lambda Steal Requests

Steal Others Lambda URL Requests & Extensions Requests

Abusing Lambda Layers è anche possibile abusare delle extensions e persistere nella lambda ma anche rubare e modificare le richieste.

AWS - Abusing Lambda Extensions

AWS Lambda – VPC Egress Bypass

Forza una Lambda function fuori da una VPC ristretta aggiornando la sua configurazione con un VpcConfig vuoto (SubnetIds=[], SecurityGroupIds=[]). La function verrà eseguita nel networking plane gestito da Lambda, recuperando l'accesso Internet in uscita e bypassando i controlli di egress imposti dai subnet privati della VPC senza NAT.

AWS - Lambda VPC Egress Bypass

AWS Lambda – Runtime Pinning/Rollback Abuse

Abusa di lambda:PutRuntimeManagementConfig per vincolare una function a una specifica versione del runtime (Manual) o bloccare gli aggiornamenti (FunctionUpdate). Questo preserva la compatibilità con layer/wrapper malevoli e può mantenere la function su un runtime obsoleto e vulnerabile per facilitare lo sfruttamento e la persistenza a lungo termine.

AWS - Lambda Runtime Pinning Abuse

AWS Lambda – Log Siphon via LoggingConfig.LogGroup Redirection

Abusa dei controlli di logging avanzati di lambda:UpdateFunctionConfiguration per reindirizzare i log di una function verso un log group di CloudWatch Logs scelto dall'attacker. Questo funziona senza cambiare il codice o l'execution role (la maggior parte dei ruoli Lambda include già logs:CreateLogGroup/CreateLogStream/PutLogEvents tramite AWSLambdaBasicExecutionRole). Se la function stampa secrets/request bodies o va in crash con stack traces, puoi raccoglierli dal nuovo log group.

AWS - Lambda LoggingConfig Redirection

AWS - Lambda Function URL Public Exposure

Trasforma una Lambda Function URL privata in un endpoint pubblico non autenticato impostando il Function URL AuthType su NONE e allegando una resource-based policy che concede lambda:InvokeFunctionUrl a chiunque. Questo permette invocazioni anonime di function interne e può esporre operazioni backend sensibili.

AWS - Lambda Function URL Public Exposure

AWS Lambda – Event Source Mapping Target Hijack

Abusa di UpdateEventSourceMapping per cambiare la target Lambda function di un Event Source Mapping (ESM) esistente in modo che i record da DynamoDB Streams, Kinesis o SQS vengano consegnati a una function controllata dall'attacker. Questo devia silenziosamente i dati live senza toccare i producer o il codice della function originale.

AWS - Lambda Event Source Mapping Hijack

AWS Lambda – EFS Mount Injection data exfiltration

Abusa di lambda:UpdateFunctionConfiguration per collegare un EFS Access Point esistente a una Lambda, poi deploya codice semplice che elenca/legge file dal path montato per esfiltrare shared secrets/config a cui la function prima non poteva accedere.

AWS - Lambda EFS Mount Injection

tip

Impara e pratica il hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Impara e pratica il hacking GCP: HackTricks Training GCP Red Team Expert (GRTE) Impara e pratica il hacking Azure: HackTricks Training Azure Red Team Expert (AzRTE)

Supporta HackTricks