AWS - GuardDuty Enum

Naucz się hakować AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)!

Inne sposoby wsparcia HackTricks:

GuardDuty

Zgodnie z dokumentacją: GuardDuty łączy w sobie uczenie maszynowe, wykrywanie anomalii, monitorowanie sieci i odkrywanie złośliwych plików, korzystając zarówno z usług AWS, jak i z wiodących źródeł zewnętrznych, aby pomóc w ochronie obciążeń i danych w AWS. GuardDuty jest zdolny do analizowania dziesiątek miliardów zdarzeń z różnych źródeł danych AWS, takich jak dzienniki zdarzeń AWS CloudTrail, dzienniki przepływu Amazon Virtual Private Cloud (VPC) Flow Logs, 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 w CloudWatch Events.

Kiedy użytkownik wyłącza GuardDuty, przestaje on monitorować środowisko AWS i nie generuje żadnych nowych wyników, a istniejące wyniki zostaną utracone. Jeśli go tylko zatrzymasz, istniejące wyniki pozostaną.

Przykład wyników

  • Rekonesans: Aktywność sugerująca rekonesans 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 z zablokowanego znanego złego IP.

  • Kompromitacja instancji: Aktywność wskazująca na kompromitację instancji, taką jak kopanie kryptowalut, działanie backdoorów i kontrola (C&C), złośliwe oprogramowanie korzystające z algorytmów generowania domen (DGA), działanie odmowy usługi na zewnątrz, niezwykle wysoki ruch sieciowy, nietypowe protokoły sieciowe, komunikacja instancji z znanym złośliwym IP, tymczasowe poświadczenia Amazon EC2 używane przez zewnętrzny adres IP oraz wyciek danych za pomocą DNS.

  • Kompromitacja konta: Powszechne wzorce wskazujące na kompromitację konta obejmują wywołania API z nietypowej lokalizacji lub z anonimizującego serwera proxy, próby wyłączenia logowania 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 oraz wywołania API z znanych złośliwych adresów IP.

  • Kompromitacja kubełka: Aktywność wskazująca na kompromitację kubełka, taką 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 do S3 z znanych złośliwych adresów IP oraz wywołania API w celu pobrania danych z kubełków S3 przez użytkownika, który wcześniej nie miał historii dostępu do kubełka lub wywołane z nietypowej lokalizacji. Amazon GuardDuty ciągle monitoruje i analizuje zdarzenia danych AWS CloudTrail S3 (np. GetObject, ListObjects, DeleteObject), aby wykrywać podejrzaną aktywność we wszystkich kubełkach Amazon S3.

Informacje o wynikach

Podsumowanie wyniku:

  • Typ wyniku

  • 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

W treści znajdują się następujące informacje:

  • Dotknięty zasób

  • Akcja

  • Aktor: Adres IP, port i domena

  • Dodatkowe informacje

Wszystkie wyniki

Dostęp do listy wszystkich wyników GuardDuty można uzyskać pod adresem: https://docs.aws.amazon.com/guardduty/latest/ug/guardduty_finding-types-active.html

Wielokrotne konta

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

Przez organizację

Możesz wyznaczyć dowolne konto w organizacji jako delegowany administrator 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, automatycznie włącza 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 powiązane z tym kontem delegowanego administratora.

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>

Bypass GuardDuty

Ogólne wskazówki

Spróbuj dowiedzieć się jak najwięcej o zachowaniu używanych przez Ciebie poświadczeń:

  • Częstotliwość ich użycia

  • Lokalizacje

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

  • Regularnie używane uprawnienia

Na podstawie tych informacji, odtwórz jak najwięcej scenariuszy, aby uzyskać dostęp:

  • Jeśli jest to użytkownik lub rola dostępna przez użytkownika, spróbuj użyć jej o tej samej godzinie, z tej samej lokalizacji (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 w tym samym przedziale czasowym

  • Zawsze spróbuj użyć tych samych uprawnień, które 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 (czasami awscli wywołuje kilka operacji odczytu przed operacją zapisu)

Omijanie GuardDuty

guardduty:UpdateDetector

Z tym uprawnieniem możesz wyłączyć GuardDuty, aby uniknąć wywoływania 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}

guardduty:CreateFilter

Atakujący posiadający to uprawnienie mają możliwość używania filtrów do automatycznego archiwizowania wyników:

aws guardduty create-filter  --detector-id <detector-id> --name <filter-name> --finding-criteria file:///tmp/criteria.json --action ARCHIVE

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

Atakujący posiadający wcześniej wymienione uprawnienia mogą modyfikować listę zaufanych adresów IP w GuardDuty, dodając do niej 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 Unikania Wykrycia

Należy zauważyć, że istnieje wiele 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 na stronie https://docs.aws.amazon.com/guardduty/latest/ug/guardduty_finding-types-active.html, więc zerknij na nią przed podjęciem jakiejkolwiek akcji, aby nie zostać wykrytym.

Oto kilka przykładów unikania wykrycia konkretnych wyników GuardDuty:

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

Aby temu zapobiec, można wyszukać skrypt 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, aby uniknąć wywołania tego alertu.

UnauthorizedAccess:IAMUser/InstanceCredentialExfiltration

Wyodrębnianie poświadczeń EC2 z usługi metadanych i używanie ich poza środowiskiem AWS aktywuje alert UnauthorizedAccess:IAMUser/InstanceCredentialExfiltration.OutsideAWS. Natomiast użycie tych poświadczeń z 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, w której je znalazłeś, aby nie wywoływać tego alertu.

Odwołania

Naucz się hakować AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)!

Inne sposoby wsparcia HackTricks:

Last updated