# AWS - Lambda Post Exploitation

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

## Lambda

Vir meer inligting sien:

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

### Exfiltreer Lambda Credentials

Lambda gebruik omgewingsveranderlikes om credentials tydens runtime in te spuit. As jy toegang daartoe kry (deur `/proc/self/environ` te lees of die kwesbare funksie self te gebruik), kan jy dit self gebruik. Hulle is in die standaard veranderlike name `AWS_SESSION_TOKEN`, `AWS_SECRET_ACCESS_KEY`, and `AWS_ACCESS_KEY_ID` gestoor.

Standaard het hierdie toegang om na 'n cloudwatch log group te skryf (die naam daarvan word in `AWS_LAMBDA_LOG_GROUP_NAME` gestoor), sowel as om ewekansige log groups te skep. Lambda functions het egter dikwels meer toestemmings toegeken op grond van hul beoogde gebruik.

### `lambda:Delete*`
As 'n aanvaller lambda:Delete* toegeken kry, kan hy Lambda functions, versions/aliases, layers, event source mappings en ander verwante konfigurasies verwyder.
```bash
aws lambda delete-function \
--function-name <LAMBDA_NAME>
```
### Steel Ander se Lambda URL Requests

As 'n aanvaller op een of ander manier RCE binne 'n Lambda kry, sal hy in staat wees om ander gebruikers se HTTP-versoeke na die Lambda te steel. As die versoeke sensitiewe inligting bevat (cookies, credentials...) sal hy dit kan steel.

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

### Steel Ander se Lambda URL Requests & Extensions Requests

Deur Lambda Layers te misbruik is dit ook moontlik om extensions te misbruik en in die Lambda te bly, maar ook versoeke te steel en te wysig.

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

### AWS Lambda – VPC Egress Bypass

Dwing 'n Lambda-funksie uit 'n beperkte VPC deur sy konfiguratie by te werk met 'n leë VpcConfig (SubnetIds=[], SecurityGroupIds=[]). Die funksie sal dan in die Lambda-managed networking plane loop, weer uitgaande internettoegang kry en egress-behelsels wat deur private VPC-subnetwerke sonder NAT afgedwing word, omseil.

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

### AWS Lambda – Runtime Pinning/Rollback Abuse

Misbruik `lambda:PutRuntimeManagementConfig` om 'n funksie vas te pen op 'n spesifieke runtime-weergawe (Manual) of om updates te vries (FunctionUpdate). Dit bewaar verenigbaarheid met kwaadwillige layers/wrappers en kan die funksie op 'n verouderde, kwesbare runtime hou om eksploitasie en langtermyn-persistensie te vergemaklik.

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

### AWS Lambda – Log Siphon via LoggingConfig.LogGroup Redirection

Misbruik `lambda:UpdateFunctionConfiguration` se gevorderde logbeheer om 'n funksie se logs te herlei na 'n CloudWatch Logs log group wat deur die aanvaller gekies is. Dit werk sonder om kode of die execution role te verander (die meeste Lambda-rolle bevat reeds `logs:CreateLogGroup/CreateLogStream/PutLogEvents` via `AWSLambdaBasicExecutionRole`). As die funksie secrets/request bodies druk of met stack traces crash, kan jy dit vanaf die nuwe loggroep versamel.

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

### AWS - Lambda Function URL Public Exposure

Skakel 'n private Lambda Function URL in 'n publieke ongeskikte endpoint deur die Function URL AuthType na NONE te verander en 'n resource-based policy aan te heg wat lambda:InvokeFunctionUrl aan almal verleen. Dit moontlik anonieme invocation van interne funksies en kan sensitiewe backend-ope-raties openbaar maak.

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

### AWS Lambda – Event Source Mapping Target Hijack

Misbruik `UpdateEventSourceMapping` om die teiken-Lambda-funksie van 'n bestaande Event Source Mapping (ESM) te verander sodat rekords vanaf DynamoDB Streams, Kinesis, of SQS aan 'n aanvaller-beheerde funksie afgelewer word. Dit lei stilweg lewendige data om sonder om producers of die oorspronklike funksie se kode aan te raak.

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

### AWS Lambda – EFS Mount Injection data exfiltration

Misbruik `lambda:UpdateFunctionConfiguration` om 'n bestaande EFS Access Point aan 'n Lambda aan teheg, en deploy daarna eenvoudige kode wat lêers vanaf die gemonteerde pad lys/lees om gedeelde secrets/config uit te voer wat die funksie vroeër nie kon toegang nie.

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



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