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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
उपकरण/GitHubGitHub/7043mcgeep/cve-2017-8890-msf
शोषण फ्रेमवर्कभेद्यता विश्लेषणशोषणबाइनरी शोषण
GitHub7043mcgeep/cve-2017-8890-msf

cve-2017-8890-msf

Metasploit पुल अनुरोध के लिए

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

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

सभी देखें →

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

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

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

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

मॉड्यूल: Phoenix Talon CVE 2017-8890

यह समस्या #8571 को हल कर सकता है, जो Phoenix Talon मॉड्यूल का अनुरोध करता है।

2017-8890 का अवलोकन

यह CVE:

  • लिनक्स कर्नेल कमजोरियों के Phoenix Talon वर्ग का सबसे गंभीर सदस्य है। इस CVE का कोई POC Exploit DB में मौजूद नहीं है। लेकिन अन्य सार्वजनिक POC उपलब्ध हैं।
  • बहुत अच्छी तरह से दस्तावेजीकृत नहीं है। लेकिन यहाँ एक संक्षिप्त व्याख्या है जो आपको भेद्यता की सामान्य समझ देगी।
  • 4.10.15 तक सभी कर्नेल संस्करणों में मौजूद है, हालांकि कुछ स्रोत कहते हैं कि यह 4.11 तक मौजूद है। पैच कमिट यहाँ देखें।
  • कर्नेल के IPv4 स्टैक में एक दोष का परिणाम है (विशेष रूप से, मल्टीकास्ट)।

लक्ष्य मशीन पर, accept() समय पर कर्नेल द्वारा mc_list की एक अतिरिक्त प्रति रखने के कारण डबल-फ्री ट्रिगर होता है।

छद्मकोड और स्पष्टीकरण:

4.10.15 और उससे नीचे के कर्नेल चलाने वाली मशीन जोखिम में है यदि वह निम्नलिखित रूटीन चला रही है:

sockfd = socket(AF_INET, xx, IPPROTO_TCP);
setsockopt(sockfd, SOL_IP, MCAST_JOIN_GROUP, xxxx, xxxx);
bind(sockfd, xxxx, xxxx);
listen(sockfd, xxxx);
newsockfd = accept(sockfd, xxxx, xxxx);
close(newsockfd);  // trigger release calls, handoff to RCU
sleep(5);          // wait for rcu to free()
close(sockfd);     // second free()

पैरेंट सॉकेट, sockfd, बनाया जाता है। इसे विकल्प MCAST_JOIN_GROUP के साथ मल्टीकास्ट समूह में जोड़ा जाता है। स्थानीय इंटरफ़ेस पर मल्टीकास्ट समूह में सॉकेट जोड़ने पर, कर्नेल मेमोरी आवंटित करता है। इस बिंदु पर, mc_list पैरेंट सॉकेट में मौजूद है।

bind() के साथ सॉकेट को एक पता निर्दिष्ट करने के बाद, कनेक्शन के लिए listen() और accept() किया जाता है। accept() एक नया सॉकेट, newsockfd, बनाता है, जिसमें पैरेंट के सभी आवश्यक फ़ील्ड कॉपी किए जाते हैं, जिसमें mc_list पॉइंटर का मान भी शामिल है। इस बिंदु पर, मेमोरी के एक ही ब्लॉक की ओर इशारा करने वाले कई पॉइंटर होते हैं, इसलिए डबल फ्री।

जब कनेक्शन स्थापित होता है, तो कर्नेल एक चाइल्ड सॉकेट बनाता है जो पैरेंट सॉकेट के mc_list ऑब्जेक्ट को इनहेरिट करता है। यह इनहेरिटेंस दोष फ़ाइल net/ipv4/inet_connection_sock.c की पंक्ति 648 में inet_csk_clone_lock में है। इस अनपेक्षित इनहेरिटेंस के लिए एक-पंक्ति सुधार देखने के लिए पैच देखें।

अगला, चाइल्ड सॉकेट को बंद करें। जैसा कि ऊपर बताया गया है, यह mc_list ऑब्जेक्ट को रिलीज़ नहीं करता है। यह मेमोरी जारी करने के लिए RCU (रिमोट-कॉपी-अपडेट) संरचना से गुज़रता है। RCU हैंडऑफ़ को kfree() कॉल करने के लिए पर्याप्त समय देने के लिए कुछ सेकंड के लिए sleep() करें। अंत में, पैरेंट सॉकेट को बंद करें, जो दूसरी फ्री को ट्रिगर करेगा।

मॉड्यूल

सरल DoS. आवश्यक सर्वर रूटीन (ऊपर बताया गया) चलाने वाली ज्ञात लक्ष्य मशीन पर दूरस्थ रूप से डबल-फ्री ट्रिगर करें। इससे कर्नेल पैनिक होता है।

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