AWS - Lambda Persistence

Wsparcie dla HackTricks

Lambda

Aby uzyskać więcej informacji, sprawdź:

AWS - Lambda Enum

Utrzymywanie warstwy Lambda

Możliwe jest wprowadzenie/tylnych drzwi do warstwy, aby wykonać dowolny kod podczas wykonywania lambdy w sposób ukryty:

AWS - Lambda Layers Persistence

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ń.

AWS - Abusing Lambda Extensions

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

  1. Skopiuj oryginalny kod lambdy

  2. Utwórz nową wersję z tylnymi drzwiami oryginalnego kodu (lub tylko z złośliwym kodem). Opublikuj i wdroż tę wersję do $LATEST

  3. Wywołaj bramę API związaną z lambdą, aby wykonać kod

  4. Utwórz nową wersję z oryginalnym kodem, opublikuj i wdroż tę wersję do $LATEST.

  5. To ukryje kod z tylnymi drzwiami w poprzedniej wersji

  6. 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

  7. Zauważ końcowe :1 w arn wskazujące wersję funkcji (wersja 1 będzie wersją z tylnymi drzwiami w tym scenariuszu).

  8. Wybierz utworzoną metodę POST i w Akcjach wybierz Wdróż API

  9. 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.

Wsparcie dla HackTricks

Last updated