AWS - GuardDuty Enum

Вивчайте хакінг AWS від нуля до героя з htARTE (HackTricks AWS Red Team Expert)!

Інші способи підтримки HackTricks:

GuardDuty

Згідно з документацією: GuardDuty поєднує навчання машин, виявлення аномалій, моніторинг мережі та виявлення шкідливих файлів, використовуючи як власні ресурси AWS, так і провідні відомі джерела, щоб допомогти захистити навантаження та дані на AWS. GuardDuty може аналізувати десятки мільярдів подій з різних джерел даних AWS, таких як журнали подій AWS CloudTrail, журнали потоків Amazon Virtual Private Cloud (VPC), журнали аудиту та системні журнали Amazon Elastic Kubernetes Service (EKS) та журнали запитів DNS.

Amazon GuardDuty виявляє незвичайну активність у ваших облікових записах, аналізує безпекову важливість активності та надає контекст, в якому вона була викликана. Це дозволяє респонденту визначити, чи варто витрачати час на подальше розслідування.

Сповіщення з'являються в консолі GuardDuty (90 днів) та подіях CloudWatch.

Коли користувач вимикає GuardDuty, він припиняє моніторинг вашого середовища AWS і не генерує жодних нових висновків, а існуючі висновки будуть втрачені. Якщо ви просто зупините його, існуючі висновки залишаться.

Приклади висновків

  • Розвідка: Активність, що вказує на розвідку з боку атакуючого, така як незвичайна активність API, підозрілі спроби входу в базу даних, внутрішній сканування портів в межах VPC, незвичайні шаблони невдалих запитів на вхід, або сканування портів з відомої поганої IP-адреси.

  • Компрометація екземпляра: Активність, що вказує на компрометацію екземпляра, така як майнінг криптовалюти, дія командного та контролю (C&C), шкідливе програмне забезпечення, що використовує алгоритми генерації доменів (DGA), вихідна дія заборони обслуговування, надзвичайно великий обсяг мережевого трафіку, незвичайні мережеві протоколи, вихідна комунікація екземпляра з відомою шкідливою IP-адресою, тимчасові облікові дані Amazon EC2, використані зовнішньою IP-адресою, та виведення даних за допомогою DNS.

  • Компрометація облікового запису: Загальні шаблони, що вказують на компрометацію облікового запису, включають виклики API з незвичайного місцезнаходження або анонімізуючого проксі, спроби вимкнути журналювання AWS CloudTrail, зміни, які послаблюють політику паролів облікового запису, незвичайні запуски екземпляра або інфраструктури, розгортання інфраструктури в незвичайному регіоні, крадіжка облікових даних, підозріла активність входу в базу даних та виклики API з відомих шкідливих IP-адрес.

  • Компрометація відра: Активність, що вказує на компрометацію відра, така як підозрілі шаблони доступу до даних, що вказують на зловживання обліковими даними, незвичайна активність API Amazon S3 з віддаленого хоста, несанкціонований доступ до S3 з відомих шкідливих IP-адрес, та виклики API для отримання даних у відрах S3 від користувача без попередньої історії доступу до відра або викликані з незвичайного місцезнаходження. Amazon GuardDuty постійно моніторить та аналізує події даних AWS CloudTrail S3 (наприклад, GetObject, ListObjects, DeleteObject), щоб виявити підозрілу активність у всіх ваших відрах Amazon S3.

Інформація про висновки

Загальна інформація:

  • Тип висновку

  • Серйозність: 7-8.9 Висока, 4-6.9 Середня, 01-3.9 Низька

  • Регіон

  • Ідентифікатор облікового запису

  • Ідентифікатор ресурсу

  • Час виявлення

  • Який список загроз був використаний

У тілі є така інформація:

  • Затронутий ресурс

  • Дія

  • Актор: IP-адреса, порт та домен

  • Додаткова інформація

Усі висновки

Отримайте список всіх висновків GuardDuty за посиланням: https://docs.aws.amazon.com/guardduty/latest/ug/guardduty_finding-types-active.html

Багато облікових записів

Запрошенням

Ви можете запросити інші облікові записи до іншого облікового запису AWS GuardDuty, щоб кожен обліковий запис був моніторований з одного GuardDuty. Головний обліковий запис повинен запросити облікові записи-члени, а потім представник облікового запису-члена повинен прийняти запрошення.

Через Організацію

Ви можете призначити будь-який обліковий запис у складі організації делегованим адміністратором GuardDuty. Тільки обліковий запис управління організацією може призначити делегованого адміністратора.

