AWS - Lambda Persistence
Last updated
Last updated
Ucz się i ćwicz Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE) Ucz się i ćwicz Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)
Aby uzyskać więcej informacji, sprawdź:
AWS - Lambda EnumMożliwe jest wprowadzenie/tylnych drzwi do warstwy, aby wykonać dowolny kod podczas wykonywania lambdy w sposób ukryty:
AWS - Lambda Layers PersistenceWykorzystując warstwy Lambda, możliwe jest również nadużywanie rozszerzeń i utrzymywanie się w lambdzie, ale także kradzież i modyfikacja żądań.
AWS - Abusing Lambda ExtensionsMożliwe jest przyznanie dostępu do różnych akcji lambdy (takich jak wywołanie lub aktualizacja kodu) zewnętrznym kontom:
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.
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
Fakt, że możesz uruchamiać funkcje lambda, gdy coś się wydarzy lub gdy upłynie jakiś 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 tworzony jest nowy użytkownik, lambda generuje nowy klucz użytkownika i wysyła go do atakującego.
Za każdym razem, gdy tworzona jest nowa rola, lambda przyznaje uprawnienia do przyjęcia roli skompromitowanym użytkownikom.
Za każdym razem, gdy generowane są nowe logi cloudtrail, usuń/zmień je.