OpenShift - Jenkins

Tip

Ucz się & ćwicz AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Ucz się & ćwicz GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Ucz się & ćwicz Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Wspieraj HackTricks

Oryginalnym autorem tej strony jest Fares

Ta strona zawiera wskazówki dotyczące atakowania instancji Jenkins działającej w klastrze Openshift (lub Kubernetes).

Zastrzeżenie

Instancja Jenkins może być wdrożona zarówno w klastrze Openshift, jak i Kubernetes. W zależności od kontekstu, może być konieczne dostosowanie pokazanych ładunków, yaml lub technik. Aby uzyskać więcej informacji na temat atakowania Jenkins, możesz zapoznać się z tą stroną.

Wymagania wstępne

1a. Dostęp użytkownika do instancji Jenkins LUB 1b. Dostęp użytkownika z uprawnieniami do zapisu do repozytorium SCM, w którym automatyczna budowa jest uruchamiana po push/merge.

Jak to działa

Fundamentalnie, prawie wszystko, co dzieje się w tle, działa tak samo jak w regularnej instancji Jenkins działającej w VM. Główna różnica to ogólna architektura i sposób zarządzania budowami wewnątrz klastra openshift (lub kubernetes).

Budowy

Gdy budowa jest uruchamiana, jest najpierw zarządzana/orchestrowana przez węzeł główny Jenkins, a następnie delegowana do agenta/robota/pracownika. W tym kontekście węzeł główny to po prostu zwykły pod działający w przestrzeni nazw (która może być inna niż ta, w której działają pracownicy). To samo dotyczy pracowników/robotów, jednak są one niszczone po zakończeniu budowy, podczas gdy węzeł główny zawsze pozostaje aktywny. Twoja budowa jest zazwyczaj uruchamiana wewnątrz poda, korzystając z domyślnego szablonu poda zdefiniowanego przez administratorów Jenkins.

Uruchamianie budowy

Masz kilka głównych sposobów uruchamiania budowy, takich jak:

  1. Masz dostęp do interfejsu użytkownika Jenkins

Bardzo łatwym i wygodnym sposobem jest użycie funkcji Replay istniejącej budowy. Umożliwia to powtórzenie wcześniej wykonanej budowy, jednocześnie pozwalając na aktualizację skryptu groovy. Wymaga to uprawnień do folderu Jenkins i zdefiniowanego wcześniej pipeline. Jeśli musisz być ostrożny, możesz usunąć swoje uruchomione budowy, jeśli masz wystarczające uprawnienia.

  1. Masz dostęp do zapisu w SCM, a automatyczne budowy są skonfigurowane za pomocą webhooka

Możesz po prostu edytować skrypt budowy (taki jak Jenkinsfile), zatwierdzić i wypchnąć (ewentualnie utworzyć PR, jeśli budowy są uruchamiane tylko przy scalaniu PR). Pamiętaj, że ta ścieżka jest bardzo hałaśliwa i wymaga podwyższonych uprawnień do zatarcia śladów.

Nadpisanie YAML dla poda budowy Jenkins

OpenShift - Jenkins Build Pod Override

Tip

Ucz się & ćwicz AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Ucz się & ćwicz GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Ucz się & ćwicz Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Wspieraj HackTricks