
مختبر مصرح به Kali–Metasploitable2 باستخدام Python و Nmap NSE للتحقق من CVE-2011-2523 في vsFTPd 2.3.4.
⚠️ مختبر مصرّح به فقط — أُجري في شبكة VirtualBox Host-Only معزولة باستخدام Kali Linux وMetasploitable2. لم يتم فحص أو الوصول إلى أي أنظمة غير مصرّح بها في أي مرحلة.
يُعد CVE-2011-2523 واحدًا من أشهر حالات اختراق سلسلة التوريد في تاريخ المصادر المفتوحة. في عام 2011، تم زرع باب خلفي في الشيفرة المصدرية الرسمية لـ vsFTPd 2.3.4 على خادم التنزيل الخاص بالمشروع — حيث عدّل مهاجم الملف التنفيذي بحيث يؤدي إدخال اسم مستخدم يحتوي على :) إلى تفعيل صدفة باب خلفي على منفذ TCP رقم 6200، مما يمنح أي مهاجم بعيد وصولاً بصلاحيات الجذر (root).
يتحقق هذا المختبر من CVE-2011-2523 باستخدام منهجية منظمة لتقييم الثغرات:
ftp-vsftpd-backdoorهذا عمل حقيقي في تقييم الثغرات — نفس المنهجية التي يستخدمها مختبرو الاختراق ومحللو SOC عند إجراء تقييمات أمنية مصرّح بها.
| المكوّن | التفاصيل |
|---|---|
| جهاز الهجوم | Kali Linux |
| الجهاز الهدف | Metasploitable2 (مصاب عمدًا) |
| برنامج المحاكاة الافتراضية | Oracle VirtualBox |
| الشبكة | محول Host-Only — معزول، بدون وصول إلى الإنترنت |
| الأدوات | Python 3، Nmap، NSE، مكتبة python-nmap |
| عنوان IP الهدف | 192.168.56.103 |
| الحقل | التفاصيل |
|---|---|
| معرّف CVE | CVE-2011-2523 |
| البرمجيات المصابة | vsFTPd 2.3.4 |
| درجة CVSS | 10.0 — حرجة |
| نوع الثغرة | باب خلفي / اختراق سلسلة التوريد |
| متجه الهجوم | الشبكة — لا يتطلب مصادقة |
| التأثير | وصول عن بُعد إلى صدفة بصلاحيات الجذر (uid=0) |
| تاريخ الاكتشاف | يوليو 2011 |
| MITRE ATT&CK | T1195.002 (Compromise Software Supply Chain) |
كيف يعمل الباب الخلفي:
عندما يتصل عميل بـ vsFTPd 2.3.4 ويرسل اسم مستخدم يحتوي على المحرفين :) (وجه مبتسم)، يتم تفعيل شيفرة الباب الخلفي — مما يفتح صدفة مستمعة على منفذ TCP رقم 6200. والاتصال بالمنفذ 6200 يمنح صدفة تفاعلية بصلاحيات الجذر دون الحاجة إلى أي مصادقة إضافية.
Step 1: Confirm target IP on Host-Only network
└── ifconfig / ip addr on Metasploitable2
Step 2: Verify connectivity
└── ping 192.168.56.103 from Kali
Step 3: Service & version detection
└── nmap -sV -p 21 192.168.56.103
└── Confirm: vsftpd 2.3.4
Step 4: Python-automated NSE scan
└── python3 pythonnmap.py --host 192.168.56.103 --ports 21
└── NSE scripts executed:
ftp-anon
ftp-bounce
ftp-libopie
ftp-proftpd-backdoor
ftp-vsftpd-backdoor ← CVE-2011-2523 validation
Step 5: Document findings & remediation
sudo nmap -sV -p 21 192.168.56.103
المخرجات:
PORT STATE SERVICE VERSION
21/tcp open ftp vsftpd 2.3.4
sudo python3 pythonnmap.py --host 192.168.56.103 --ports 21
sudo nmap --script ftp-vsftpd-backdoor -p 21 192.168.56.103
| الخدمة | المنفذ | النتيجة | الدليل |
|---|---|---|---|
| FTP | TCP 21 | تم تحديد vsFTPd 2.3.4 — إصدار معروف باحتوائه على باب خلفي | فحص الخدمة/الإصدار عبر Nmap |
| FTP | TCP 21 | تم السماح بتسجيل الدخول المجهول عبر FTP | مخرجات ftp-anon من NSE |
| FTP | TCP 21 | تم تأكيد أن الهدف عرضة لـ CVE-2011-2523 | مخرجات ftp-vsftpd-backdoor من NSE |
| CVE-2011-2523 | TCP 6200 | أعاد الباب الخلفي صدفةً بـ uid=0(root) gid=0(root) | مخرجات التحقق من NSE |



