AWS - Lambda Post Exploitation

Reading time: 5 minutes

tip

Apprenez et pratiquez le hacking AWS :HackTricks Training AWS Red Team Expert (ARTE)
Apprenez et pratiquez le hacking GCP : HackTricks Training GCP Red Team Expert (GRTE) Apprenez et pratiquez le hacking Azure : HackTricks Training Azure Red Team Expert (AzRTE)

Soutenir HackTricks

Lambda

Pour plus d'informations, consultez :

AWS - Lambda Enum

Exfiltrer les identifiants Lambda

Lambda utilise des variables d'environnement pour injecter des identifiants Ă  l'exĂ©cution. Si vous pouvez y accĂ©der (en lisant /proc/self/environ ou en utilisant la fonction vulnĂ©rable elle-mĂȘme), vous pouvez les utiliser vous-mĂȘme. Ils se trouvent dans les noms de variables par dĂ©faut AWS_SESSION_TOKEN, AWS_SECRET_ACCESS_KEY, et AWS_ACCESS_KEY_ID.

Par défaut, ceux-ci auront accÚs pour écrire dans un cloudwatch log group (dont le nom est stocké dans AWS_LAMBDA_LOG_GROUP_NAME), ainsi que pour créer des log groups arbitraires ; cependant les fonctions Lambda ont fréquemment plus d'autorisations attribuées en fonction de leur usage prévu.

lambda:Delete*

Un attaquant se voyant accorder lambda:Delete* peut supprimer des fonctions Lambda, versions/aliases, layers, event source mappings et d'autres configurations associées.

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

Voler les requĂȘtes URL Lambda d'autres utilisateurs

Si un attaquant parvient d'une maniĂšre ou d'une autre Ă  obtenir RCE dans une Lambda, il pourra voler les requĂȘtes HTTP d'autres utilisateurs envoyĂ©es Ă  la Lambda. Si ces requĂȘtes contiennent des informations sensibles (cookies, identifiants...), il pourra les rĂ©cupĂ©rer.

AWS - Lambda Steal Requests

Voler les requĂȘtes URL Lambda d'autres utilisateurs et les requĂȘtes d'extensions

En abusant des Lambda Layers, il est aussi possible d'abuser des extensions et de persister dans la Lambda, mais aussi de voler et modifier les requĂȘtes.

AWS - Abusing Lambda Extensions

AWS Lambda – VPC Egress Bypass

Forcez une fonction Lambda Ă  sortir d'un VPC restreint en mettant Ă  jour sa configuration avec un VpcConfig vide (SubnetIds=[], SecurityGroupIds=[]). La fonction s'exĂ©cutera alors dans le plan rĂ©seau gĂ©rĂ© par Lambda, retrouvant l'accĂšs sortant Ă  Internet et contournant les contrĂŽles d'egress appliquĂ©s par des sous‑rĂ©seaux VPC privĂ©s sans NAT.

AWS - Lambda VPC Egress Bypass

AWS Lambda – Runtime Pinning/Rollback Abuse

Abusez de lambda:PutRuntimeManagementConfig pour épingler une fonction à une version de runtime spécifique (Manual) ou geler les mises à jour (FunctionUpdate). Cela préserve la compatibilité avec des layers/wrappers malveillants et peut maintenir la fonction sur un runtime obsolÚte et vulnérable pour faciliter l'exploitation et la persistance à long terme.

AWS - Lambda Runtime Pinning Abuse

AWS Lambda – Log Siphon via LoggingConfig.LogGroup Redirection

Abusez des contrĂŽles avancĂ©s de journalisation lambda:UpdateFunctionConfiguration pour rediriger les logs d'une fonction vers un log group CloudWatch Logs choisi par l'attaquant. Cela fonctionne sans modifier le code ni le rĂŽle d'exĂ©cution (la plupart des rĂŽles Lambda incluent dĂ©jĂ  logs:CreateLogGroup/CreateLogStream/PutLogEvents via AWSLambdaBasicExecutionRole). Si la fonction affiche des secrets/corps de requĂȘtes ou plante avec des stack traces, vous pouvez les rĂ©cupĂ©rer depuis le nouveau log group.

AWS - Lambda LoggingConfig Redirection

AWS - Lambda Function URL Public Exposure

Transformez une Function URL Lambda privée en un endpoint public non authentifié en passant le Function URL AuthType à NONE et en attachant une resource-based policy qui accorde lambda:InvokeFunctionUrl à tout le monde. Cela permet l'invocation anonyme de fonctions internes et peut exposer des opérations backend sensibles.

AWS - Lambda Function URL Public Exposure

AWS Lambda – Event Source Mapping Target Hijack

Abusez de UpdateEventSourceMapping pour changer la fonction Lambda cible d'un Event Source Mapping (ESM) existant afin que les enregistrements de DynamoDB Streams, Kinesis ou SQS soient livrés à une fonction contrÎlée par l'attaquant. Cela détourne silencieusement des données en direct sans toucher aux producteurs ni au code de la fonction originale.

AWS - Lambda Event Source Mapping Hijack

AWS Lambda – EFS Mount Injection data exfiltration

Abusez de lambda:UpdateFunctionConfiguration pour attacher un EFS Access Point existant à une Lambda, puis déployez un code trivial qui liste/lit les fichiers depuis le chemin monté pour exfiltrer des secrets/config partagés auxquels la fonction n'avait pas accÚs auparavant.

AWS - Lambda EFS Mount Injection

tip

Apprenez et pratiquez le hacking AWS :HackTricks Training AWS Red Team Expert (ARTE)
Apprenez et pratiquez le hacking GCP : HackTricks Training GCP Red Team Expert (GRTE) Apprenez et pratiquez le hacking Azure : HackTricks Training Azure Red Team Expert (AzRTE)

Soutenir HackTricks