AWS - Lambda Persistence

Support HackTricks

Lambda

Für weitere Informationen siehe:

AWS - Lambda Enum

Lambda Layer Persistence

Es ist möglich, eine Schicht einzuführen/hintertüren, um beliebigen Code auszuführen, wenn die Lambda stealthy ausgeführt wird:

AWS - Lambda Layers Persistence

Lambda Extension Persistence

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 ändern.

AWS - Abusing Lambda Extensions

Via resource policies

Es ist möglich, externen Konten Zugriff auf verschiedene Lambda-Aktionen (wie Invoke oder Update Code) zu gewähren:

Versions, Aliases & Weights

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ürte 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.

Version Backdoor + API Gateway

  1. Kopiere den ursprünglichen Code der Lambda

  2. Erstelle eine neue Version, die den ursprünglichen Code hintertürt (oder nur mit bösartigem Code). Veröffentliche und deploye diese Version auf $LATEST

  3. Rufe das API-Gateway auf, das mit der Lambda verbunden ist, um den Code auszuführen

  4. Erstelle eine neue Version mit dem ursprünglichen Code, veröffentliche und deploye diese Version auf $LATEST.

  5. Dies wird den hintertürten Code in einer vorherigen Version verbergen

  6. Gehe zum API Gateway und erstelle eine neue POST-Methode (oder wähle eine andere Methode), die die hintertürte Version der Lambda ausführt: arn:aws:lambda:us-east-1:<acc_id>:function:<func_name>:1

  7. Beachte das finale :1 der arn das die Version der Funktion angibt (Version 1 wird in diesem Szenario die hintertürte sein).

  8. Wähle die erstellte POST-Methode aus und wähle in Aktionen API bereitstellen

  9. Jetzt, wenn du die Funktion über POST aufrufst, wird deine Hintertür aufgerufen

Cron/Event actuator

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 den kompromittierten Benutzern die Berechtigung, Rollen zu übernehmen.

  • Jedes Mal, wenn neue CloudTrail-Protokolle generiert werden, lösche/ändere sie.

Support HackTricks

Last updated