Обліковий запис, який стає делегованим адміністратором, стає обліковим записом адміністратора GuardDuty, автоматично активує GuardDuty в призначеному регіоні AWS, а також має дозвіл на активацію та управління GuardDuty для всіх облікових записів у організації в цьому регіоні. Інші облікові записи в організації можуть бути переглянуті та додані як облікові записи-члени, пов'язані з цим обліковим записом делегованого адміністратора.

Перелік

# 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

Загальні вказівки

Спробуйте дізнатися якомога більше про поведінку облікових даних, які ви збираєтеся використовувати:

  • Часи використання

  • Місцезнаходження

  • Агенти користувачів / Сервіси (вони можуть бути використані з awscli, веб-консолі, лямбда...)

  • Регулярно використовувані дозволи

Маючи цю інформацію, якомога точніше відтворіть такий же сценарій для використання доступу:

  • Якщо це користувач або роль, до якої має доступ користувач, спробуйте використовувати її в ті ж години, з того ж місцезнаходження (навіть того ж постачальника Інтернету та IP, якщо це можливо)

  • Якщо це роль, яку використовує сервіс, створіть такий же сервіс у тій же області та використовуйте його звідти в ті ж часові проміжки

  • Завжди намагайтеся використовувати ті ж дозволи, які використовував цей суб'єкт

  • Якщо вам потрібно використовувати інші дозволи або зловживати дозволом (наприклад, завантажити 1 000 000 файлів журналів CloudTrail), робіть це повільно та з мінімальною кількістю взаємодій з AWS (awscli іноді викликає кілька запитів на читання перед записом)

Обхід GuardDuty

guardduty:UpdateDetector

З цим дозволом ви можете вимкнути GuardDuty, щоб уникнути спрацьовування сповіщень.

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

Атакувальники з цим дозволом мають можливість використовувати фільтри для автоматичного архівування результатів:

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)

Зловмисники з попередніми привілеями можуть змінювати Список довірених IP-адрес GuardDuty, додаючи свою IP-адресу до нього та уникнути генерації сповіщень.

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

Зловмисники можуть видалити призначення, щоб уникнути сповіщень:

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

Видалення цієї публікації не вплине на генерацію або видимість результатів у консолі GuardDuty. GuardDuty продовжить аналізувати події у вашому середовищі AWS, виявляти підозрілу або неочікувану поведінку та генерувати результати.

Конкретні Приклади Ухилення Від Знаходження

Зверніть увагу, що існує десятки результатів GuardDuty, однак, як Червоний Тім, не всі з них вас стосуватимуться, і що ще краще, у вас є повна документація кожного з них на https://docs.aws.amazon.com/guardduty/latest/ug/guardduty_finding-types-active.html, тому перегляньте її перед будь-якими діями, щоб не потрапити в пастку.

Ось кілька прикладів ухилення від конкретних результатів GuardDuty:

GuardDuty виявляє запити до API AWS від поширених засобів тестування на проникнення та спрацьовує результат PenTest. Це виявляється за допомогою імені агента користувача, яке передається у запиті API. Отже, змінивши агента користувача, можна запобігти виявленню атаки GuardDuty.

Щоб цього уникнути, ви можете шукати скрипт session.py у пакеті botocore та змінити агента користувача, або встановити Burp Suite як проксі AWS CLI та змінити агента користувача за допомогою MitM або просто використовувати ОС, такі як Ubuntu, Mac або Windows, щоб уникнути спрацьовування цього сповіщення.

UnauthorizedAccess:IAMUser/InstanceCredentialExfiltration

Видобування облікових даних EC2 зі служби метаданих та їх використання за межами середовища AWS активує сповіщення UnauthorizedAccess:IAMUser/InstanceCredentialExfiltration.OutsideAWS. Навпаки, використання цих облікових даних з вашого екземпляра EC2 спрацьовує сповіщення UnauthorizedAccess:IAMUser/InstanceCredentialExfiltration.InsideAWS. Однак використання облікових даних на іншому скомпрометованому екземплярі EC2 в межах того самого облікового запису залишається невиявленим, не спрацьовуючи жодного сповіщення.

Отже, використовуйте видобуті облікові дані зсередини машини, де ви їх знайшли, щоб не спровокувати це сповіщення.

Посилання

Вивчайте хакінг AWS від нуля до героя з htARTE (HackTricks AWS Red Team Expert)!

Інші способи підтримки HackTricks:

Last updated