AWS - Lambda Persistence
Reading time: 4 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
- Vérifiez les plans d'abonnement !
- Rejoignez le đŹ groupe Discord ou le groupe telegram ou suivez-nous sur Twitter đŠ @hacktricks_live.
- Partagez des astuces de hacking en soumettant des PR au HackTricks et HackTricks Cloud dépÎts github.
Lambda
Pour plus d'informations, consultez :
Persistence de la couche Lambda
Il est possible d'introduire/installer une porte dérobée dans une couche pour exécuter du code arbitraire lorsque la lambda est exécutée de maniÚre discrÚte :
AWS - Lambda Layers Persistence
Persistence de l'extension Lambda
En abusant des couches Lambda, il est Ă©galement possible d'abuser des extensions et de persister dans la lambda, mais aussi de voler et de modifier des requĂȘtes.
AWS - Abusing Lambda Extensions
Via les politiques de ressources
Il est possible d'accorder l'accÚs à différentes actions lambda (comme invoquer ou mettre à jour le code) à des comptes externes :
.png)
Versions, Alias & Poids
Une Lambda peut avoir différentes versions (avec un code différent pour chaque version).
Ensuite, vous pouvez créer différents alias avec différentes versions de la lambda et définir des poids différents pour chacun.
De cette maniĂšre, un attaquant pourrait crĂ©er une version 1 avec porte dĂ©robĂ©e et une version 2 avec uniquement le code lĂ©gitime et n'exĂ©cuter que la version 1 dans 1% des requĂȘtes pour rester discret.
.png)
Porte dérobée de version + API Gateway
- Copier le code original de la Lambda
- Créer une nouvelle version avec porte dérobée du code original (ou juste avec du code malveillant). Publier et déployer cette version sur $LATEST
- Appeler la passerelle API liée à la lambda pour exécuter le code
- Créer une nouvelle version avec le code original, Publier et déployer cette version sur $LATEST.
- Cela cachera le code avec porte dérobée dans une version précédente
- Aller à la passerelle API et créer une nouvelle méthode POST (ou choisir toute autre méthode) qui exécutera la version avec porte dérobée de la lambda :
arn:aws:lambda:us-east-1:<acc_id>:function:<func_name>:1
- Notez le final :1 de l'arn indiquant la version de la fonction (la version 1 sera celle avec porte dérobée dans ce scénario).
- Sélectionnez la méthode POST créée et dans Actions, sélectionnez
Déployer l'API
- Maintenant, lorsque vous appelez la fonction via POST, votre porte dérobée sera invoquée
Cron/Actionneur d'événements
Le fait que vous puissiez faire exécuter des fonctions lambda lorsque quelque chose se produit ou lorsque du temps passe rend lambda un moyen agréable et courant d'obtenir une persistance et d'éviter la détection.
Voici quelques idées pour rendre votre présence dans AWS plus discrÚte en créant des lambdas.
- Chaque fois qu'un nouvel utilisateur est créé, la lambda génÚre une nouvelle clé utilisateur et l'envoie à l'attaquant.
- Chaque fois qu'un nouveau rÎle est créé, la lambda accorde des permissions d'assumer le rÎle aux utilisateurs compromis.
- Chaque fois que de nouveaux journaux cloudtrail sont générés, les supprimer/les modifier
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
- Vérifiez les plans d'abonnement !
- Rejoignez le đŹ groupe Discord ou le groupe telegram ou suivez-nous sur Twitter đŠ @hacktricks_live.
- Partagez des astuces de hacking en soumettant des PR au HackTricks et HackTricks Cloud dépÎts github.