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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
CVE-2020-7247-POC — शैक्षणिक उद्देश्यों के लिए CVE-2020-7247 का अवधारणा प्रमाण। | Kitploit
उपकरण/GitHubGitHub/simonschoeni/cve-2020-7247-poc
भेद्यता विश्लेषणशोषणपेनिट्रेशन टेस्टिंगलर्निंग और शिक्षापेलोड डेवलपमेंटईमेल सुरक्षा
GitHubsimonschoeni/cve-2020-7247-poc

CVE-2020-7247-POC

शैक्षणिक उद्देश्यों के लिए CVE-2020-7247 का अवधारणा प्रमाण।

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

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

सभी देखें →

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

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

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

सभी उपकरण देखें →
साझा करें
  • प्रस्तावना
  • शोषण के बारे में मुख्य तथ्य
  • असुरक्षित सर्वर स्थापित करना
    • कॉन्फ़िगरेशन
    • पर्यावरण संबंधी अस्वीकरण
  • शोषण
    • मैनुअल शोषण
    • स्क्रिप्टेड शोषण

प्रस्तावना

यह रिपॉजिटरी एक नियंत्रित और निजी वातावरण में CVE-2020-7247 को सेट अप और शोषण करने के आधार के रूप में काम करनी चाहिए। सभी प्रकाशित कोड और कॉन्फ़िगरेशन केवल इस भेद्यता का परीक्षण करने के लिए हैं, न कि उन सिस्टमों के खिलाफ इसका दुरुपयोग करने के लिए जो आपके अपने नहीं हैं/जिन पर आपको शोषण करने की अनुमति नहीं है। इस रिपॉजिटरी का स्वामी तीसरे पक्ष द्वारा इन उपकरणों के उपयोग के लिए जिम्मेदार नहीं ठहराया जाएगा।

शोषण के बारे में मुख्य तथ्य

कोड में मुख्य समस्या यह है कि मेल सत्यापन काम नहीं करता है। यह MAIL FROM और RCPT TO फ़ील्ड में संभावित रूप से खतरनाक वर्णों को पास करने की अनुमति देता है।
यदि मेल पते का स्थानीय भाग अमान्य है, तो इसे मान्य माना जाता है क्योंकि कोड इसमें डोमेन भाग जोड़ता है और बाद में इसे मान्य के रूप में व्याख्यायित करता है। यह हमलावर को मनमाना कोड निष्पादित करने की अनुमति देता है।

root@kitploit:~
2189 static int
2190 smtp_mailaddr(struct mailaddr *maddr, char *line, int mailfrom, char **args,
2191     const char *domain)
2192 {
....
2218         if (!valid_localpart(maddr->user) ||
2219             !valid_domainpart(maddr->domain)) {
....
2229                 if (maddr->domain[0] == '\0') {
2230                         (void)strlcpy(maddr->domain, domain,
2231                             sizeof(maddr->domain));
2232                         return (1);
2233                 }
2234                 return (0);
2235         }
2236
2237         return (1);
2238 }

सुरक्षित होने के लिए कोड को निम्नलिखित रूप में होना चाहिए:

root@kitploit:~
2189 static int
2190 smtp_mailaddr(struct mailaddr *maddr, char *line, int mailfrom, char **args,
2191     const char *domain)
2192 {
....
2218         if (!valid_localpart(maddr->user) ||
2219             !valid_domainpart(maddr->domain)) {
....
2234                 return (0);
2235         }
2236
2237         return (1);
2238 }

Opensmtpd तथाकथित MDA कमांड निष्पादित करने के लिए आगे बढ़ता है। यह कमांड मेल वितरित करने के लिए उपयोग किया जाता है। यह निम्नलिखित रूप में दिखता है:

root@kitploit:~
asprintf(&dispatcher->u.local.command,
            "/usr/libexec/mail.local -f %%{mbox.from} %%{user.username}");

यहाँ आप पहले से ही समस्या देख सकते हैं। mbox.from प्रेषक का पता है जो हमलावर के पूर्ण नियंत्रण में है।
हालांकि हमलावर केवल उन वर्णों का उपयोग करने तक सीमित है जो निम्नलिखित सूची में नहीं हैं: !#$%&'*/?^{|}~+-=_!#$%&'*?{|}~
यहाँ पूरी तरह से खुलासा किया गया है

असुरक्षित सर्वर स्थापित करना

