AWS - Codebuild Enum

Tip

Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Вивчайте та практикуйте Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Підтримайте HackTricks

CodeBuild

AWS CodeBuild є визнаним повністю керованим сервісом безперервної інтеграції. Основне призначення цього сервісу — автоматизувати послідовність компіляції вихідного коду, виконання тестів та упаковки програмного забезпечення для розгортання. Головна перевага CodeBuild полягає в тому, що він усуває необхідність для користувачів створювати, керувати та масштабувати свої сервери збірки. Це можливо, оскільки сервіс самостійно виконує ці завдання. Основні можливості AWS CodeBuild включають:

  1. Керований сервіс: CodeBuild керує та масштабує сервери збірки, звільняючи користувачів від обслуговування серверів.
  2. Безперервна інтеграція: Він інтегрується в робочі процеси розробки та розгортання, автоматизуючи етапи збірки й тестування в процесі випуску ПЗ.
  3. Підготовка пакетів: Після етапів збірки й тестування він готує пакети ПЗ, роблячи їх готовими до розгортання.

AWS CodeBuild безшовно інтегрується з іншими службами AWS, підвищуючи ефективність і надійність CI/CD (Continuous Integration/Continuous Deployment) pipeline.

Github/Gitlab/Bitbucket Облікові дані

Облікові дані джерела за замовчуванням

Це застарілий варіант, де можна налаштувати певний доступ (наприклад, Github token або app), який буде поділеним між codebuild проектами, щоб усі проекти могли використовувати цей налаштований набір облікових даних.

Збережені облікові дані (tokens, passwords…) керуються codebuild і немає публічного способу витягнути їх через AWS APIs.

Користувацькі облікові дані джерела

В залежності від платформи репозиторію (Github, Gitlab та Bitbucket) доступні різні опції. Але загалом будь-яка опція, яка вимагає збереження token або password, буде зберігати їх як secret у Secrets Manager.

Це дозволяє різним codebuild проектам використовувати різні налаштовані доступи до провайдерів замість використання лише налаштованого доступу за замовчуванням.

Перерахування

# List external repo creds (such as github tokens)
## It doesn't return the token but just the ARN where it's located
aws codebuild list-source-credentials

# Projects
aws codebuild list-shared-projects
aws codebuild list-projects
aws codebuild batch-get-projects --names <project_name> # Check for creds in env vars

# Builds
aws codebuild list-builds
aws codebuild list-builds-for-project --project-name <p_name>
aws codebuild list-build-batches
aws codebuild list-build-batches-for-project --project-name <p_name>

# Reports
aws codebuild list-reports
aws codebuild describe-test-cases --report-arn <ARN>

Tip

Якщо у вас є codebuild:StartBuild, пам’ятайте, що часто можна перевизначити env vars під час збірки (--environment-variables-override). Це досить для деяких атак навіть без UpdateProject або перевизначення buildspec (наприклад: перенаправлення artifact/upload buckets для exfiltrate secrets, або зловживання language/runtime env vars для виконання команд).

Privesc

На наступній сторінці можна перевірити, як зловживати дозволами codebuild для підвищення привілеїв:

AWS - Codebuild Privesc

Post Exploitation

AWS - CodeBuild Post Exploitation

Unauthenticated Access

AWS - CodeBuild Unauthenticated Access

Посилання

Tip

Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Вивчайте та практикуйте Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Підтримайте HackTricks