4.9 KiB
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?
- скомпрометувати інші машини, що працюють в тій же мережі?
- скомпрометувати нові облікові дані хмари?
Посилання
- https://docs.travis-ci.com/user/encrypting-files/
- https://docs.travis-ci.com/user/best-practices-security
{{#include ../../banners/hacktricks-training.md}}
.png)
.png)
.png)
.png)