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
- Перевірте плани підписки!
- Приєднуйтесь до 💬 групи Discord або групи Telegram або слідкуйте за нами в Twitter 🐦 @hacktricks_live.
- Діліться хакерськими трюками, надсилаючи PR до HackTricks та HackTricks Cloud репозиторіїв на GitHub.
Що таке TravisCI
Travis CI - це хостингова або на місці служба безперервної інтеграції, яка використовується для створення та тестування програмних проектів, розміщених на кількох різних git платформах.
Атаки
Тригери
Щоб розпочати атаку, спочатку потрібно знати, як запустити збірку. За замовчуванням 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
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
- Перевірте плани підписки!
- Приєднуйтесь до 💬 групи Discord або групи Telegram або слідкуйте за нами в Twitter 🐦 @hacktricks_live.
- Діліться хакерськими трюками, надсилаючи PR до HackTricks та HackTricks Cloud репозиторіїв на GitHub.