# AWS - Codebuild Enum {{#include ../../../banners/hacktricks-training.md}} ## CodeBuild AWS **CodeBuild** вважається **повністю керованою службою безперервної інтеграції**. Основна мета цієї служби полягає в автоматизації послідовності компіляції вихідного коду, виконання тестів і упаковки програмного забезпечення для цілей розгортання. Основна перевага, яку пропонує CodeBuild, полягає в його здатності зменшити потребу користувачів у наданні, управлінні та масштабуванні своїх серверів збірки. Ця зручність обумовлена тим, що сама служба управляє цими завданнями. Основні функції AWS CodeBuild включають: 1. **Керована служба**: CodeBuild управляє та масштабує сервери збірки, звільняючи користувачів від обслуговування серверів. 2. **Безперервна інтеграція**: Вона інтегрується з робочим процесом розробки та розгортання, автоматизуючи етапи збірки та тестування процесу випуску програмного забезпечення. 3. **Виробництво пакетів**: Після етапів збірки та тестування вона готує програмні пакети, роблячи їх готовими до розгортання. AWS CodeBuild безперешкодно інтегрується з іншими службами AWS, підвищуючи ефективність і надійність CI/CD (Безперервна інтеграція/Безперервне розгортання) конвеєра. ### **Github/Gitlab/Bitbucket Credentials** #### **Default source credentials** Це спадкова опція, де можливо налаштувати деякі **доступи** (як токен Github або додаток), які будуть **спільно використовуватися між проектами codebuild**, щоб усі проекти могли використовувати цей налаштований набір облікових даних. Збережені облікові дані (токени, паролі...) **керуються codebuild** і немає жодного публічного способу їх отримати з AWS API. #### Custom source credential В залежності від платформи репозиторію (Github, Gitlab і Bitbucket) надаються різні опції. Але в загальному, будь-яка опція, яка вимагає **зберігати токен або пароль, буде зберігатися як секрет у менеджері секретів**. Це дозволяє **різним проектам codebuild використовувати різні налаштовані доступи** до постачальників замість того, щоб просто використовувати налаштований за замовчуванням. ### Enumeration ```bash # 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 # Check for creds in env vars # Builds aws codebuild list-builds aws codebuild list-builds-for-project --project-name aws codebuild list-build-batches aws codebuild list-build-batches-for-project --project-name # Reports aws codebuild list-reports aws codebuild describe-test-cases --report-arn ``` ### Privesc На наступній сторінці ви можете перевірити, як **зловживати дозволами codebuild для ескалації привілеїв**: {{#ref}} ../aws-privilege-escalation/aws-codebuild-privesc.md {{#endref}} ### Post Exploitation {{#ref}} ../aws-post-exploitation/aws-codebuild-post-exploitation/ {{#endref}} ### Unauthenticated Access {{#ref}} ../aws-unauthenticated-enum-access/aws-codebuild-unauthenticated-access.md {{#endref}} ## References - [https://docs.aws.amazon.com/managedservices/latest/userguide/code-build.html](https://docs.aws.amazon.com/managedservices/latest/userguide/code-build.html) {{#include ../../../banners/hacktricks-training.md}}