AWS - Lambda Persistence
Lambda
Für weitere Informationen siehe:
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:
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.
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
Kopiere den ursprünglichen Code der Lambda
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
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ürten 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ürte 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 angibt (Version 1 wird in diesem Szenario die hintertürte 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
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.
Last updated