إذن محلي بدون كلمة مرور في أوبونتو

الصورة

سنتحدث اليوم عن كيفية العثور على تفويض محلي بدون كلمة مرور في Ubuntu ، والتي يبدو أنها لن تُغلق أبدًا. كيف حدث كل شيء ، اقرأ تحت القطع.

في أمسية صيفية جميلة ، أغلق مؤلف المقالة غلاف كمبيوتر محمول يعمل من Ubuntu 16.04 Desktop إلى Unity وعاد إلى المنزل. كانت الأمسية جميلة للغاية لدرجة أنني قررت أن أخذ إجازة لبضعة أيام ، وأرسلت رسائل قصيرة إلى مديري ، وتركني أذهب.

كما اتضح ، لم يكن لدى جميع زملائي نفس المساء الرائع. تعطل جهاز الكمبيوتر المحمول C4n ، فطلب مني أن أقرضه لي ، ولكن مع محرك الأقراص الثابتة. بالطبع سمحت.

وبهذا بدأ تحقيقنا الرائع.

ماذا حدث


في صباح اليوم التالي ، قام c4n بتفكيك جهاز الكمبيوتر المحمول وإدخال محرك الأقراص الثابتة هناك. فتح الغطاء ورأى ، بدلاً من البدء في تحميل نظام التشغيل الخاص به ، نافذة تسجيل الدخول على نظامي. كان قابلاً للنقر ، وبدأ c4n في إدخال كلمات مرور عشوائية ، ولكن دون جدوى. محبط ، ضغط على زر الطاقة ، ثم حدثت معجزة .

بدلاً من إعادة تشغيل الكمبيوتر ، نجحت في تسجيل الدخول إلى نظامي ، كما تم عرض آخر البرامج والمستندات التي فتحتها. جدير بالذكر أن الوثائق لم تُعرض فقط ، بل عملت من أجلها! يمكنك التمرير عبر المستندات والانتقال عبر علامات تبويب المتصفح. أخذ c4n على الفور لقطة شاشة لي.

الصورة
في الواقع ، كانت لقطة الشاشة مختلفة. عند ترك العمل ، لا أترك KeePass مفتوحًا وموقع الشركة الإلكتروني.

في مواجهة التفويض المحلي بدون كلمة مرور!

عندما خرجت من الإجازة ، تساءلت عن خطأ هذه الظاهرة ، سواء كانت تتكرر دائمًا وما إذا كانت تتكرر دائمًا ، وما إذا كانت مستنسخة على جميع الأنظمة.

الأسباب


كما اتضح ، كان خطأ هذه الظاهرة أنه عندما تم إغلاق الغطاء ، لم يكن جهاز الكمبيوتر المحمول الخاص بي في وضع الإسبات ، ولكنه ذهب إلى النوم (أي الطاقة المتبقية على ذاكرة الوصول العشوائي) ، وبعد فتح الغطاء ، ظل نظام التشغيل المحمل وأحدث الملفات في ذاكرة الوصول العشوائي ، مع التي عملت معها. لا يعرف نظام التشغيل أن القرص الصلب قد تمت إزالته من الكمبيوتر ، ويستمر في العمل حتى تحتاج إلى الوصول إلى القرص الصلب.

لماذا من الممكن تمرير الترخيص لا يزال لغزا بالنسبة لنا. نخطئ في عمل وحدات PAM (وحدات المصادقة القابلة للتوصيل) ، والتي ، على الأرجح ، ليست في ذاكرة الوصول العشوائي ، ويعالج Ubuntu 16.04 غيابها بشكل غير صحيح ، ولكن بعد ذلك أدركنا أن المشكلة هي شيء آخر.

هل هو مستنسخ دائمًا ومتشابه دائمًا؟


بدأت تجاربنا مع Ubuntu 16.04. كانت الإجراءات على النحو التالي:

  1. نرسل الكمبيوتر إلى وضع السكون.
  2. نخرج القرص الصلب.
  3. نقوم بتنبيه الكمبيوتر من وضع السكون.

