TravisCI Security

Reading time: 3 minutes

tip

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

Підтримка HackTricks

Що таке TravisCI

Travis CI - це хостингова або на місці служба безперервної інтеграції, яка використовується для створення та тестування програмних проектів, розміщених на кількох різних git платформах.

Basic TravisCI Information

Атаки

Тригери

Щоб розпочати атаку, спочатку потрібно знати, як запустити збірку. За замовчуванням TravisCI запускає збірку при пушах і запитах на злиття:

Cron Jobs

Якщо у вас є доступ до веб-додатку, ви можете налаштувати cron для запуску збірки, це може бути корисно для збереження доступу або для запуску збірки:

note

Схоже, що неможливо налаштувати cron всередині .travis.yml відповідно до цього.

PR від третіх сторін

TravisCI за замовчуванням забороняє обмін змінними середовища з PR, що надходять від третіх сторін, але хтось може це увімкнути, і тоді ви зможете створити PR до репозиторію та ексфільтрувати секрети:

Витік секретів

Як пояснено на сторінці основна інформація, існує 2 типи секретів. Секрети змінних середовища (які перераховані на веб-сторінці) та кастомні зашифровані секрети, які зберігаються в файлі .travis.yml у форматі base64 (зверніть увагу, що обидва, як зберігаються зашифрованими, в кінцевих машинах стануть змінними середовища).

  • Щоб перерахувати секрети, налаштовані як змінні середовища, перейдіть до налаштувань проекту та перевірте список. Однак зверніть увагу, що всі змінні середовища проекту, встановлені тут, з'являться при запуску збірки.
  • Щоб перерахувати кастомні зашифровані секрети, найкраще, що ви можете зробити, це перевірити файл .travis.yml.
  • Щоб перерахувати зашифровані файли, ви можете перевірити наявність .enc файлів у репозиторії, для рядків, подібних до openssl aes-256-cbc -K $encrypted_355e94ba1091_key -iv $encrypted_355e94ba1091_iv -in super_secret.txt.enc -out super_secret.txt -d у конфігураційному файлі, або для зашифрованих iv та ключів у змінних середовища, таких як:

TODO:

  • Приклад збірки з реверс-шелом, що працює на Windows/Mac/Linux
  • Приклад збірки, що витікає змінну середовища, закодовану в base64, у логах

TravisCI Enterprise

Якщо зловмисник опиниться в середовищі, яке використовує TravisCI enterprise (більше інформації про те, що це таке, в основній інформації), він зможе запускати збірки в Worker. Це означає, що зловмисник зможе переміщатися по горизонталі до цього сервера, з якого він зможе:

  • втекти до хоста?
  • скомпрометувати kubernetes?
  • скомпрометувати інші машини, що працюють в тій же мережі?
  • скомпрометувати нові облікові дані хмари?

Посилання

tip

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

Підтримка HackTricks