AWS - Lambda Persistence
Last updated
Last updated
Lerne & übe AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Lerne & übe GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Für weitere Informationen siehe:
Es ist möglich, eine Schicht einzuführen/hintertüren, um beliebigen Code auszuführen, wenn die Lambda stealthy ausgeführt wird:
Durch den Missbrauch von Lambda Layers ist es auch möglich, Erweiterungen zu missbrauchen und in der Lambda zu persistieren, aber auch Anfragen zu stehlen und zu modifizieren.
Es ist möglich, externen Konten Zugriff auf verschiedene Lambda-Aktionen (wie Invoke oder Update Code) zu gewähren:
Eine Lambda kann verschiedene Versionen haben (mit unterschiedlichem Code in jeder Version). Dann kannst du verschiedene Aliase mit unterschiedlichen Versionen der Lambda erstellen und jedem unterschiedliche Gewichte zuweisen. Auf diese Weise könnte ein Angreifer eine hintertürige Version 1 und eine Version 2 mit nur dem legitimen Code erstellen und nur die Version 1 in 1% der Anfragen ausführen, um stealthy zu bleiben.
Kopiere den ursprünglichen Code der Lambda
Erstelle eine neue Version, die den ursprünglichen Code hintertürig macht (oder nur mit bösartigem Code). Veröffentliche und deploye diese Version auf $LATEST
Rufe das API-Gateway auf, das mit der Lambda verbunden ist, um den Code auszuführen
Erstelle eine neue Version mit dem ursprünglichen Code, veröffentliche und deploye diese Version auf $LATEST.
Dies wird den hintertürigen Code in einer vorherigen Version verbergen
Gehe zum API Gateway und erstelle eine neue POST-Methode (oder wähle eine andere Methode), die die hintertürige Version der Lambda ausführt: arn:aws:lambda:us-east-1:<acc_id>:function:<func_name>:1
Beachte das finale :1 der arn das die Version der Funktion anzeigt (Version 1 wird in diesem Szenario die hintertürige sein).
Wähle die erstellte POST-Methode aus und wähle in Aktionen API bereitstellen
Jetzt, wenn du die Funktion über POST aufrufst, wird deine Hintertür aufgerufen
Die Tatsache, dass du Lambda-Funktionen ausführen kannst, wenn etwas passiert oder wenn etwas Zeit vergeht, macht Lambda zu einer schönen und gängigen Möglichkeit, Persistenz zu erlangen und Erkennung zu vermeiden. Hier sind einige Ideen, um deine Präsenz in AWS stealthy zu gestalten, indem du Lambdas erstellst.
Jedes Mal, wenn ein neuer Benutzer erstellt wird, generiert Lambda einen neuen Benutzerschlüssel und sendet ihn an den Angreifer.
Jedes Mal, wenn eine neue Rolle erstellt wird, gewährt Lambda die Berechtigung zur Annahme von Rollen an kompromittierte Benutzer.
Jedes Mal, wenn neue CloudTrail-Protokolle generiert werden, lösche/ändere sie.
Lerne & übe AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Lerne & übe GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)