
Dependency-free interactive Python exploit for the vsftpd 2.3.4 backdoor (CVE-2011-2523).
vsftpd 2.3.4 बैकडोर (CVE-2011-2523) के लिए एक छोटा, डिपेंडेंसी-मुक्त Python 3 शोषण। यह FTP पर बैकडोर को ट्रिगर करता है और आपको स्पॉन किए गए लिसनर पर एक इंटरैक्टिव रूट शेल में डाल देता है।
पुराने शोषण स्क्रिप्ट्स के आधुनिक प्रतिस्थापन के रूप में लिखा गया है जो telnetlib पर निर्भर थे — Python 3.13 में मानक पुस्तकालय से हटा दिया गया। यह संस्करण केवल मानक पुस्तकालय का उपयोग करता है और एक निश्चित स्लीप के बजाय select के साथ शेल को पढ़ता है, ताकि आउटपुट काटा न जाए।
⚠️ केवल अधिकृत उपयोग के लिए। यह एक ज्ञात-कमजोर सेवा को लक्षित करता है और Metasploitable 2 जैसे सुरक्षा शिक्षा और प्रयोगशाला वातावरण के लिए है। इसे केवल उन सिस्टम्स पर चलाएं जिनके आप मालिक हैं या जिनके परीक्षण की स्पष्ट लिखित अनुमति है।
vsftpd 2.3.4 एक दुर्भावनापूर्ण बैकडोर के साथ भेजा गया था: कोई भी FTP उपयोगकर्ता नाम जिसमें अनुक्रम :) होता है, डेमॉन को TCP/6200 पर एक रूट शेल बाइंड करने का कारण बनता है। स्क्रिप्ट:
vsftpd 2.3.4 की जाँच करता है।USER <name>:) / PASS <anything> भेजता है।id; uname -a के साथ विशेषाधिकार की पुष्टि करता है।python3 vsftpd_backdoor.py <target-ip> [-p FTP_PORT] [-s SHELL_PORT] [--skip-verify]
उदाहरण:
# Default: FTP on 21, backdoor shell on 6200, verify banner first
python3 vsftpd_backdoor.py 192.168.243.114
# Non-standard FTP port, skip the banner check
python3 vsftpd_backdoor.py 192.168.243.114 -p 2121 --skip-verify
vsftpd# प्रॉम्प्ट पर कमांड टाइप करें; बाहर निकलने के लिए exit (या Ctrl-C) टाइप करें।
बैकडोर प्रति ट्रिगर एक-शॉट है: 6200 पर पहला कनेक्शन शेल को सौंपा जाता है, और वह शेल तब तक पोर्ट को रखता है जब तक वह खुला रहता है। कोई भी चीज़ दूसरे कनेक्शन को स्वीकार नहीं करती है।
व्यावहारिक परिणाम:
nc, और Metasploit को एक साथ एक ही लक्ष्य के विरुद्ध न चलाएं — वे एकल शेल स्लॉट के लिए लड़ेंगे और आपको भ्रमित करने वाली विफलताएँ मिलेंगी ("एक ताजा शेल नहीं", कनेक्शन अस्वीकार, आदि)।exit के साथ छोड़ें ताकि रिमोट प्रक्रिया मर जाए और 6200 को रिलीज़ करे। क्लाइंट को अस्वच्छ रूप से मारने से प्रक्रिया अनाथ हो सकती है और पोर्ट खुला अटक सकता है।यदि 6200 पहले से बाइंड है (पोर्ट खुला लेकिन कोई उपयोगी शेल नहीं), तो लक्ष्य को रीसेट करें:
# On the target console
sudo netstat -tlnp | grep 6200
sudo kill -9 <pid>
या गारंटीड-क्लीन, अनट्रिगर्ड बैकडोर के लिए VM को रिबूट करें।
MIT लाइसेंस के तहत वितरित। अधिक जानकारी के लिए LICENSE देखें।