
Docker-आधारित प्रयोगशाला जो OpenSMTPD 6.6.1p1 में CVE-2020-7247 रिमोट कोड निष्पादन का प्रदर्शन करती है, जिसमें शैक्षिक सुरक्षा परीक्षण के लिए Python PoC शामिल है।
WHS चौथी पीढ़ी, पार्क सोल-मिन
OpenSMTPD एक SMTP सर्वर प्रोग्राम है जो Unix-आधारित ऑपरेटिंग सिस्टम पर उपयोग होता है। इसका उपयोग BSD, macOS, GNU/Linux आदि पर किया जा सकता है, और यह RFC 5321 SMTP प्रोटोकॉल पर आधारित है।
CVE-2020-7247 एक दूरस्थ आदेश निष्पादन भेद्यता है जो OpenSMTPD में प्रेषक या प्राप्तकर्ता पते को सत्यापित करने की प्रक्रिया में अपर्याप्तता के कारण उत्पन्न हुई। हमलावर छेड़छाड़ किए गए SMTP अनुरोध भेजकर सर्वर पर मनमाने आदेश निष्पादित कर सकता है।
यह भेद्यता OpenSMTPD 6.6.2p1 संस्करण में पैच की गई।
| आइटम | विवरण |
|---|
| भेद्यता संख्या | CVE-2020-7247 |
| भेद्य सॉफ्टवेयर | OpenSMTPD |
| भेद्य संस्करण | OpenSMTPD 6.6.1p1 |
| भेद्यता प्रकार | दूरस्थ कोड निष्पादन |
| अभ्यास वातावरण | Docker / Vulhub |
| उपयोग किया गया पोर्ट | 8825:25 |

निम्नलिखित कमांड का उपयोग करके भेद्य OpenSMTPD वातावरण चलाएँ।
docker compose up -d
कंटेनर के सामान्य रूप से चलने की पुष्टि करें।
docker compose ps

SMTP सेवा के सामान्य रूप से काम करने की जाँच करने के लिए पोर्ट 8825 से कनेक्ट करें।
nc 127.0.0.1 8825 -v
सफल कनेक्शन पर, OpenSMTPD बैनर इस प्रकार प्रदर्शित होता है:
220 <container-id> ESMTP OpenSMTPD

PoC कोड का उपयोग करके लक्ष्य सर्वर पर आदेश भेजें। इस अभ्यास में, एक हानिरहित आदेश का उपयोग किया गया जो /tmp/proof.txt फ़ाइल बनाता है।
python3 poc.py 127.0.0.1 8825 'touch /tmp/proof.txt'
उसके बाद, कंटेनर के अंदर फ़ाइल के निर्माण की पुष्टि करें।
docker compose exec smtpd ls -l /tmp/proof.txt
यदि /tmp/proof.txt फ़ाइल दिखाई देती है, तो इसका अर्थ है कि बाहर से भेजा गया आदेश कंटेनर के अंदर निष्पादित किया गया।
यह पुष्टि हुई कि यदि OpenSMTPD की SMTP अनुरोध प्रसंस्करण प्रक्रिया में इनपुट सत्यापन अपर्याप्त है, तो हमलावर छेड़छाड़ किए गए अनुरोध के माध्यम से सर्वर पर मनमाने आदेश निष्पादित कर सकता है।
यह अभ्यास केवल स्थानीय Docker वातावरण में किया गया था, और इसे वास्तविक सर्वर या अनधिकृत प्रणालियों पर नहीं किया जाना चाहिए।