AWS - Abuser des extensions Lambda
Tip
Apprenez & pratiquez AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Apprenez & pratiquez GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Apprenez & pratiquez Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Soutenez HackTricks
- Consultez les subscription plans!
- Rejoignez le đŹ Discord group ou le telegram group ou suivez-nous sur Twitter đŠ @hacktricks_live.
- Partagez des hacking tricks en soumettant des PRs aux HackTricks et HackTricks Cloud github repos.
Extensions Lambda
Les extensions Lambda amĂ©liorent les fonctions en sâintĂ©grant Ă divers outils de surveillance, dâobservabilitĂ©, de sĂ©curitĂ© et de gouvernance. Ces extensions, ajoutĂ©es via des .zip archives utilisant des couches Lambda ou incluses dans les dĂ©ploiements dâimages de conteneur, fonctionnent en deux modes : interne et externe.
- Les extensions internes se fusionnent avec le processus dâexĂ©cution, manipulant son dĂ©marrage Ă lâaide de variables dâenvironnement spĂ©cifiques au langage et de scripts dâenveloppe. Cette personnalisation sâapplique Ă une gamme de temps dâexĂ©cution, y compris Java Correto 8 et 11, Node.js 10 et 12, et .NET Core 3.1.
- Les extensions externes sâexĂ©cutent en tant que processus sĂ©parĂ©s, maintenant lâalignement opĂ©rationnel avec le cycle de vie de la fonction Lambda. Elles sont compatibles avec divers temps dâexĂ©cution comme Node.js 10 et 12, Python 3.7 et 3.8, Ruby 2.5 et 2.7, Java Corretto 8 et 11, .NET Core 3.1, et des temps dâexĂ©cution personnalisĂ©s.
Pour plus dâinformations sur comment fonctionnent les extensions lambda, consultez la documentation.
Extension externe pour la persistance, le vol de requĂȘtes et la modification de requĂȘtes
Ceci est un résumé de la technique proposée dans ce post : https://www.clearvector.com/blog/lambda-spy/
Il a Ă©tĂ© constatĂ© que le noyau Linux par dĂ©faut dans lâenvironnement dâexĂ©cution Lambda est compilĂ© avec les appels systĂšme âprocess_vm_readvâ et âprocess_vm_writevâ. Et tous les processus sâexĂ©cutent avec le mĂȘme ID utilisateur, mĂȘme le nouveau processus créé pour lâextension externe. Cela signifie quâune extension externe a un accĂšs complet en lecture et en Ă©criture Ă la mĂ©moire heap de Rapid, par conception.
De plus, bien que les extensions Lambda aient la capacitĂ© de sâabonner aux Ă©vĂ©nements dâinvocation, AWS ne rĂ©vĂšle pas les donnĂ©es brutes Ă ces extensions. Cela garantit que les extensions ne peuvent pas accĂ©der aux informations sensibles transmises via la requĂȘte HTTP.
Le processus Init (Rapid) surveille toutes les requĂȘtes API Ă http://127.0.0.1:9001 tandis que les extensions Lambda sont initialisĂ©es et sâexĂ©cutent avant lâexĂ©cution de tout code dâexĂ©cution, mais aprĂšs Rapid.
.png)
https://www.clearvector.com/blog/content/images/size/w1000/2022/11/2022110801.rapid.default.png
La variable AWS_LAMBDA_RUNTIME_API indique lâadresse IP et le numĂ©ro de port de lâAPI Rapid aux processus dâexĂ©cution enfants et aux extensions supplĂ©mentaires.
Warning
En changeant la variable dâenvironnement
AWS_LAMBDA_RUNTIME_APIĂ unportauquel nous avons accĂšs, il est possible dâintercepter toutes les actions au sein de lâexĂ©cution Lambda (man-in-the-middle). Cela est possible car lâextension sâexĂ©cute avec les mĂȘmes privilĂšges que Rapid Init, et le noyau du systĂšme permet la modification de la mĂ©moire des processus, permettant lâaltĂ©ration du numĂ©ro de port.
Parce que les extensions sâexĂ©cutent avant tout code dâexĂ©cution, modifier la variable dâenvironnement influencera le processus dâexĂ©cution (par exemple, Python, Java, Node, Ruby) lors de son dĂ©marrage. De plus, les extensions chargĂ©es aprĂšs la nĂŽtre, qui dĂ©pendent de cette variable, passeront Ă©galement par notre extension. Cette configuration pourrait permettre Ă un logiciel malveillant de contourner complĂštement les mesures de sĂ©curitĂ© ou les extensions de journalisation directement dans lâenvironnement dâexĂ©cution.
.png)
https://www.clearvector.com/blog/content/images/size/w1000/2022/11/2022110801.rapid.mitm.png
Lâoutil lambda-spy a Ă©tĂ© créé pour effectuer cette Ă©criture en mĂ©moire et voler des informations sensibles des requĂȘtes lambda, dâautres requĂȘtes dâextensions et mĂȘme les modifier.
Références
- https://aws.amazon.com/blogs/compute/building-extensions-for-aws-lambda-in-preview/
- https://www.clearvector.com/blog/lambda-spy/
Tip
Apprenez & pratiquez AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Apprenez & pratiquez GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Apprenez & pratiquez Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Soutenez HackTricks
- Consultez les subscription plans!
- Rejoignez le đŹ Discord group ou le telegram group ou suivez-nous sur Twitter đŠ @hacktricks_live.
- Partagez des hacking tricks en soumettant des PRs aux HackTricks et HackTricks Cloud github repos.
HackTricks Cloud

