OpenShift - Jenkins

Tip

Aprende y practica AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Aprende y practica GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Aprende y practica Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Apoya a HackTricks

El autor original de esta p谩gina es Fares

Esta p谩gina ofrece algunas indicaciones sobre c贸mo puedes atacar una instancia de Jenkins que se ejecuta en un cl煤ster de Openshift (o Kubernetes).

Descargo de responsabilidad

Una instancia de Jenkins puede ser desplegada tanto en un cl煤ster de Openshift como en uno de Kubernetes. Dependiendo de tu contexto, es posible que necesites adaptar cualquier carga 煤til, yaml o t茅cnica mostrada. Para m谩s informaci贸n sobre c贸mo atacar Jenkins, puedes consultar esta p谩gina.

Requisitos previos

1a. Acceso de usuario en una instancia de Jenkins O 1b. Acceso de usuario con permiso de escritura a un repositorio SCM donde se activa una construcci贸n autom谩tica despu茅s de un push/merge.

C贸mo funciona

Fundamentalmente, casi todo lo que ocurre tras bambalinas funciona igual que una instancia de Jenkins regular que se ejecuta en una VM. La principal diferencia es la arquitectura general y c贸mo se gestionan las construcciones dentro de un cl煤ster de openshift (o kubernetes).

Construcciones

Cuando se activa una construcci贸n, primero es gestionada/orquestada por el nodo maestro de Jenkins y luego delegada a un agente/esclavo/trabajador. En este contexto, el nodo maestro es solo un pod regular que se ejecuta en un espacio de nombres (que podr铆a ser diferente al de los trabajadores). Lo mismo se aplica a los trabajadores/esclavos, sin embargo, son destruidos una vez que la construcci贸n ha terminado, mientras que el maestro siempre permanece activo. Tu construcci贸n generalmente se ejecuta dentro de un pod, utilizando una plantilla de pod predeterminada definida por los administradores de Jenkins.

Activar una construcci贸n

Tienes m煤ltiples formas principales de activar una construcci贸n, tales como:

  1. Tienes acceso a la interfaz de usuario de Jenkins

Una forma muy f谩cil y conveniente es usar la funcionalidad de Repetir de una construcci贸n existente. Te permite repetir una construcci贸n ejecutada previamente mientras te permite actualizar el script groovy. Esto requiere privilegios en una carpeta de Jenkins y un pipeline predefinido. Si necesitas ser sigiloso, puedes eliminar tus construcciones activadas si tienes suficientes permisos.

  1. Tienes acceso de escritura al SCM y las construcciones autom谩ticas est谩n configuradas a trav茅s de webhook

Puedes simplemente editar un script de construcci贸n (como Jenkinsfile), hacer commit y push (eventualmente crear un PR si las construcciones solo se activan en merges de PR). Ten en cuenta que este camino es muy ruidoso y necesita privilegios elevados para limpiar tus huellas.

Anulaci贸n de YAML del Pod de Construcci贸n de Jenkins

OpenShift - Jenkins Build Pod Override

Tip

Aprende y practica AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Aprende y practica GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Aprende y practica Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Apoya a HackTricks