علاوة على ذلك ، كما اتضح ، قد يكون هناك العديد من الخيارات لسلوك النظام:

  1. يظهر الكمبيوتر نافذة تسجيل الدخول ، أدخل كلمة مرور عشوائية => نرى نوافذ المستخدم أمام القسيمة (جميع النوافذ تعمل).
  2. يعرض الكمبيوتر نافذة تسجيل الدخول ، أدخل كلمة مرور عشوائية => يقول النظام أن كلمة المرور غير صحيحة => اضغط على زر الطاقة مرة واحدة => نرى نوافذ المستخدم قبل الانزلاق (جميع النوافذ تعمل).
  3. يعرض الكمبيوتر شاشة سوداء (يتم تشغيل المؤشر فوقه) ، اضغط على مفاتيح عشوائية وأدخل => نرى نوافذ المستخدم أمام القسيمة (جميع النوافذ تعمل).
  4. يعرض الكمبيوتر شاشة سوداء (يمر المؤشر فوقها) ، واضغط على مفاتيح عشوائية وأدخل => لا يحدث شيء => اضغط على زر الطاقة مرة واحدة => نرى نوافذ المستخدم قبل الانزلاق (تعمل جميع النوافذ).

على الأرجح ، العناصر 3-4 تشبه العناصر 1-2 ، لسبب ما فقط ، الرسم لا يرسم نافذة تسجيل دخول.

تم تنفيذ التجربة عدة مرات ، وفي جميع الأوقات كان من الممكن الوصول إلى نوافذ المستخدم ، أي استنساخ 100٪. هذا رائع جدًا لمثل هذا الخطأ الغريب. صحيح ، من الجدير بالذكر أن النوافذ النشطة فقط هي المتاحة ، لم نتمكن من التبديل إلى النوافذ المصغرة. أيضًا ، اختفت بعض النوافذ بعد فترة ، وأحيانًا لوحظ تأثير التسجيل ، ولكن إحدى طرق الدخول الأربعة سمحت بالعودة.

PoC


صورنا مقطع فيديو قصير يوضح عملية الهجوم بأكملها.


هل تلعب على جميع الأنظمة؟


كان شرط الاختبار هو وجود جميع التحديثات الأخيرة على النظام. لماذا نحتاج إلى خطأ تم إغلاقه لفترة طويلة؟

بادئ ذي بدء ، تقرر التحقق مما إذا كان يتم إعادة إنتاج الخطأ على أجهزة الكمبيوتر العادية (وليس أجهزة الكمبيوتر المحمولة) مع Ubuntu 16.04 مع Unity. كانت هناك نظرية مفادها أن عرض النافذة يمكن توصيله بطريقة أو بأخرى ببطاقة فيديو. لذلك ، تم إجراء الفحص من جهاز كمبيوتر يحتوي على بطاقات رسومات مدمجة ومنفصلة ، وفي جميع الحالات كانت النتيجة هي نفسها - فهي تفي بالخلل تمامًا.

التالي كان Ubuntu 16.04 مع GNOME. وهنا شعرنا بخيبة أمل: لم أتمكن من حل الخلل. في بعض الأحيان ، عند الخروج من زلة ، أظهر النظام النوافذ الأخيرة لمدة نصف ثانية (من الممكن تمامًا تصوير مقطع فيديو) ، أفاد الباحثون بذلك مرة أخرى في عام 2011 ، ولم يتم إغلاقه حتى الآن.

أبعد أخذنا قوس مع وايلاند و Xorg - خيبة الأمل ، لا يعمل. دبيان 9 مع جنوم وخيبة أمل مرة أخرى. لم يعمل أيضًا على Ubuntu 18.04 الجديد - ليس من المستغرب ، لأنه بحلول هذا الوقت بدأنا بالفعل نشك في أن المشكلة كانت في الوحدة. لذلك ، قررنا أن نأخذ Ubuntu 14.04 لأحدث الاختبارات ، ونرى أيضًا ما يحدث مع Ubuntu 18.04 إذا قمت بتغيير مدير النوافذ من GNOME إلى Unity. في Ubuntu 14.04 ، عمل كل شيء بشكل جيد (على الرغم من أن عمر النوافذ أقصر بكثير من 04/16). في Ubuntu 18.04 مع Unity ، بعد الخروج من الانزلاق ، يتعطل النظام على الفور ، ولا يمكن إجراء المزيد من التجارب.

