






السمعة:
السلام عليكم ورحمة الله وبركاته
سأتحدث في هذا الموضوع عن استهداف قواعد بيانات MySQL وإن شاء الله يكون الموضوع خفيف.
باختصار هي قاعدة البيانات الأكثر شعبية والأكثر استخدامًا، وتعتبر الخيار الأول لدى المطورين خاصة أنها مفتوحة المصدر، كما تدعم هذه القاعدة كثير من لغات البرمجة مثل PHP , Perl, Python حتى أنها تدعم إطار عمل node.js ، كما تستخدمها منصات كبرى مثل منصة x و Linkedin .ما هي قواعد MySQL ؟
خطوت الاستهداف سترتكز على 3 ركائز رئيسية وهي :ما هي خطوات الاستهداف ؟
1 - جمع المعلومات (Information Gathering).
2 - التعداد (Enumeration).
3 - الاستغلال (Exploitation).
والآن لنبدأ على بركة الله ..
سنبدأ أولاً بتوضيح بسيط لاستخدام هذه الخدمة..
إذا كانت لديك خدمة mysql مُفعلة في سيرفرك أو في أحد الأجهزة، حينها بإمكانك أن تتصل بهذه الخدمة عن طريق أداة mysql، وكل ما ستحتاجه هو اسم مستخدم وكلمة مرور وعنوان ip، عليك أيضا أن تعلم أن الخدمة قد تحتوي على أكثر من قاعدة بيانات لذلك وجب التنبيه!

القاعدة مكونة من جداول، والجداول بها أعمدة، والأعمدة تمتلك بيانات، وهذا هو التدرج الذي سنتبعه للوصول إلى البيانات.
في حالتنا لدينا اسم مستخدم root بلا باسوورد، والسبب أن المطورين عادة أثناء عملهم على قاعدة البيانات يتركو اليوزر بلا كلمة سر لتسهيل عملهم أثناء العمل فلا يضطروا إلى إدخال كلمة السر أكثر من مرة؛ وبالتالي في أحيان كثيرة ينسى المطور إرجاع كلمة السر إلى الحساب، وهذا في حد ذاته يعتبر misconfiguration وبالطبع هذا الأمر لابد من استغلاله،
عمومًا لنجرب الاتصال عن طريق الأمر التالي ..
كود:
mysql -h 192.74.58.3 -u root
والنتيجة كالتالي :
والآن سنستعرض قواعد البيانات الموجودة عن طريق الأمر التالي :
كود:
SHOW DATABASES;
سنختار books
كود:
use books;
كود:
show columns FROM authors FROM books;
كود:
SELECT email FROM authors;
والآن لنبدأ الاستهداف ..

عادة يتم جمع المعلومات على مراحل مختلفة وقد ذكرناها سابقًا في أحد المواضيع السابقة(بإمكانك زيارة الموضوع من هنا ومن هنا أيضًا)، لذلك لن نتحدث كثيراً عن هذه المرحلة وسنكتفي بالبدء بفحص المنافذ في جهاز الضحية عن طريق أداة nmap
من الأفضل أن تكون على علم بهذه الأداة وكيفية استخدامها، بإمكانك الاطلاع على هذا الشرح للأداة من هنا.
يُفضل أيضًا أن يكون لديك معرفة بأساسيات الشبكات واستخدام مشروع metasploit
لنبدأ الفحص ..
كود:
nmap 192.74.58.3 -vv
والنتيجة كالتالي :
كود:
nmap -sV 192.74.58.3 -vv
والنتيجة كالآتي :
والآن بعد أن عرفنا بوجود الخدمة ورقم الإصدار سننتقل لمرحلة التعداد ونجمع المعلومات بشكل أكبر.

