AWS - Lambda Persistence
Lambda
Aby uzyskać więcej informacji, sprawdź:
Utrzymywanie warstwy Lambda
Możliwe jest wprowadzenie/tylnych drzwi do warstwy, aby wykonać dowolny kod podczas wykonywania lambdy w sposób ukryty:
Utrzymywanie rozszerzenia Lambda
Wykorzystując warstwy Lambda, możliwe jest również nadużywanie rozszerzeń i utrzymywanie się w lambdzie, a także kradzież i modyfikacja żądań.
Poprzez polityki zasobów
Możliwe jest przyznanie dostępu do różnych akcji lambdy (takich jak wywołanie lub aktualizacja kodu) dla zewnętrznych kont:
Wersje, aliasy i wagi
Lambda może mieć różne wersje (z różnym kodem w każdej wersji). Następnie możesz utworzyć różne aliasy z różnymi wersjami lambdy i ustawić różne wagi dla każdej. W ten sposób atakujący mógłby stworzyć wersję 1 z tylnymi drzwiami i wersję 2 tylko z legalnym kodem i wykonywać wersję 1 tylko w 1% żądań, aby pozostać w ukryciu.
Tylnie drzwi wersji + API Gateway
Skopiuj oryginalny kod lambdy
Utwórz nową wersję z tylnymi drzwiami oryginalnego kodu (lub tylko z złośliwym kodem). Opublikuj i wdroż tę wersję do $LATEST
Wywołaj bramę API związaną z lambdą, aby wykonać kod
Utwórz nową wersję z oryginalnym kodem, opublikuj i wdroż tę wersję do $LATEST.
To ukryje kod z tylnymi drzwiami w poprzedniej wersji
Przejdź do API Gateway i utwórz nową metodę POST (lub wybierz inną metodę), która wykona wersję lambdy z tylnymi drzwiami:
arn:aws:lambda:us-east-1:<acc_id>:function:<func_name>:1
Zauważ końcowe :1 w arn wskazujące wersję funkcji (wersja 1 będzie wersją z tylnymi drzwiami w tym scenariuszu).
Wybierz utworzoną metodę POST i w Akcjach wybierz
Wdróż API
Teraz, gdy wywołasz funkcję za pomocą POST, twoje Tylnie drzwi zostaną wywołane
Cron/aktywator zdarzeń
Fakt, że możesz uruchamiać funkcje lambda, gdy coś się wydarzy lub gdy upłynie pewien czas, sprawia, że lambda jest miłym i powszechnym sposobem na uzyskanie trwałości i unikanie wykrycia. Oto kilka pomysłów, aby uczynić swoją obecność w AWS bardziej ukrytą, tworząc lambdy.
Za każdym razem, gdy nowy użytkownik jest tworzony, lambda generuje nowy klucz użytkownika i wysyła go do atakującego.
Za każdym razem, gdy nowa rola jest tworzona, lambda przyznaje uprawnienia do przyjęcia roli skompromitowanym użytkownikom.
Za każdym razem, gdy generowane są nowe logi cloudtrail, usuń/zmień je.
Last updated