TravisCI Security

Support HackTricks

Що таке TravisCI

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

Атаки

Тригери

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

Cron Jobs

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

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

Пулл-запити від третіх сторін

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

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

Як пояснено на сторінці основної інформації, існує 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?

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

  • скомпрометувати нові облікові дані хмари?

Посилання

Support HackTricks

Last updated