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 wielu ź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 nieblokowane 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 anonimowego, 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 kubełka: Aktywność wskazująca na kompromitację kubełka, taka jak podejrzane wzorce dostępu do danych wskazujące na nadużycie poświadczeń, nietypowa aktywność API Amazon S3 z zdalnego hosta, nieautoryzowany dostęp S3 z znanych złośliwych adresów IP oraz wywołania API w celu pobrania danych z kubełków S3 od użytkownika bez wcześniejszej historii dostępu do kubełka lub wywołanego 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 kubełkach 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 na 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ść stosowania 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ść wyników w konsoli GuardDuty. GuardDuty będzie nadal analizować zdarzenia w Twoim środowisku AWS, identyfikować podejrzane lub nieoczekiwane zachowanie i generować wyniki.
Zauważ, że istnieje dziesiątki wyników 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 konkretnych obejść wyników GuardDuty:
GuardDuty wykrywa żądania API AWS z popularnych narzędzi do testowania penetracyjnego i uruchamia Wynik 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 na zewnątrz środowiska AWS aktywuje alert UnauthorizedAccess:IAMUser/InstanceCredentialExfiltration.OutsideAWS
. Z kolei, korzystanie z tych poświadczeń z instancji EC2 uruchamia alert UnauthorizedAccess:IAMUser/InstanceCredentialExfiltration.InsideAWS
. Jednak używanie poświadczeń na innej skompromitowanej instancji EC2 w tym samym koncie pozostaje niewykryte, nie generując alertu.
Dlatego użyj wyeksfiltrowanych 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)