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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
THM-Source-CVE-2019-15231 — TryHackMe room Source पर एक लेख और भेद्यता का शोषण करने के लिए एक पायथन स्क्रिप्ट | Kitploit
उपकरण/GitHubGitHub/wizardy0ga/thm-source-cve-2019-15231
भेद्यता विश्लेषणशोषणवेब एप्लिकेशन शोषणCTFपेनिट्रेशन टेस्टिंगलर्निंग और शिक्षाArchived
GitHubwizardy0ga/thm-source-cve-2019-15231

THM-Source-CVE-2019-15231

TryHackMe room Source पर एक लेख और भेद्यता का शोषण करने के लिए एक पायथन स्क्रिप्ट

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

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

सभी देखें →

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

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

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

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

THM-Source-CVE-2019-15231

TryHackMe रूम Source का एक लेख और इस भेद्यता का शोषण करने के लिए एक पायथन स्क्रिप्ट

क्रेडिट

मैं इस भेद्यता की खोज का कोई श्रेय नहीं लेता। निम्नलिखित लोगों को धन्यवाद जिन्होंने ऐसे संसाधन प्रदान किए जिनसे मेरे जैसे लोग सीख सकते हैं!

भेद्यता की खोज:
Özkan Mustafa Akkuş

MSF मॉड्यूल:
https://github.com/rapid7/metasploit-framework/blob/master/modules/exploits/linux/http/webmin_backdoor.rb
https://www.rapid7.com/db/modules/exploit/linux/http/webmin_backdoor/

MSF मॉड्यूल लेखक:
wvu

TryHackMe रूम:
https://tryhackme.com/room/source

THM लेखक:
https://tryhackme.com/p/DarkStar7471

संसाधन:
https://www.webmin.com/exploit.html
https://github.com/webmin/webmin/issues/947
https://www.perlmonks.org/?node_id=301355

यदि आप कुछ देखते हैं, तो कुछ कहें!

मैं किसी भी तरह से एक अनुभवी सुरक्षा पेशेवर नहीं हूं। इसका मतलब है कि मैं कुछ गलत जानकारी प्रदान कर सकता हूं। यदि आप एक अनुभवी पेशेवर/अनुभवी शोधकर्ता हैं और आपको कुछ गलत लगता है, तो कृपया मुझे सूचित करें ताकि मैं वापस आ सकूं, अपनी गलतियों का अध्ययन कर सकूं और सही जानकारी प्रदान कर सकूं। यह मेरे साथ-साथ अन्य नौसिखिए शोधकर्ताओं के लिए भी लाभदायक है जो इस लेख पर ठोकर खा सकते हैं। यदि आपको मेरे द्वारा लिखी गई कोई गलत जानकारी मिलती है, तो कृपया मुझसे पर संपर्क करें ताकि मैं इसे ठीक कर सकूं। धन्यवाद!

[email protected]

भेद्यता

1. इतिहास
Webmin यूनिक्स-जैसे सिस्टम प्रशासन के लिए एक वेब-आधारित उपकरण है। 2018 की पहली तिमाही में किसी समय, Webmin एक आपूर्ति श्रृंखला हमले की चपेट में आ गया, जिसमें एक अज्ञात हमलावर password_change.cgi फ़ाइल में दुर्भावनापूर्ण कोड डालने में सक्षम था, जिसने एक भेद्यता उत्पन्न की जिससे Webmin के उस संस्करण (1.890) को डिफ़ॉल्ट कॉन्फ़िगरेशन के साथ होस्ट करने वाले किसी भी सिस्टम पर एक बैकडोर खुल सकता था। मैं इसे आपूर्ति श्रृंखला हमला कहता हूं क्योंकि सॉफ़्टवेयर के डेवलपर्स/वितरकों के उत्पाद का स्रोत कोड समझौता कर लिया गया था। जब आपूर्तिकर्ता ने समझौता किए गए उत्पाद को जारी किया, तो जिस किसी ने भी अपने सॉफ़्टवेयर को अपडेट किया, वह अब कमजोर कोड चला रहा होगा, जिससे हमलावर को उस कमजोर कोड को चलाने वाले किसी भी सिस्टम से समझौता करने की क्षमता मिल गई। उसी वर्ष, Webmin डेवलपर्स को पता चल गया कि क्या हुआ था और उन्होंने फ़ाइल को उसकी मूल स्थिति में वापस कर दिया, हालांकि, हमलावर फिर से कोड डालने में सक्षम था। इस बार, कोड तभी कमजोर होगा जब समाप्त पासवर्ड बदलने का विकल्प सक्षम हो। यह भेद्यता अगस्त 2019 तक खोजी नहीं जाएगी। भेद्यता को Webmin संस्करण 1.930 में पैच किया गया था।

