
مضيف وهمي يمكن "إدارته" بواسطة Dell OMSA، مما يتيح لك تجاوز شاشة تسجيل الدخول.
مضيف مزيّف يمكن "إدارته" بواسطة Dell OMSA، مما يتيح لك تجاوز شاشة تسجيل الدخول، وربما يخدم كنقطة انطلاق لاختبارات التغذية العشوائية (fuzzing) أو غيرها من الاختبارات.
أثناء بحثي عن ثغرات محتملة¹ في Dell OpenManage Server Administrator، كنت مهتمًا بكل من:
عدم الاضطرار إلى حمل خادم Dell معي، لكوني أملك بيانات اعتماد إدارية له، حتى أتمكن بسهولة من استغلال الثغرات التي تتطلب فقط تجاوز شاشة تسجيل الدخول¹، و
معرفة ما إذا كانت ثغرات جديدة قد تنتج عن خادم "مزيّف" (عقدة مُدارة) أتحكم فيه، يستجيب بطرق غير متوقعة وخبيثة لطلبات OMSA.
¹مثل https://www.exploit-db.com/exploits/39486/ وثغرة XXE واحدة على الأقل
قليل من كود Java السريع وغير المُتقن حقًا، مصمم للاستماع إلى طلبات OMSA والاستجابة كما تشاء. عندما كتبته لأول مرة، كان يحتوي على استجابة فقط لطلبين يحدثان أثناء عملية تسجيل الدخول، وهو ما كان كافيًا لإدخالك إلى² نسخة OMSA كمسؤول "حقيقي"³. إذا كنت تريد استهداف أنواع أخرى من الطلبات، فتفحّص التطبيق، ولاحظ بيانات POST التي يرسلها OMSA، وافهم ما هو متوقع كاستجابة، ثم شكّل الاستجابة التي تريدها، وابنِ هذا المنطق في الكود.
²مباشرة بعد تسجيل دخول ناجح، سيعيد OMSA توجيهك إلى صفحة بداية ستُطلق موجة من الطلبات الأخرى. ستحتاج إلى إيقاف متصفحك، لأن OMSA يميل إلى إعادة توجيهك إلى شاشة تسجيل الدخول عندما يواجه أخطاءً، وسيفعل ذلك إذا لم يُعدّل هذا الكود للتعامل مع تلك الطلبات اللاحقة، ولم يستجب بطريقة مناسبة.
³يبدو أن هناك مجموعتين منفصلتين من الحقوق، واعتمادًا على الكود الذي تعبث به، قد تختلف المجموعة التي يستخدمها. يبدو أنه لا يُستخدم سوى ثلاث وحدات بت في كل مجموعة، لذلك فإن 7 (4 + 2 + 1) تمثل الحد الأقصى من الحقوق في كل مجموعة. إحدى المجموعتين تشغل البتات الستة عشر العليا من عدد صحيح 32-بت، بينما تشغل المجموعة الثانية البتات السفلية. في النهاية، تستجيب العقدة المُدارة المزيّفة بـ 7 + (7 << 16). إذا كان هدفك هو اختبار ما إذا كان OMSA يقيّد الوصول إلى موارد معينة بناءً على حقوق المستخدم، فقد تختار تغيير هذه القيمة.
اعتبارًا من 31 مايو 2016، توجد أيضًا استجابة لاستغلال ثغرة XXE. يحاول OMSA تصفية طلبات عناوين URL التي تبدو خبيثة، لكنه لا يبدو متوخيًا الحذر بنفس القدر بشأن البيانات التي يسترجعها من عقدة مُدارة.
هذا ليس مخصصًا بأي حال من الأحوال لمساعدتك في إدارة خوادم Dell، ولا أي خادم آخر. بينما يمكنك محاولة إعادة تنفيذ جميع الوصفات السرية لشركة Dell، فإن ذلك بعيد كل البعد عن الهدف من هذا الكود. إذا كنت، على عكس هذا الكود، تعتزم إعادة إنتاج سلوكيات Dell بأمانة استجابةً لاستعلامات صمّمتها Dell، فقد ترغب في استشارة محامٍ، لأن قضية Oracle ضد Google ( https://www.eff.org/cases/oracle-v-google ) أو قضايا قانونية أخرى قد تنطبق.
النتيجة النهائية هي الرغبة في جعل servlet الخاص بـ fakedell.XMLResponder متاحًا على https://[yourIP]:5986/wsman
تشير المزيد من الاختبارات مع الإصدارات الأقدم من OMSA إلى أنك ستحتاج أيضًا إلى إتاحة هذا servlet على https://[yourIP]:443/wsman
يجب أن يستخدم الخادم شهادة موقعة ذاتيًا، وعند تسجيل الدخول إلى OMSA، ستقدّم عنوان IP الخاص بك كمضيف بعيد لإدارته، وتختار تجاهل تحذيرات الشهادة.
ملف web.xml الموجود هنا يفترض أنه التطبيق الجذر، ويعيّن servlet إلى /wsman. قد تحتاج إلى تعديل هذا ليتوافق مع إعداداتك.
يمكنك اختيار جعل خادم Java، أو أداة أخرى، يسجّل كل حركة المرور الواردة/الصادرة. على سبيل المثال، جعلت Tomcat يستمع على المنفذ 8080، وجعلت stunnel يستمع على المنفذ 5986، واستخدمت Wireshark لالتقاط كل حركة المرور على المنفذ 8080 عبر جهاز الاسترجاع (loopback).
استمتع~
إذا كانت لديك حجة قوية للحصول على ترخيص بديل، فأرسل لي رسالة ويمكننا التحدث. (لكن بصراحة، هذا مجرد إثبات مفهوم صغير وهيكل عظمي أكثر من أي شيء آخر، ويمكنك على الأرجح إعادة إنشائه بسهولة تامة.)
بخلاف ذلك،
FakeDellOM
Copyright (C) 2016 Harrison Neal, [email protected]
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.