सर्वर चलाने के लिए वितरण चुनने की स्वतंत्रता है। मैंने इसे Ubuntu 18.04 LTS पर परीक्षण किया।
सेटअप स्क्रिप्ट को निष्पादन योग्य बनाने के लिए chmod +x setup.sh चलाएँ। आप इसे एक सामान्य उपयोगकर्ता के साथ उपयोग कर सकते हैं क्योंकि मैंने स्क्रिप्ट में केवल जहाँ आवश्यक हो वहाँ sudo अधिकार शामिल किए हैं। (बेशक आपके उपयोगकर्ता को sudoer होना चाहिए)
सेटअप स्क्रिप्ट smtpd के लिए सभी आवश्यक निर्भरताएँ स्थापित करेगी और कॉन्फ़िगरेशन को उनके संबंधित स्थानों पर कॉपी करेगी।
Opensmtpd 6.6.1 स्थापित किया जाएगा।
यदि आपको openstmpd को मैन्युअल रूप से चलाने की आवश्यकता है या स्क्रिप्ट में कोई त्रुटि है, तो निम्नलिखित चलाएँ:

root@kitploit:~
cd /usr/local/sbin
sudo smtpd
या 
डीबगिंग आउटपुट के लिए sudo smtpd -dv

कॉन्फ़िगरेशन

इस रिपॉजिटरी में कॉन्फ़िगरेशन केवल स्थानीय परीक्षण के लिए हैं। उनमें बाहरी डोमेन/उन्नत कॉन्फ़िगरेशन शामिल नहीं हैं।
aliases और smtpd.conf इस सर्वर के सेटअप के लिए आवश्यक दो कॉन्फ़िगरेशन फ़ाइलें हैं। आप उन्हें अपनी इच्छानुसार बदलने के लिए स्वतंत्र हैं। ध्यान रखें कि कॉन्फ़िगरेशन मेरे परीक्षण सर्वर के लिए था। मेरा सर्वरनाम ase था (smtpd.conf @ase निर्देश) और मेरा उपयोगकर्ता नाम ase था (aliases उपयोगकर्ता कॉन्फ़िगरेशन)।
आपको smtpd.conf में <YOUR IP> को अपने सर्वर के IP से बदलना होगा। अन्यथा smtpd शुरू नहीं होगा।

पर्यावरण संबंधी अस्वीकरण

यदि आप इस वातावरण में किसी भी IP पते और पोर्ट पर ठोकर खाते हैं, तो यहाँ मेरे द्वारा उपयोग किए गए वातावरण के बारे में कुछ मुख्य तथ्य दिए गए हैं ताकि आप उन्हें तदनुसार बदल सकें:

  • सर्वर का नाम: ase
  • उपयोगकर्ता नाम: ase
  • SMTPD सर्वर का IP: 192.168.1.40
  • SMTPD पोर्ट: 25
  • हमलावर का IP: 192.168.1.31
  • रिवर्स शेल के लिए पोर्ट: 1337

शोषण

प्रदान किया गया एक्सप्लॉट Python 3.x का उपयोग करता है। यह pwn निर्भरता का उपयोग करता है। इस शोषण का उपयोग करने के लिए आपको pip3 install pwntools का उपयोग करके pwntools स्थापित करना होगा।
मूल रूप से शोषण स्वचालित रूप से उपयोगकर्ता की सहभागिता की आवश्यकता के बिना भेद्यता का शोषण करता है। हालांकि शोषण python स्क्रिप्ट के बिना मैन्युअल रूप से किया जा सकता है।

मैनुअल शोषण

जैसा कि पहले उल्लेख किया गया है, शोषण प्रदान की गई python स्क्रिप्ट के बिना निष्पादित किया जा सकता है। आपको SMTP प्रक्रिया को मैन्युअल रूप से पालन करना होगा। यह netcat या telnet का उपयोग करके किया जा सकता है।
यहाँ एक उदाहरण दिया गया है कि यह मैन्युअल रूप से कैसे किया जा सकता है:

root@kitploit:~
telnet <आपके सर्वर का IP> 25
HELO attacker
250 ase Hello attacker [<क्लाइंट IP>], pleased to meet you
MAIL FROM:<;अपना शेलकोड यहाँ डालें;>
250 2.0.0 Ok
RCPT TO:<root>
250 2.1.5 Destination address valid: Recipient ok
DATA
354 Enter mail, end with "." on a line by itself

Oh no you got pwned
.
250 2.0.0 48bb34d2 Message accepted for delivery

स्क्रिप्टेड शोषण

आप प्रदान की गई स्क्रिप्ट का भी उपयोग कर सकते हैं। निम्नलिखित पैरामीटर संभव हैं:

  • --targetHost लक्ष्य निर्दिष्ट करता है और आवश्यक है।
  • --targetPort लक्ष्य पोर्ट निर्दिष्ट करता है और आवश्यक है।
  • --customCommand इंजेक्ट करने के लिए कमांड निर्दिष्ट करता है।

shellcode.py एक उदाहरण के रूप में कार्य करता है कि रिमोट शेल कोड कैसा दिख सकता है। \

शोषण डेमो

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