2. कोड
कुछ खोजबीन के बाद, मैं कोड की वह पंक्ति ढूंढने में सक्षम हुआ जिसने Webmin संस्करण 1.890 को कमांड इंजेक्शन के लिए कमजोर बना दिया। मुझे सही जानकारी खोजने में कठिनाई हो रही थी क्योंकि वास्तव में इस मुद्दे से जुड़े दो अलग-अलग CVE हैं (CVE-2019-15231/CVE-2019-15107)। CVE-2019-15231 संस्करण 1.890 में डिफ़ॉल्ट कॉन्फ़िगरेशन भेद्यता से संबंधित है और CVE-2019-15107 संस्करण 1.920 तक के संस्करणों में समाप्त पासवर्ड बदलने के विकल्प को सक्षम करने की आवश्यकता वाली भेद्यता से संबंधित है। आइए संस्करण 1.890 के कोड पर एक नज़र डालें। password_change.cgi में पंक्ति 12 पर, हमारे पास कोड की निम्नलिखित पंक्ति है:
$in{'expired'} eq '' || die $text{'password_expired'},qx/$in{'expired'}/;
इस लेखन के समय, मैंने कभी perl में कुछ नहीं लिखा है। हम खोज इंजन का उपयोग करके कोड की इस पंक्ति को विच्छेदित करेंगे ताकि यह बेहतर ढंग से समझ सकें कि कोड क्या करता है और यह शोषण के लिए क्यों कमजोर है। || ऑपरेंड के बाईं ओर कोड का पहला टुकड़ा एक वेरिएबल ($in) प्रतीत होता है जो एक पैरामीटर (expired) लेता है और जांचता है कि क्या यह एक खाली स्ट्रिंग '' के बराबर (eq) है। बीच में, हमारे पास || ऑपरेंड है। || perl में लॉजिकल ऑपरेंड or का उपयोग करने का एक और तरीका है। perl में || का उपयोग करते समय, यदि ऑपरेंड का बायां भाग सत्य है, तो दाएं भाग का मूल्यांकन नहीं किया जाएगा। यदि बायां भाग असत्य है, तो दाएं भाग का मूल्यांकन किया जाएगा। || ऑपरेंड के दाईं ओर कोड के पहले भाग में, हम die $text{'password_expired'} देख सकते हैं। perl में, die एक फ़ंक्शन है जो स्क्रिप्ट प्रक्रिया को मार देगा और एक त्रुटि संदेश प्रदर्शित करेगा। संदेश संभवतः $text वेरिएबल होगा जो कहता है कि पासवर्ड समाप्त हो गया है। कोड का अंतिम भाग वह है जहां यह दिलचस्प हो जाता है। हम देखते हैं कि हमारे पास एक अल्पविराम , है जिसके बाद qx/$in{'expired'}/ और एक अर्धविराम ; है जो कोड की पंक्ति को समाप्त करता है। अल्पविराम कोड के लिए एक विभाजक के रूप में कार्य करता है, पहले बाएं भाग का मूल्यांकन किया जाएगा और फिर दूसरे भाग का मूल्यांकन किया जाएगा। perl में, qx एक फ़ंक्शन है जो होस्ट पर सिस्टम कमांड को निष्पादित करने की अनुमति देता है। // पैरामीटर की पहचान करने के लिए उपयोग किए जाने वाले सीमांकक हैं। इस मामले में, हमारे पास qx/$in{'expired'}/ है जो $in{'expired'} पैरामीटर को एक सिस्टम कमांड के रूप में निष्पादित करेगा। मेरा मानना है कि $in वेरिएबल php में $_GET के समान कुछ हो सकता है, निम्नलिखित कारण से। मेरे द्वारा लिखी गई शोषण स्क्रिप्ट में, हमारे पास expired नामक एक पैरामीटर है जो सर्वर पर पोस्ट अनुरोध के माध्यम से भेजे जाने से पहले पेलोड को संग्रहीत करता है। कोड इस तरह दिखता है data = {'expired':payload,}। $in वेरिएबल को हमारे द्वारा expired पर सेट किए गए मान को पुनः प्राप्त करने के लिए कुछ करना होगा ताकि qx फ़ंक्शन द्वारा पेलोड को निष्पादित किया जा सके। इस अनुभाग को समाप्त करने के लिए, कोड की कमजोर पंक्ति पाती है कि पोस्ट अनुरोध में हमारा expired पैरामीटर एक खाली स्ट्रिंग के बराबर नहीं है, इसलिए || ऑपरेंड अब कोड के दाएं भाग का मूल्यांकन करेगा और expired पैरामीटर में संग्रहीत हमारे पेलोड को निष्पादित करेगा। आइए TryHackMe.com से Source रूम के लिए लेख पर आते हैं।

