OpenShift - Jenkins
Reading time: 1 minute
Оригінальний автор цієї сторінки Fares
Ця сторінка надає кілька вказівок щодо того, як ви можете атакувати екземпляр Jenkins, що працює в кластері Openshift (або Kubernetes).
Відмова від відповідальності
Екземпляр Jenkins може бути розгорнутий як в кластері Openshift, так і в Kubernetes. Залежно від вашого контексту, вам може знадобитися адаптувати будь-який показаний payload, yaml або техніку. Для отримання додаткової інформації про атаку на Jenkins ви можете ознайомитися з цією сторінкою.
Попередні вимоги
1a. Доступ користувача до екземпляра Jenkins АБО 1b. Доступ користувача з правами на запис до репозиторію SCM, де автоматизоване збірка запускається після push/merge.
Як це працює
Фундаментально, майже все за лаштунками працює так само, як і звичайний екземпляр Jenkins, що працює у VM. Головна різниця полягає в загальній архітектурі та в тому, як збірки управляються всередині кластера openshift (або kubernetes).
Збірки
Коли збірка запускається, спочатку вона управляється/координується вузлом майстра Jenkins, а потім делегується агенту/рабу/робітнику. У цьому контексті вузол майстра є просто звичайним pod, що працює в просторі імен (який може відрізнятися від того, де працюють робітники). Те ж саме стосується робітників/рабів, однак вони знищуються після завершення збірки, тоді як майстер завжди залишається активним. Ваша збірка зазвичай виконується всередині pod, використовуючи шаблон pod за замовчуванням, визначений адміністраторами Jenkins.
Запуск збірки
У вас є кілька основних способів запустити збірку, таких як:
- У вас є доступ до UI Jenkins
Дуже простий і зручний спосіб - використовувати функцію Replay існуючої збірки. Це дозволяє вам повторити раніше виконану збірку, дозволяючи оновити groovy-скрипт. Це вимагає привілеїв на папку Jenkins і попередньо визначену конвеєр. Якщо вам потрібно бути непомітним, ви можете видалити свої запущені збірки, якщо у вас є достатні права.
- У вас є доступ на запис до SCM, і автоматизовані збірки налаштовані через webhook
Ви можете просто редагувати скрипт збірки (такий як Jenkinsfile), комітити та пушити (врешті-решт створити PR, якщо збірки запускаються лише на злиттях PR). Майте на увазі, що цей шлях є дуже шумним і потребує підвищених привілеїв для очищення ваших слідів.