AWS - GuardDuty Enum

Wesprzyj HackTricks

GuardDuty

Zgodnie z dokumentacją: GuardDuty łączy uczenie maszynowe, wykrywanie anomalii, monitorowanie sieci i odkrywanie złośliwych plików, korzystając zarówno z źródeł AWS, jak i wiodących na rynku źródeł zewnętrznych, aby pomóc w ochronie obciążeń pracy i danych w AWS. GuardDuty jest zdolny do analizowania dziesiątek miliardów zdarzeń z wielu źródeł danych AWS, takich jak dzienniki zdarzeń AWS CloudTrail, dzienniki przepływów Amazon Virtual Private Cloud (VPC), audyt i dzienniki systemowe Amazon Elastic Kubernetes Service (EKS) oraz dzienniki zapytań DNS.

Amazon GuardDuty identyfikuje nietypową aktywność w Twoich kontach, analizuje istotność z punktu widzenia bezpieczeństwa tej aktywności i podaje kontekst, w jakim została wywołana. Pozwala to osobie reagującej określić, czy powinna poświęcić czas na dalsze dochodzenie.

Alerty pojawiają się w konsoli GuardDuty (90 dni) i zdarzeniach CloudWatch.

Gdy użytkownik wyłącza GuardDuty, przestaje monitorować środowisko AWS i nie generuje żadnych nowych ustaleń, a istniejące ustalenia zostaną utracone. Jeśli po prostu go zatrzymasz, istniejące ustalenia pozostaną.

Przykład Ustaleń

  • 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 sondowanie portów znanego złego IP.

  • Zagrożenie instancji: Aktywność wskazująca na zagrożenie instancji, takie jak kopanie kryptowalut, działanie backdoor command and control (C&C), złośliwe oprogramowanie używające algorytmów generowania domen (DGA), wychodząca aktywność odmowy usługi, nietypowy wysoki ruch sieciowy, nietypowe protokoły sieciowe, wychodząca komunikacja instancji z znanym złośliwym IP, tymczasowe poświadczenia Amazon EC2 używane przez zewnętrzny adres IP, i wyciek danych za pomocą DNS.

  • Zagrożenie konta: Powszechne wzorce wskazujące na zagrożenie konta obejmują wywołania API z nietypowej geolokalizacji lub anonimizującego proxy, próby wyłączenia rejestrowania AWS CloudTrail, zmiany osłabiające politykę hasła konta, nietypowe uruchomienia instancji lub infrastruktury, wdrożenia infrastruktury w nietypowym regionie, kradzież poświadczeń, podejrzana aktywność logowania do bazy danych, i wywołania API z znanych złośliwych adresów IP.

  • Zagrożenie kubełka: Aktywność wskazująca na zagrożenie kubełka, takie jak podejrzane wzorce dostępu do danych wskazujące na nadużycie poświadczeń, nietypowa aktywność API Amazon S3 z hosta zdalnego, nieautoryzowany dostęp do S3 z znanych złośliwych adresów IP, i wywołania API do pobierania danych z kubełków S3 przez użytkownika bez wcześniejszej historii dostępu do kubełka lub wywołane z nietypowej lokalizacji. Amazon GuardDuty ciągle monitoruje i analizuje zdarzenia danych S3 AWS CloudTrail (np. GetObject, ListObjects, DeleteObject) w celu wykrycia podejrzanej aktywności we wszystkich kubełkach Amazon S3.

Informacje o Ustaleniach

Podsumowanie ustaleń:

  • Typ ustalenia

  • Powaga: 7-8.9 Wysoka, 4-6.9 Średnia, 01-3.9 Niska

  • Region

  • ID konta

  • ID zasobu

  • Czas wykrycia

  • Która lista zagrożeń została użyta

Treść zawiera te informacje:

  • Dotknięty zasób

  • Działanie

  • Aktor: Adres IP, port i domena

  • Dodatkowe informacje

Wszystkie Ustalenia

Dostęp do listy wszystkich ustaleń GuardDuty: https://docs.aws.amazon.com/guardduty/latest/ug/guardduty_finding-types-active.html

Wielokrotne Konta

Poprzez Zaproszenie

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.

Poprzez Organizację

Możesz wyznaczyć dowolne konto w organizacji jako administratora delegowanego GuardDuty. Tylko konto zarządzające organizacją może wyznaczyć administratora delegowanego.

Konto, które zostaje wyznaczone jako administrator delegowany, staje się kontem administratora GuardDuty, ma automatycznie włączony GuardDuty w wyznaczonym regionie AWS, a także ma uprawnienie do włączania i zarządzania GuardDuty dla wszystkich kont w organizacji w tym regionie. Pozostałe konta w organizacji mogą być przeglądane i dodawane jako konta członkowskie GuardDuty powiązane z tym kontem administratora delegowanego.

Wyliczanie

# Get Org config
aws guardduty list-organization-admin-accounts #Get Delegated Administrator
aws guardduty describe-organization-configuration --detector-id <id>

# Check external invitations
aws guardduty list-invitations
aws guardduty get-invitations-count

# Detector Information
aws guardduty list-detectors # 1 detector per account with GuardDuty
aws guardduty get-detector --detector-id <id> # Get detector info
aws guardduty get-master-account --detector-id <id>

# Get filters
aws guardduty list-filters --detector-id <id> # Check filters
aws guardduty get-filter --detector-id <id> --filter-name <name>