أثناء مرحلة جمع المعلومات ستحتاج أن تبحث عن أسماء مستخدمين كل اسم مستخدم قد تجده سيساعد بشكل أكبر في عملية التعداد وهذا سيتضح لنا من خلال التجربة التي سنطبقها الآن.
سنبدأ باستخدام أحد سكربتات الـnmap ، لنبدأ ..
كود:
nmap -p 3306 192.231.130.3 --script=mysql-empty-password -vv
كود:
nmap -p 3306 192.231.130.3 --script=mysql-info -vv
هذا الخاصية تسمح للمستخدم بأن يطبق queries على السيرفر، وطبعًا هذا جداً مفيد وسنستغله لصالحنا.
الآن لنلقي نظرة على سكربتات الـnmap الخاصة بالـmysql .
كود:
ls /usr/share/nmap/scripts/mysql*
كود:
nmap -p 3306 192.157.146.3 --script mysql-users -vv
كود:
nmap -p 3306 192.157.146.3 --script mysql-users --script-args="mysqluser='root',mysqlpass=''" -vv
والآن لنظهر قواعد البيانات باستخدام الـnmap من خلال سكربت يدعى mysql-databases ولكن قبل تشغيله لنقرأ السكربت وننظر كيف يعمل ..
كود:
cat /usr/share/nmap/scripts/mysql-databases.nse
هذا خلاصة السكربت وإن كان يقوم بعمل أشياء أخرى لكن هذا الأمر هو جوهر السكربت باختصار
ستجد أيضاً أن مع بداية تشغيل الاسكربت سيبدأ بالبحث عن أي نتائج من الممكن أنك قد حصلت عليها من سكربتات أخرى من الـnmap وإن لم يكن هناك أي نتائج سينظر للأمر إذا ما تم استخدام خاصية script-args كما في الصورة:
الآن لنستخدم السكربت بعد أن عرفنا متطلباته .
كود:
nmap -p 3306 192.157.146.3 --script mysql-databases --script-args="mysqluser='root',mysqlpass=''" -vv
وهكذا تظهر لنا قواعد البيانات بلا أي مشاكل
لنستخدم سكربت آخر من nmap يظهر لنا الـvariables الخاصة بالـmysql
كود:
nmap -p 3306 192.157.146.3 --script mysql-variables --script-args="mysqluser='root',mysqlpass=''" -vv
كما ترى أخي في الله يظهر لنا الكثير من المعلومات، ولكن ما هي الـmysql variables ؟
هي باختصار ذاكرة يقوم المطورين من خلالها بتخزين الكثير من البيانات المتغيرة والمهمة جدًا، والتي تستخدم أساساً في ميكنة الخدمة وكتابة الـqueries الخاصة بها وإدارتها.
طبعاً أي شيء يأتي من تحت يدي المطور هو بالنسبة لنا كنز، وكلما كانت آلية عمل الخدمة أكثر وضوحاً لك كلما تمكنت من استغلال المعلومات التي تحصل عليها.
سنجد من ضمن المعلومات التي تظهر لنا مكان تخزين البيانات على السيرفر كما في الصورة:
وقبل أن ننتقل إلى الخطوة التالية علينا أن نوضح كيف يعمل هذا الاسكربت في الأساس؟
وهو باختصار يقوم باستخدام sql query وهي show variables; هذا باختصار شديد
لنستخدم الآن هذا السكربت mysql-dump-hashes
كود:
nmap -p 3306 192.157.146.3 --script mysql-dump-hashes --script-args="username='root',password=''" -vv
والآن سنشرح السكربت الأخير معنا في هذا الدرس ألا وهو mysql-query
كنا في وقت سابق عندما استخدمنا سكربت mysql-info ظهر لنا أننا نستطيع تطبيق queries ولاحظنا أيضًا أن كل السكربتات التي استخدمناها تستخدم query بشكل أو بآخر
لكن ليس من المنطقي أن أستخدم سكربت لكل query على حدا، وهنا يأتي دور هذا السكربت الذي يسمح لك بتطبيق أي query تريده، لنجرب ..
كود:
nmap -p 3306 192.157.146.3 --script mysql-query --script-args="query='select count(*) from books.authors;',username='root',password=''" -vv
طبعاً في عملية التعداد (enumeration) لا يمكن أن نستغني عن مشروع الـmetasploit حيث يوجد لدينا الكثير من الـmodules التي يمكن استخدامها..
لنعمل على تجرُبت بعضاً منها ..
كود:
use auxiliary/scanner/mysql/mysql_hashdump
set RHOSTS 192.157.146.3
set USERNAME root
set PASSWORD ""
exploit
هذا مثال على استخدام سكربت، يقوم بعمل dump للهاشات مثل ما فعلنا في الـnmap
وهكذا لديك أخي المسلم الكثير من الاسكربتات المتاحة مثل سكربتات التخمين وسكربتات استغلال الثغرات المباشرة إلخ ...
طبعًا لم نتناول استهداف mysql من جانب الويب (web) لأن هذا الشرح موجه لمختبري اختراق الشبكات.
إلى هنا ينتهي ما لدي، سأحرص على أن أُبقي هذا الشرح تحت التحديث الدائم بإذن الله.
اللاب الذي طبقت عليه موجود على منصة Attack defence وبإمكانك أيضا أن تطبق عليه من خلال منصة INE ولكن جميعها تتطلب اشتراك.
بإمكانك أيضا أن تطبق على metasploitable وتجرب
إن أحسنت فمن الله وإن أسأت فمن نفسي والشيطان
دُمتم هكرجية
في أمان الله
دُمتم هكرجية
في أمان الله
التعديل الأخير بواسطة المشرف: