4.5 KiB
AWS - Lambda Post Exploitation
{{#include ../../../../banners/hacktricks-training.md}}
Lambda
Für weitere Informationen siehe:
{{#ref}} ../../aws-services/aws-lambda-enum.md {{#endref}}
Exfilrtate Lambda Credentials
Lambda verwendet Umgebungsvariablen, um zur Laufzeit credentials zu injizieren. Wenn Sie Zugriff auf diese erhalten (durch Lesen von /proc/self/environ oder durch Verwendung der verwundbaren Funktion selbst), können Sie sie selbst verwenden. Sie liegen in den Standard-Variablennamen AWS_SESSION_TOKEN, AWS_SECRET_ACCESS_KEY, und AWS_ACCESS_KEY_ID.
Standardmäßig haben diese Schreibzugriff auf eine CloudWatch log group (deren Name in AWS_LAMBDA_LOG_GROUP_NAME gespeichert ist) sowie das Recht, beliebige log groups zu erstellen; Lambda functions haben jedoch häufig zusätzliche Berechtigungen, die nach ihrem vorgesehenen Zweck zugewiesen sind.
Steal Others Lambda URL Requests
Wenn ein Angreifer es schafft, RCE innerhalb einer Lambda zu erlangen, kann er HTTP-Anfragen anderer Benutzer an die Lambda stehlen. Enthalten die Anfragen sensible Informationen (cookies, credentials...) kann er diese abfangen.
{{#ref}} aws-warm-lambda-persistence.md {{#endref}}
Steal Others Lambda URL Requests & Extensions Requests
Durch Missbrauch von Lambda Layers ist es außerdem möglich, extensions zu missbrauchen und Persistenz in der Lambda zu erreichen, sowie Anfragen zu stehlen und zu verändern.
{{#ref}} ../../aws-persistence/aws-lambda-persistence/aws-abusing-lambda-extensions.md {{#endref}}
AWS Lambda – VPC Egress Bypass
Zwingen Sie eine Lambda-Funktion, eine eingeschränkte VPC zu verlassen, indem Sie ihre Konfiguration mit einer leeren VpcConfig aktualisieren (SubnetIds=[], SecurityGroupIds=[]). Die Funktion läuft dann im von Lambda verwalteten Netzwerkbereich und erlangt wieder ausgehenden Internetzugang, wodurch Egress-Kontrollen, die durch private VPC-Subnets ohne NAT durchgesetzt werden, umgangen werden.
{{#ref}} aws-lambda-vpc-egress-bypass.md {{#endref}}
AWS Lambda – Runtime Pinning/Rollback Abuse
Missbrauchen Sie lambda:PutRuntimeManagementConfig, um eine Funktion auf eine bestimmte Runtime-Version festzusetzen (Manual) oder Updates einzufrieren (FunctionUpdate). Dadurch bleibt die Kompatibilität mit bösartigen layers/wrappers erhalten und die Funktion kann auf einer veralteten, verwundbaren Runtime belassen werden, was Exploitation und langfristige Persistenz erleichtert.
{{#ref}} aws-lambda-runtime-pinning-abuse.md {{#endref}}
AWS Lambda – Log Siphon via LoggingConfig.LogGroup Redirection
Missbrauchen Sie die erweiterten Logging-Kontrollen von lambda:UpdateFunctionConfiguration, um die Logs einer Funktion in eine vom Angreifer gewählte CloudWatch Logs log group umzuleiten. Dies funktioniert ohne Code- oder Ausführungsrollen-Änderung (die meisten Lambda-Rollen beinhalten bereits logs:CreateLogGroup/CreateLogStream/PutLogEvents via AWSLambdaBasicExecutionRole). Wenn die Funktion secrets/request bodies ausgibt oder mit Stack-Traces abstürzt, können Sie diese aus der neuen log group sammeln.
{{#ref}} aws-lambda-loggingconfig-redirection.md {{#endref}}
AWS - Lambda Function URL Public Exposure
Machen Sie eine private Lambda Function URL zu einem öffentlichen, nicht authentifizierten Endpunkt, indem Sie den Function URL AuthType auf NONE setzen und eine resource-basierte Policy anhängen, die lambda:InvokeFunctionUrl für alle gewährt. Dadurch wird anonyme Invocation interner Funktionen ermöglicht und sensible Backend-Operationen können exponiert werden.
{{#ref}} aws-lambda-function-url-public-exposure.md {{#endref}}
AWS Lambda – Event Source Mapping Target Hijack
Missbrauchen Sie UpdateEventSourceMapping, um die Ziel-Lambda-Funktion einer bestehenden Event Source Mapping (ESM) zu ändern, sodass Records von DynamoDB Streams, Kinesis, oder SQS an eine vom Angreifer kontrollierte Funktion geliefert werden. Dies leitet Live-Daten stillschweigend um, ohne Produzenten oder den ursprünglichen Funktionscode zu berühren.
{{#ref}} aws-lambda-event-source-mapping-hijack.md {{#endref}}
AWS Lambda – EFS Mount Injection data exfiltration
Missbrauchen Sie lambda:UpdateFunctionConfiguration, um einen bestehenden EFS Access Point an eine Lambda anzuhängen, und deployen Sie dann trivialen Code, der Dateien aus dem gemounteten Pfad auflistet/liest, um gemeinsam genutzte secrets/config zu exfiltrieren, auf die die Funktion zuvor keinen Zugriff hatte.
{{#ref}} aws-lambda-efs-mount-injection.md {{#endref}}
{{#include ../../../../banners/hacktricks-training.md}}