# Findings
aws guardduty list-findings --detector-id <id> # List findings
aws guardduty get-findings --detector-id <id> --finding-ids <id> # Get details about the finding
aws guardduty get-findings-statistics --detector-id <id> --finding-statistic-types <types>

# Get trusted IP addresses
aws guardduty list-ip-sets --detector-id <id>
aws guardduty get-ip-set --detector-id <id>

# Member accounts of the current AWS GuardDuty master account
aws guardduty list-members --detector-id <id>
aws guardduty get-members --detector-id <id> --account-ids <id>
aws guardduty get-member-detectors --detector-id <id> --account-ids <id>

# Continuously export its findings to an Amazon S3 bucket
aws guardduty list-publishing-destinations --detector-id <id>

# Intelligence sets that you have uploaded to GuardDuty
aws guardduty list-threat-intel-sets --detector-id <id>
aws guardduty get-threat-intel-set --detector-id <id> --threat-intel-set-id <id>

GuardDuty Ominięcie

Ogólne Wskazówki

Spróbuj dowiedzieć się jak najwięcej o zachowaniu poświadczeń, których zamierzasz użyć:

  • Czasy, w których są używane

  • Lokalizacje

  • Agenty użytkownika / Usługi (Może być używane z awscli, konsoli internetowej, lambdy...)

  • Regularnie używane uprawnienia

Mając te informacje, odtwórz jak najdokładniej ten sam scenariusz, aby uzyskać dostęp:

  • Jeśli jest to użytkownik lub rola dostępna przez użytkownika, spróbuj użyć jej o tych samych godzinach, z tej samej geolokacji (nawet tego samego dostawcy usług internetowych i adresu IP, jeśli to możliwe)

  • Jeśli jest to rola używana przez usługę, utwórz tę samą usługę w tej samej regionie i użyj jej stamtąd w tych samych przedziałach czasowych

  • Zawsze spróbuj użyć tych samych uprawnień, jakie używał ten podmiot

  • Jeśli musisz użyć innych uprawnień lub nadużyć uprawnienia (na przykład, pobierz 1.000.000 plików dziennika cloudtrail) zrób to powoli i z minimalną ilością interakcji z AWS (awscli czasami wywołuje kilka interfejsów API do odczytu przed zapisaniem)

Złamanie GuardDuty

guardduty:UpdateDetector

Z tym uprawnieniem możesz wyłączyć GuardDuty, aby uniknąć wyzwalania alertów.

aws guardduty update-detector --detector-id <detector-id> --no-enable
aws guardduty update-detector --detector-id <detector-id> --data-sources S3Logs={Enable=false}

iam:PutRolePolicy, (guardduty:CreateIPSet|guardduty:UpdateIPSet)

Atakujący posiadający wcześniejsze uprawnienia mogą modyfikować listę zaufanych adresów IP GuardDuty, dodając swój adres IP i unikając generowania alertów.

aws guardduty update-ip-set --detector-id <detector-id> --activate --ip-set-id <ip-set-id> --location https://some-bucket.s3-eu-west-1.amazonaws.com/attacker.csv

guardduty:DeletePublishingDestination

Atakujący mogą usunąć cel, aby zapobiec generowaniu alertów:

aws guardduty delete-publishing-destination --detector-id <detector-id> --destination-id <dest-id>

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.

Konkretne Przykłady Ominięcia Wyników

Zauważ, że istnieje wiele wyników GuardDuty, jednak nie wszystkie z nich będą miały wpływ na Ciebie jako Red Teamera, a co lepsze, masz pełną dokumentację każdego z nich pod adresem https://docs.aws.amazon.com/guardduty/latest/ug/guardduty_finding-types-active.html, więc zerknij przed podjęciem jakiejkolwiek akcji, aby nie zostać wykrytym.

Oto kilka przykładów omijania konkretnych wyników GuardDuty:

GuardDuty wykrywa żądania interfejsu API AWS z popularnych narzędzi do testów penetracyjnych i wywołuje wynik PenTest. Jest to wykrywane przez nazwę agenta użytkownika, która jest przekazywana w żądaniu interfejsu API. Dlatego zmieniając agenta użytkownika można zapobiec wykryciu ataku przez GuardDuty.

Aby temu zapobiec, możesz wyszukać skrypt session.py w pakiecie botocore i zmodyfikować agenta użytkownika, lub ustawić Burp Suite jako proxy AWS CLI i zmienić nagłówek user-agent za pomocą MitM, lub po prostu użyć systemu operacyjnego takiego jak Ubuntu, Mac lub Windows, aby zapobiec wywołaniu tego alertu.

UnauthorizedAccess:IAMUser/InstanceCredentialExfiltration

Wydobycie poświadczeń EC2 z usługi metadanych i wykorzystanie ich poza środowiskiem AWS aktywuje alert UnauthorizedAccess:IAMUser/InstanceCredentialExfiltration.OutsideAWS. Natomiast wykorzystanie tych poświadczeń z Twojej instancji EC2 wywołuje alert UnauthorizedAccess:IAMUser/InstanceCredentialExfiltration.InsideAWS. Jednak użycie poświadczeń na innej skompromitowanej instancji EC2 w ramach tego samego konta pozostaje niewykryte, nie wywołując żadnego alertu.

Dlatego używaj wydobytych poświadczeń wewnątrz maszyny, gdzie je znalazłeś, aby nie wywoływać tego alertu.

Odnośniki

Wesprzyj HackTricks

Last updated