حالة الموضوع:
مغلق
  1. .:: RSS ::.

    .:: RSS ::. عضوية آلية

    الأنتساب:
    ‏9 سبتمبر 2011
    المشاركات:
    14,005
    الإعجابات المتلقاة:
    0
    نقاط الجائزة:
    36
    الإقامة:
    IQ-T34M
    السلام عليكم جميعا

    من زماااااان عن المنتديات اشتقتلكم والله :)

    اليوم باذن الله بنتكلم عن موضوع جديد واعتقد مهم شويه وهو طريقه لتجاوز المصادقه فى سرفرات قواعد البيانات الى تعتمد على MySQL وايضا وجد ان السرفرات الى تعتمد على MariaDB مصابه بهذا النوع من الضعف الامنى .

    الطريقه فى المجمل عباره عن تجاوز كلمه السر لحساب الرووت root فى قواعد البيانات من نوع MySQL و MariaDB باستخدام كلمه دخول خاطئه !

    حسنا ; الان وقت المرح :)

    الفكره هنا تعتمد على طريقه معالجه البرامج المصابه لكلمات المرور الخاصه بالمستخدمين فيها حيث فى كل مره يتم تسجيل الدخول بكلمه مرور يتم فتح token جديد ومن ثم مقارنته بكلمه المرور المتوقعه والمحفوظه بداخل القاعده وذلك عن طريق استخدام داله memcpy() والتى تفترض انه يتم ارجاع القيم فقط فى حدود -127 الى 127 الى انه فى بعض نظم التشغيل وباستخدام بعض الكومايلرز تكون الداله memcpy() ذات مدى اكبر من -127 الى 127 ومن ثم تقوم بارجاع قيم اكثر .

    بمعنى اخر انه عندما يتم تسجيل الدخول يتم استنتاج هاش محدد لكلمه المرور الموضوعه فى الحقل ومن ثم يتم مقارنتها بالهاش المحفوظ فى قاعده البيانات واذا لم يكونا متطابقين يتم رفض عمليه تسجيل الدخول , اذا لابد من فهم كيفيه استنتاج الهاش بصوره مبسطه

    ولنفترض ان كلمه السر لمدير السرفر صاحب حساب ال root هى 0011223344
    وانها محفوظه فى بيانات مدير السرفر بتشفير محدد وليكن
    "2fc5ce2c16c697a9362aeade602ab166"

    من بعدها ياتى المخترق وعندما يحاول تسجيل الدخول باستخدام اى كلمه سر اخرى يكون الناتج هو هاش مختلف فى حاله واحده فقط اذا كانت كلتا الكلمتان تحت نفس ظروف التشفير بمعنى اصح تحت نفس المستوى ونفس معادله التشفير من نفس النوع ونفس المتغيرات سينتج ببساطه هاش مختلف وبناء عليه يتم رفض كلمه السر

    ماذا لو كانت العمليه تتم فى قواعد بيانات ال MySQL بطريقه مختلفه ؟؟؟؟
    عند دراسه طرق تشفير كلمه المرور الخاصه بحساب ال root فى قواعد ال MySQL وجد انها تسمح تقوم بتخزين الهاش الخاص بكلمه المرور ومن ثم تقوم بمقارنه كلمه المرور المستخدمه فى كل مره يتم فيها تسجيل الدخول الا انها لا تضع نفس ظروف التشفير فى كل الحالات بمعنى اصح يتم استخدام معادله تشفير واحده ولاكن بمتغيرات مختلفه فى كل مره وذلك يفتح الباب امام العديد من الاحتمالات فى تطابق كلمه السر وعند حسابها رياضيا وجد ان احتمال تطابق الهاش الناتج مع الهاش المخزن فى بيانات الادمن تساوى 1/256 وذلك عند التخمين باستخدام حساب واحد فقط وهو ال root

    الان انتهينا من المقدمه و نبداء فى بعض الاكواد :)

    مبدئيا من الضرورى معرفه انه ليس كل قواعد البيانات من نوع MySQL فى العالم معرضه لهذه الطريقه انما فقط ما ينطبق عليه مواصفات الاختراق :
    اولا هناك بعض انظمه التشغيل تم التاكيد على فاعليه هذه الطريقه فى اختراقها وهى :

    كود:
    Ubuntu Linux 64-bit ( 10.04, 10.10, 11.04, 11.10, 12.04 )
    OpenSuSE 12.1 64-bit MySQL 5.5.23-log
    Fedora 16 64-bit
    Arch Linux (unspecified version)
    طيب الان الجزء التانى من عمليه الاختراق يتوقف على مدير السرفر وذلك اذا كان منتبها لاعدادت ملف my.cfn فى الخادم ام لا !
    كود:
    /etc/mysql/my.cnf
    عند اعداد ملف my.cfn يتم اعداد البايند ادرس المسموح له بالاتصال مع السرفر كما فى المثال :
    كود:
    # Instead of skip-networking the default is now to listen only on
    # localhost which is more compatible and is not less secure.
    bind-address = 192.168.0.1
    فى المثال السابق نجد ان البايند ادرس متاح للشبكه الداخليه بمعنى اصح اى جهاز كمبيوتر ضمن الشبكه الداخليه للسرفر يمكن ان يملك الايبيى 192.168.0.1 ويقوم بالاتصال مع الجهاز .
    بالطبع عند الاتصال سيتم سؤاله عن اليوزر والباس الخاص بيه ولاكن هنا من الممكن تنفيذ هذه الطريقه الى تكلمنا عنها والدخول للنظام بباسورد خطاء !


    فى اغلب انظمه التشغيل المعتمده على بيئه ال linux بيكون البايند ادرس لل MySQL هو اللوكال هوست وفى الحاله دى بتمنع الاختراق عن بعد (remote exploitation) .
    عموما ال bind-address الخاص بسرفر ال MySQL لا يجب ان يكون متاحا لاكثر من اللوكال هوست كما فى المثال الاتى :

    كود:
    # Instead of skip-networking the default is now to listen only on
    # localhost which is more compatible and is not less secure.
    bind-address = 127.0.0.1

    الان شرحنا الفكره العامه والاسباب والانظمه المصابه وكمان طريقه مبسطه للحمايه من هذا النوع من الهجمات الان وقت الاختراق :)

    فى مشروع الميتا سبلويت يجود موديل جاهز لهذه العمليه وظيفته سحب هاشات الاعضاء :

    كود:
    Matching Modules
    ================

    Name Disclosure Date Rank Description
    ---- --------------- ---- -----------
    auxiliary/scanner/mysql/mysql_authbypass_hashdump 2012-06-09 normal
    ومثال بالتطبيق العملى



    ويوجد مثال اخر وهو سكربت لاستغلال الطريقه دى بصوره مبسطه اكتر من هنا

    ------------------------------------------------------------------------------------------------

    المصادر :

    كود:
    google.com
    explo.it
    http://www.cve.mitre.org/cgi-bin/cve...=CVE-2012-2122
    -------------------------------------------------------------------------------------------

    اتمنى الدرس يكون مفهوم !!

    >> حاولت الكتابه بالعربيه الفصحى بس اعتقد مره على مره بتكون احسن :)

    والسلام خير ختام

    المصدر: شبكة عراق تيم IQ-TEAM - من قسم: |[ RSS Forum ]|


    المصدر: شبكة عراق تيم IQ-TEAM - من قسم: |[ RSS Forum ]|


    المصدر: شبكة عراق تيم IQ-TEAM - من قسم: |[ RSS Forum ]|


    المصدر: شبكة عراق تيم IQ-TEAM - من قسم: |[ RSS Forum ]|


    المصدر: شبكة عراق تيم IQ-TEAM - من قسم: |[ RSS Forum ]|


    المصدر: شبكة عراق تيم IQ-TEAM - من قسم: |[ RSS Forum ]|

    SQL MySQL Remote Authentication Bypass​
     
حالة الموضوع:
مغلق

مشاركة هذه الصفحة