AWS - Lambda Persistence
Lambda
Aby uzyskać więcej informacji, sprawdź:
pageAWS - Lambda EnumTrwałość warstwy Lambda
Możliwe jest wprowadzenie/backdoor do warstwy w celu wykonania dowolnego kodu podczas wykonywania lambdy w sposób skryty:
pageAWS - Lambda Layers PersistenceTrwałość rozszerzenia Lambda
Wykorzystując warstwy Lambda, możliwe jest również wykorzystanie rozszerzeń i trwałość w lambdzie, ale także kradzież i modyfikacja żądań.
pageAWS - Abusing Lambda ExtensionsPoprzez zasady zasobów
Możliwe jest udzielenie dostępu do różnych działań lambdy (takich jak wywołanie lub aktualizacja kodu) zewnętrznym kontom:
Wersje, aliasy i wagi
Lambda może mieć różne wersje (z różnym kodem w każdej wersji). Następnie można utworzyć różne aliasy z różnymi wersjami lambdy i przypisać im różne wagi. W ten sposób atakujący mógłby utworzyć wersję 1 z backdoorem i wersję 2 tylko z prawidłowym kodem i wykonywać tylko wersję 1 w 1% żądań, aby pozostać skrytym.
Backdoor wersji + Bramka API
Skopiuj oryginalny kod lambdy
Utwórz nową wersję z backdoorem oryginalnego kodu (lub po prostu z złośliwym kodem). Opublikuj i wdroż tę wersję do $LATEST
Wywołaj bramkę API związaną z lambdą, aby wykonać kod
Utwórz nową wersję z oryginalnym kodem, Opublikuj i wdroż tę wersję do $LATEST.
To ukryje backdoored kod w poprzedniej wersji
Przejdź do Bramki API i utwórz nową metodę POST (lub wybierz inną metodę), która wykona zbackdoorowaną wersję lambdy:
arn:aws:lambda:us-east-1:<acc_id>:function:<func_name>:1
Zauważ końcowe :1 w arn wskazujące na wersję funkcji (wersja 1 będzie backdoored w tym scenariuszu).
Wybierz utworzoną metodę POST i w działaniach wybierz
Wdroż API
Teraz, gdy wywołasz funkcję za pomocą POST, Twój Backdoor zostanie wywołany
Aktywator Cron/Event
Możliwość uruchamiania funkcji lambdy, gdy coś się wydarzy lub gdy minie pewien czas, sprawia, że lambda jest dobrym i powszechnym sposobem uzyskania trwałości i uniknięcia wykrycia. Oto kilka pomysłów, jak uczynić swoją obecność w AWS bardziej skrytą, tworząc lambdy.
Za każdym razem, gdy zostanie utworzony nowy użytkownik, lambda generuje nowy klucz użytkownika i wysyła go do atakującego.
Za każdym razem, gdy zostanie utworzona nowa rola, lambda nadaje uprawnienia do przyjmowania roli skompromitowanym użytkownikom.
Za każdym razem, gdy zostaną wygenerowane nowe dzienniki cloudtrail, usuń/zmodyfikuj je
Last updated