AWS - Lambda Post Exploitation

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.

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