AWS - GuardDuty Enum
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Zgodnie z dokumentacją: GuardDuty łączy uczenie maszynowe, wykrywanie anomalii, monitorowanie sieci i odkrywanie złośliwych plików, korzystając zarówno z AWS, jak i wiodących źródeł zewnętrznych, aby pomóc w ochronie obciążeń i danych na AWS. GuardDuty jest w stanie analizować dziesiątki miliardów zdarzeń z różnych źródeł danych AWS, takich jak dzienniki zdarzeń AWS CloudTrail, dzienniki przepływu Amazon Virtual Private Cloud (VPC), dzienniki audytów i systemowe Amazon Elastic Kubernetes Service (EKS) oraz dzienniki zapytań DNS.
Amazon GuardDuty identyfikuje nietypową aktywność w Twoich kontach, analizuje znaczenie bezpieczeństwa tej aktywności i podaje kontekst, w jakim została wywołana. Umożliwia to osobie reagującej określenie, czy powinna poświęcić czas na dalsze dochodzenie.
Alerty pojawiają się w konsoli GuardDuty (90 dni) oraz w CloudWatch Events.
Gdy użytkownik wyłączy GuardDuty, przestanie monitorować Twoje środowisko AWS i nie wygeneruje żadnych nowych ustaleń, a istniejące ustalenia zostaną utracone. Jeśli po prostu go zatrzymasz, istniejące ustalenia pozostaną.
Rozpoznanie: Aktywność sugerująca rozpoznanie przez atakującego, takie jak nietypowa aktywność API, podejrzane próby logowania do bazy danych, skanowanie portów wewnątrz VPC, nietypowe wzorce nieudanych prób logowania lub skanowanie portów z znanego złego adresu IP.
Kompromitacja instancji: Aktywność wskazująca na kompromitację instancji, taka jak kopanie kryptowalut, złośliwe polecenia i kontrola (C&C), złośliwe oprogramowanie wykorzystujące algorytmy generowania domen (DGA), aktywność odmowy usługi wychodzącej, nietypowo wysoki wolumen ruchu sieciowego, nietypowe protokoły sieciowe, komunikacja instancji wychodzącej z znanym złośliwym adresem IP, tymczasowe poświadczenia Amazon EC2 używane przez zewnętrzny adres IP oraz eksfiltracja danych przy użyciu DNS.
Kompromitacja konta: Typowe wzorce wskazujące na kompromitację konta obejmują wywołania API z nietypowej geolokalizacji lub proxy anonimizującego, próby wyłączenia logowania AWS CloudTrail, zmiany osłabiające politykę haseł konta, nietypowe uruchomienia instancji lub infrastruktury, wdrożenia infrastruktury w nietypowym regionie, kradzież poświadczeń, podejrzana aktywność logowania do bazy danych oraz wywołania API z znanych złośliwych adresów IP.
Kompromitacja koszyka: Aktywność wskazująca na kompromitację koszyka, taka jak podejrzane wzorce dostępu do danych wskazujące na nadużycie poświadczeń, nietypowa aktywność API Amazon S3 zdalnego hosta, nieautoryzowany dostęp S3 z znanych złośliwych adresów IP oraz wywołania API w celu pobrania danych z koszyków S3 przez użytkownika bez wcześniejszej historii dostępu do koszyka lub wywołane z nietypowej lokalizacji. Amazon GuardDuty nieprzerwanie monitoruje i analizuje zdarzenia danych S3 AWS CloudTrail (np. GetObject, ListObjects, DeleteObject), aby wykrywać podejrzaną aktywność we wszystkich Twoich koszykach Amazon S3.
Uzyskaj dostęp do listy wszystkich ustaleń GuardDuty w: https://docs.aws.amazon.com/guardduty/latest/ug/guardduty_finding-types-active.html
Możesz zaprosić inne konta do innego konta AWS GuardDuty, aby każde konto było monitorowane z tego samego GuardDuty. Konto główne musi zaprosić konta członkowskie, a następnie przedstawiciel konta członkowskiego musi zaakceptować zaproszenie.
Możesz wyznaczyć dowolne konto w organizacji jako delegowanego administratora GuardDuty. Tylko konto zarządzające organizacją może wyznaczyć delegowanego administratora.
Konto, które zostanie wyznaczone jako delegowany administrator, staje się kontem administratora GuardDuty, ma automatycznie włączony GuardDuty w wyznaczonym regionie AWS i ma również uprawnienia do włączania i zarządzania GuardDuty dla wszystkich kont w organizacji w tym regionie. Inne konta w organizacji mogą być wyświetlane i dodawane jako konta członkowskie GuardDuty związane z tym kontem delegowanego administratora.
Spróbuj dowiedzieć się jak najwięcej o zachowaniu poświadczeń, których zamierzasz użyć:
Czas, w którym są używane
Lokalizacje
User Agents / Usługi (może być używane z awscli, webconsole, lambda...)
Uprawnienia regularnie używane
Z tą informacją, odtwórz jak najwięcej tego samego scenariusza, aby użyć dostępu:
Jeśli to jest użytkownik lub rola dostępna przez użytkownika, spróbuj użyć jej w tych samych godzinach, z tej samej geolokalizacji (nawet tego samego ISP i IP, jeśli to możliwe)
Jeśli to jest rola używana przez usługę, stwórz tę samą usługę w tym samym regionie i użyj jej stamtąd w tych samych przedziałach czasowych
Zawsze staraj się używać tych samych uprawnień, które ten podmiot używał
Jeśli musisz użyć innych uprawnień lub nadużyć uprawnienia (na przykład, pobrać 1.000.000 plików dziennika cloudtrail), rób to powoli i z minimalną ilością interakcji z AWS (awscli czasami wywołuje kilka API do odczytu przed zapisem)
guardduty:UpdateDetector
Dzięki temu uprawnieniu możesz wyłączyć GuardDuty, aby uniknąć wyzwalania alertów.
guardduty:CreateFilter
Atakujący z tym uprawnieniem mają możliwość zastosowania filtrów do automatycznego archiwizowania wyników:
iam:PutRolePolicy
, (guardduty:CreateIPSet
|guardduty:UpdateIPSet
)Napastnicy z wcześniejszymi uprawnieniami mogli modyfikować Zaufaną listę IP GuardDuty, dodając do niej swój adres IP i unikać generowania alertów.
guardduty:DeletePublishingDestination
Napastnicy mogą usunąć miejsce docelowe, aby zapobiec powiadomieniom:
Usunięcie tego miejsca publikacji nie wpłynie na generowanie ani widoczność ustaleń w konsoli GuardDuty. GuardDuty będzie nadal analizować zdarzenia w Twoim środowisku AWS, identyfikować podejrzane lub nieoczekiwane zachowanie i generować ustalenia.
Zauważ, że istnieje dziesiątki ustaleń GuardDuty, jednak jako Red Teamer nie wszystkie z nich będą miały na Ciebie wpływ, a co lepsze, masz pełną dokumentację każdego z nich w https://docs.aws.amazon.com/guardduty/latest/ug/guardduty_finding-types-active.html, więc zapoznaj się z nią przed podjęciem jakichkolwiek działań, aby nie zostać złapanym.
Oto kilka przykładów obejść konkretnych ustaleń GuardDuty:
GuardDuty wykrywa żądania API AWS z popularnych narzędzi do testowania penetracyjnego i uruchamia ustalenie PenTest. Wykrywa to na podstawie nazwa agenta użytkownika, która jest przekazywana w żądaniu API. Dlatego modyfikując agenta użytkownika, można zapobiec wykryciu ataku przez GuardDuty.
Aby temu zapobiec, możesz poszukać w skrypcie session.py
w pakiecie botocore
i zmodyfikować agenta użytkownika, lub ustawić Burp Suite jako proxy AWS CLI i zmienić agenta użytkownika za pomocą MitM lub po prostu użyć systemu operacyjnego takiego jak Ubuntu, Mac lub Windows, co zapobiegnie uruchomieniu tego alertu.
Ekstrakcja poświadczeń EC2 z usługi metadanych i wykorzystywanie ich poza środowiskiem AWS aktywuje alert UnauthorizedAccess:IAMUser/InstanceCredentialExfiltration.OutsideAWS
. Z kolei wykorzystanie tych poświadczeń z instancji EC2 uruchamia alert UnauthorizedAccess:IAMUser/InstanceCredentialExfiltration.InsideAWS
. Jednak użycie poświadczeń na innej skompromitowanej instancji EC2 w tym samym koncie pozostaje niewykryte, nie generując alertu.
Dlatego użyj wyeksportowanych poświadczeń z wnętrza maszyny, w której je znalazłeś, aby nie uruchomić tego alertu.
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)