# AWS - Lambda Post Exploitation

{{#include ../../../../banners/hacktricks-training.md}}

## Lambda

Per maggiori informazioni consulta:

{{#ref}}
../../aws-services/aws-lambda-enum.md
{{#endref}}

### 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.

{{#ref}}
aws-warm-lambda-persistence.md
{{#endref}}

### 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.

{{#ref}}
../../aws-persistence/aws-lambda-persistence/aws-abusing-lambda-extensions.md
{{#endref}}

### 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.

{{#ref}}
aws-lambda-vpc-egress-bypass.md
{{#endref}}

### 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.

{{#ref}}
aws-lambda-runtime-pinning-abuse.md
{{#endref}}

### 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.

{{#ref}}
aws-lambda-loggingconfig-redirection.md
{{#endref}}

### 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.

{{#ref}}
aws-lambda-function-url-public-exposure.md
{{#endref}}

### 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.

{{#ref}}
aws-lambda-event-source-mapping-hijack.md
{{#endref}}

### 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.

{{#ref}}
aws-lambda-efs-mount-injection.md
{{#endref}}



{{#include ../../../../banners/hacktricks-training.md}}