في بيئة إنتاج حقيقية، ستشمل المعالجة ما يلي:
| الإجراء | الأولوية |
|---|---|
| إزالة vsFTPd 2.3.4 فورًا واستبداله بإصدار مُرقَّع | 🔴 حرج |
| التحقق من سلامة البرنامج باستخدام تجزئات SHA-256 ومقارنتها بتجزئات المورّد الرسمية قبل التثبيت | 🔴 حرج |
| تعطيل الوصول المجهول عبر FTP ما لم يكن مطلوبًا صراحةً | 🟠 مرتفع |
| تقييد تعرّض خدمة FTP باستخدام قواعد جدار الحماية وتقسيم الشبكة | 🟠 مرتفع |
مراقبة سجلات مصادقة FTP بحثًا عن أسماء مستخدمين مشبوهة تحتوي على :) | 🟡 متوسط |
| النظر في استبدال FTP بالكامل بـ SFTP (بروتوكول نقل ملفات SSH) | 🟡 متوسط |
| الضابط | الإطار | الصلة |
|---|---|---|
| T1195.002 | MITRE ATT&CK | اختراق سلسلة توريد البرمجيات — باب خلفي مُحقَن في مصدر vsFTPd |
| T1133 | MITRE ATT&CK | الخدمات البعيدة الخارجية — يفتح الباب الخلفي صدفة جذر عن بُعد |
| T1190 | MITRE ATT&CK | استغلال تطبيق مواجه للجمهور — استغلال خدمة FTP عن بُعد |
| SI-2 | NIST SP 800-53 | معالجة العيوب — ترقيع البرمجيات المعرّضة وإزالتها |
| SI-7 | NIST SP 800-53 | سلامة البرمجيات — التحقق من تجزئات البرمجيات قبل النشر |
| RA-5 | NIST SP 800-53 | مراقبة الثغرات وفحصها |
| A.12.6 | ISO 27001 | إدارة الثغرات التقنية |
يقوم السكربت pythonnmap.py بأتمتة فحص Nmap NSE باستخدام مكتبة python-nmap:
# Key functionality
import nmap
scanner = nmap.PortScanner()
scanner.scan(
hosts=target_host,
ports=target_ports,
arguments='-sV --script ftp-anon,ftp-bounce,ftp-libopie,ftp-proftpd-backdoor,ftp-vsftpd-backdoor'
)
فوائد أتمتة Python:
| المهارة | التفاصيل |
|---|---|
| بحث CVE | فهم CVE-2011-2523 تقنيًا — متجه الهجوم، آلية الباب الخلفي، درجة CVSS |
| التحقق من الثغرات | استخدام NSE scripting لتأكيد CVE حقيقي في بيئة مُتحكَّم بها |
| Nmap وNSE | اكتشاف الخدمات، وفحص الإصدارات، والتحقق من الثغرات القائم على السكربتات |
| أتمتة الأمن بـ Python | أتمتة فحص NSE باستخدام مكتبة python-nmap |
| توثيق النتائج | جدول نتائج مُنظَّم مع الأدلة والخطورة والمعالجة |
| تخطيط المعالجة | إنتاج توصيات معالجة مُرتَّبة حسب الأولوية |
| ربط MITRE ATT&CK | T1195.002، T1133، T1190 — تقنيات سلسلة التوريد والوصول عن بُعد |
| ربط إطار NIST | SI-2، SI-7، RA-5 — ضوابط معالجة العيوب وفحص الثغرات |
| سلامة المختبر | الحفاظ على شبكة Host-Only معزولة — خطر صفري من الوصول غير المصرح به |
cve-2011-2523-vsftpd-validation-lab/
│
├── README.md # This file
├── pythonnmap.py # Python-automated Nmap NSE scanner
├── requirements.txt # Python dependencies (python-nmap)
├── .gitignore # Excludes sensitive files
│
└── screenshots/
├── metasploitable-ip-address.png # Target IP confirmation
├── ftp-service-version-scan.png # vsFTPd 2.3.4 detected
└── ftp-vsftpd-cve-validation.png # CVE-2011-2523 validated