Files
hacktricks-cloud/src/pentesting-ci-cd/travisci-security/README.md

4.9 KiB
Raw Blame History

TravisCI Security

{{#include ../../banners/hacktricks-training.md}}

Що таке TravisCI

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

{{#ref}} basic-travisci-information.md {{#endref}}

Атаки

Тригери

Щоб розпочати атаку, спочатку потрібно знати, як запустити збірку. За замовчуванням 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?
  • скомпрометувати інші машини, що працюють в тій же мережі?
  • скомпрометувати нові облікові дані хмари?

Посилання

{{#include ../../banners/hacktricks-training.md}}