लेख

आइए पोर्ट स्कैन से शुरू करें। हम एक व्यापक अवलोकन प्राप्त करने के लिए rustscan का उपयोग करेंगे क्योंकि nmap बहुत धीमा हो सकता है।

image

ऐसा लगता है कि हमारे पास 2 पोर्ट खुले हैं, 22 और 10000। अब हम यह पता लगाने के लिए nmap का उपयोग करेंगे कि प्रत्येक पोर्ट पर कौन सी सेवाएं चल रही हैं।

image

तो हमारे पास SSH अपने मानक पोर्ट पर चल रहा है और पोर्ट 10000 पर एक HTTP सेवा चल रही है। आइए पोर्ट 10000 पर चल रहे पेज पर जाएं और देखें कि वहां क्या है।

image

इस पेज तक पहुंचने के लिए आपको HTTPS का उपयोग करना होगा और SSL प्रमाणपत्र चेतावनी को बायपास करना होगा। ऐसा लगता है कि हमारे पास Webmin सेवा के लिए एक लॉगिन पेज है। जब मैंने मूल रूप से इस बॉक्स को किया था, तो मैंने कुछ अलग-अलग निर्देशिका ब्रूटफोर्स प्रयास किए थे, हालांकि कुछ भी दिलचस्प नहीं आया। आइए देखें कि क्या nmap स्कैन से हमें जो Webmin का संस्करण मिला है, उसके लिए searchsploit के माध्यम से कोई भेद्यता है।

image

तो ऐसा लगता है कि हमारे पास यहां कुछ अलग-अलग विकल्प हैं, हालांकि उनमें से कोई भी हमारे संस्करण के बराबर नहीं है। आइए MSF खोलें और देखें कि हमारे पास काम करने के लिए क्या है।

image

हमारे पास यहां चुनने के लिए कुछ अलग-अलग विकल्प हैं। आइए nmap से प्राप्त webmin संस्करण की खोज करें और देखें कि क्या कोई CVE आता है जो हमें इसे कम करने में मदद कर सकता है।

image image

भेद्यता सारांश में, हम देखते हैं कि इसमें password_change.cgi फ़ाइल के बारे में कुछ उल्लेख किया गया है। आइए अपनी MSF खोज से नंबर 5 का उपयोग करें क्योंकि इसमें भी password_change.cgi फ़ाइल के साथ-साथ वही प्रकटीकरण तिथि का उल्लेख है।

image

लोल हम वास्तव में MSF का उपयोग नहीं करने जा रहे हैं। MSF अच्छा है लेकिन अपने स्वयं के कोड से किसी चीज़ का शोषण करने का तरीका समझना उतना मजेदार नहीं है! मैंने इस शोषण के लिए रूबी स्रोत कोड को एक संदर्भ के रूप में उपयोग किया ताकि पायथन में अपना स्वयं का शोषण कोड तैयार कर सकूं। आइए इसके बजाय उसका उपयोग करें!

image

बदा-बिंग बदा-बूम हमें रूम में रूट शेल मिल गया है! मैं फ़्लैग प्रकट नहीं करने जा रहा हूं। मुझे यकीन है कि आप उन्हें ढूंढ सकते हैं! पढ़ने के लिए धन्यवाद और आपका दिन शुभ हो!

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