# OpenShift - Jenkins

{{#include ../../../banners/hacktricks-training.md}}

**Die oorspronklike skrywer van hierdie bladsy is** [**Fares**](https://www.linkedin.com/in/fares-siala/)

Hierdie bladsy gee 'n paar wenke oor hoe jy 'n Jenkins-instantie wat in 'n Openshift (of Kubernetes) kluster loop, kan aanval.

## Vrywaring

'n Jenkins-instantie kan in beide Openshift of Kubernetes klusters ontplooi word. Afhangende van jou konteks, mag jy enige getoonde payload, yaml of tegniek moet aanpas. Vir meer inligting oor die aanval op Jenkins kan jy [hierdie bladsy](../../../pentesting-ci-cd/jenkins-security/index.html) kyk.

## Voorvereistes

1a. Gebruikers toegang in 'n Jenkins-instantie OF 1b. Gebruikers toegang met skryfrechten tot 'n SCM-repositori waar 'n geoutomatiseerde bou geaktiveer word na 'n push/merge.

## Hoe dit werk

Fundamenteel werk byna alles agter die skerms dieselfde as 'n gewone Jenkins-instantie wat in 'n VM loop. Die hoofverskil is die algehele argitektuur en hoe boue binne 'n openshift (of kubernetes) kluster bestuur word.

### Boue

Wanneer 'n bou geaktiveer word, word dit eers bestuur/georkestreer deur die Jenkins meester node en dan gedelegeer aan 'n agent/slave/werker. In hierdie konteks is die meester node net 'n gewone pod wat in 'n naamruimte loop (wat dalk anders kan wees as die een waar werkers loop). Dieselfde geld vir die werkers/slaves, egter word hulle vernietig sodra die bou klaar is terwyl die meester altyd aanhou loop. Jou bou word gewoonlik binne 'n pod uitgevoer, met 'n standaard pod-sjabloon wat deur die Jenkins-administrateurs gedefinieer is.

### 'n Bou aktiveer

Jy het verskeie hoofmaniere om 'n bou te aktiveer, soos:

1. Jy het UI-toegang tot Jenkins

'n Baie maklike en gerieflike manier is om die Replay-funksionaliteit van 'n bestaande bou te gebruik. Dit laat jou toe om 'n voorheen uitgevoerde bou te herhaal terwyl jy die groovy-skrip kan opdateer. Dit vereis voorregte op 'n Jenkins-gids en 'n vooraf gedefinieerde pyplyn. As jy diskreet moet wees, kan jy jou geaktiveerde boue verwyder as jy genoeg toestemming het.

2. Jy het skryfrechten tot die SCM en geoutomatiseerde boue is via webhook geconfigureer

Jy kan eenvoudig 'n bou-skrip (soos Jenkinsfile) redigeer, commit en push (eventueel 'n PR skep as boue slegs geaktiveer word op PR-merges). Hou in gedagte dat hierdie pad baie lawaaierig is en verhoogde voorregte benodig om jou spore skoon te maak.

## Jenkins Bou Pod YAML oorskrywing

{{#ref}}
openshift-jenkins-build-overrides.md
{{#endref}}



{{#include ../../../banners/hacktricks-training.md}}