الخلاصة: قررنا أن إصدارات Ubuntu مع Unity المثبتة أصلاً ضعيفة ، أي الإصدار

  • 10.10
  • 11.04
  • 11.10
  • 12.04
  • 12.10
  • 04/13
  • 13.10
  • 14.04 (تم اختباره من قبلنا)
  • 14.10
  • 04/15
  • 15.10
  • 04.16 (تم اختباره من قبلنا)
  • 16.10 (تم اختباره من قبلنا)
  • 04.17 (تم اختباره من قبلنا)

قائمة رائعة جدًا ، أليس كذلك؟ لقد اختبرنا بعيدًا عن كل شيء. إذا كان لدى شخص ما فرصة للتحقق من الإصدارات الأخرى التي لم نختبرها ، فسوف نضيفها إلى المشاركة بكل سرور.

لماذا نعتقد أن هذا سيئ


تسمح الثغرة بالوصول المحلي إلى البيانات فقط ، وليس للجميع ، ولكن فقط لتلك المفتوحة في التطبيقات والتي تم نشرها. ومع ذلك ، لا يزال هذا أمرًا بالغ الأهمية ، لأنه:

  1. قد لا يتم حفظ البيانات المستخدمة على القرص (على سبيل المثال ، مستند قابل للتحرير).
  2. يمكن أن تكون البيانات في دليل رئيسي مشفر (على سبيل المثال ، ملف به كلمات مرور).
  3. يمكن أن تكون البيانات على محرك أقراص محمول مشفر.
  4. قد تتطلب البيانات تفويضًا إضافيًا (كما هو الحال في PoC مع KeePass).

بالإضافة إلى ذلك ، في Unity ، يمكن لأي شخص إرسال جهاز كمبيوتر إلى قسيمة ، ببساطة من شاشة تسجيل الدخول (بدون إذن). على سبيل المثال إنه وضع حقيقي تمامًا أن يقفل الشخص الشاشة ويغادر لتناول الغداء ، في هذه اللحظة يرسل المهاجم الكمبيوتر إلى زلة ، ويخرج القرص الصلب وينظر إلى ما فعله الشخص قبل أن يذهب لتناول الغداء. بعد أن تبقى لإعادة تشغيل الكمبيوتر بالفعل مع القرص ، ولن يخمن الشخص أنه يمكن اختراق بياناته.

سيقول المشككون أنه يمكن تحقيق نتيجة مماثلة بسهولة عن طريق شن هجوم على الحذاء البارد ، وستكون النتائج أفضل ، ولكن كم مرة تحمل أي منكم الترمس مع بضعة لترات من النيتروجين السائل؟

قررنا أن المشكلة حرجة ويجب كتابتها في أوبونتو.

كما نكتب في أوبونتو


للحصول على خطأ ، كان علينا التسجيل على launchpad.net ، ثم إنشاء وصف للخلل وإضافة فيديو من PoC. حصلنا على 406 نقاط تقييم وشارة نار (مهما كان ذلك). بدأوا في الانتظار. بدأنا الخطأ في 2018-06-18.

بعد مراسلات طويلة ، أنهى الرفيق مارك ديسلوريير مناقشتنا برسالة اختتمت بقولها: "لن نصلح أي شيء. إنه نفس الوصول المادي ".

الصورة

محاولات الإقناع باءت بالفشل. تم إرسالنا إلى تجاهل تام لمدة أسبوع. وبعد ذلك حصلنا على إذن لنشر هذه الدراسة:

الصورة

حدث: 9 تموز (يوليو) 2018 ، في تمام الساعة 16 صباحًا ، قررنا نشر الخطأ بشكل عام (شكرًا لك amarao ). في المناقشة على منصة الإطلاق ، تم تأكيد الخطأ لـ Mate 18.04 ، وليس فقط للوحدة. يصر المجتمع أيضًا على أن الخطأ موجود ويجب عدم تجاهله.

Source: https://habr.com/ru/post/ar416425/


All Articles