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.

Запуск збірки

У вас є кілька основних способів запустити збірку, таких як:

  1. У вас є доступ до UI Jenkins

Дуже простий і зручний спосіб - використовувати функцію Replay існуючої збірки. Це дозволяє вам повторити раніше виконану збірку, дозволяючи оновити groovy-скрипт. Це вимагає привілеїв на папку Jenkins і попередньо визначену конвеєр. Якщо вам потрібно бути непомітним, ви можете видалити свої запущені збірки, якщо у вас є достатні права.

  1. У вас є доступ на запис до SCM, і автоматизовані збірки налаштовані через webhook

Ви можете просто редагувати скрипт збірки (такий як Jenkinsfile), комітити та пушити (врешті-решт створити PR, якщо збірки запускаються лише на злиттях PR). Майте на увазі, що цей шлях є дуже шумним і потребує підвищених привілеїв для очищення ваших слідів.

YAML переопределення Pod збірки Jenkins

OpenShift - Jenkins Build Pod Override