ضعف UPnP القديم بطريقة جديدة

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

ستركز المقالة على واحد قديم ، ولكن كما تبين ، لم تفقد أهميتها حتى يومنا هذا ، ثقب UPnP.



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

PPS وقعت جميع الأحداث في نهاية عام 2018. الأبطال خياليون ، والتطابق مع الشخصيات الحقيقية عشوائي.

برنامج تعليمي موجز:
هناك بعض مكتبة libupnp للتطوير "يتم استخدامها على آلاف الأجهزة وتسمى Intel SDK لأجهزة UPnP أو SDK المحمولة لأجهزة UPnP."

بالإنجليزية:
"توفر حزمة SDK المحمولة لأجهزة UPnP (libupnp) للمطورين واجهة برمجة تطبيقات ورمزًا مفتوح المصدر لبناء نقاط التحكم والأجهزة والجسور المتوافقة مع الإصدار 1.0 من مواصفات بنية جهاز التوصيل والتشغيل العالمي وتدعم العديد من أنظمة التشغيل مثل Linux ، * BSD ، Solaris وغيرها. "


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

على سبيل المثال على كافة أجهزة التوجيه باستخدام UPnP الإصدار 1.0 ، يمكنك تنفيذ تعليمات برمجية عشوائية.
بدون إذن. من الجذر. عظيم ، صحيح؟

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

تسلسل زمني موجز لأحداث ذلك اليوم:


14:00 في الدعم الفني ، يبدأ المشتركون في استقبال المكالمات إلى الإنترنت السيئ الأداء.

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

يتم تسجيل التطبيقات الفردية للتحقق من الخط للمسؤولين أو لمغادرة المثبت. لا يوجد قالب مشترك للعمل. لا شيء واضح.

15:00 يبدأ عدد الطلبات في تجاوز متوسط ​​درجة الحرارة في المستشفى ، وتبدأ الطلبات الفردية في النحت في تطبيقات لمزيد من نوع "حادث". يتم تقديم الطلبات إلى كبار المسؤولين للتحقق من قطاعات الشبكة.

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

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

15:35 يتلقى المهندس المناوب طلبًا لمشكلة في خدمة العملاء. يحصل على قائمة بجميع العملاء ونوع الاتصال وطراز الجهاز. ثم يبدأ القليل من السحر.



المفسد
التي ، بالمناسبة ، لم تنجح ثم تم طرد الساحر الرئيسي (لكنهم يقولون إن ذلك ليس لهذا).

15:40 يدير المهندس قائمة العملاء من خلال جميع التشخيصات ، حيث تم فحص كل جهاز توجيه وفقًا لجميع المقاييس القياسية و ... لم يتم العثور على أي شيء. جهاز التوجيه يشبه جهاز التوجيه. نعم ، لقد زادت وحدة المعالجة المركزية ، لكن المؤشرات ليست حاسمة ، لكنها تصب حركة المرور في مكان ما ، مما يعني أنها تعمل.

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

16:00 فقط الآن نكتشف أن هناك بعض المشاكل. يقدم المهندس المناوب تقاريره إلى مشرفه ، ويقوم المشرف بإجراء مكالمة هاتفية إلينا بشأن تخميناته بشأن المنفذ 52869 وطلب المساعدة.

16:05 ثم حدث كل شيء بسرعة كبيرة. يتم تضمين نفس طراز جهاز التوجيه على حامل الاختبار ، ويتم أخذ عنوان IP من عميل المشكلة وتعليقه على الاختبار. تم تشغيل wireshark. هذا هو لالتقاط الطلبات على الجهاز.

من أجل التقاط الطلبات من جهاز التوجيه (في ذلك الوقت كان المخطط العام لكيفية استمرار التفاعل غير معروف) يتم عزل العميل في مقطع الاختبار ويتم عكس كل حركة المرور الخاصة به إلى أقرب جهاز اختبار حيث يتم رفع سلك آخر.

ننتظر أكثر ، ننظر إلى الشاشة.

تم القبض على الاختراق بالفعل بهذه الطريقة - بكفاءة عالية ، وبالتالي قرروا عدم تغيير العادات.

16:10 في حين أن حرائق Wireshark ، في Google ، هناك ثغرة CVE-2014-8361 يتم إبلاغ المهندسين عنها. يقوم المهندس ، بدون استماع ، باتخاذ قرار (ومن حيث المبدأ ، منطقي) - مرشح هذا المنفذ على الحدود. لم يقل من فعله.

المفسد
هذا لم ينجح.

16:25 يقال لنا أن كل القلاع المتكرر لم يعمل ميشا . وعلمنا بالفعل أن هذا لن ينجح. وبحلول ذلك الوقت ، كانوا قد طرقوا بالفعل على جهاز التوجيه الاختباري ، ورفعوا الاتجاه المعاكس ذهب على منفذ آخر وبدأوا في استخدامه لمنفذ DDOS-a حتى عام 1900 (!) باستخدام ثغرة أخرى. يا رب ، ما يمكن أن القمامة المتسربة

برنامج تعليمي لا يزال
استخدم في هجمات DDoS

في عام 2014 ، تم اكتشافه بشكل غير متوقع أن SSDP تم استخدامه في هجمات DDoS مثل هجوم انعكاس SSDP مع التضخيم. عيب في العديد من الأجهزة ، بما في ذلك أجهزة التوجيه المنزلية ، في برنامج UPnP ، مما سمح للمهاجم بإرسال ردود من المنفذ 1900 إلى عنوان عشوائي على الإنترنت. في حالة استخدام الروبوتات من عدة آلاف من هذه الأجهزة ، يمكن للمهاجم إنشاء دفق كبير من الحزم الكافية لاحتلال النطاق الترددي وإشباع قنوات البيانات للموقع المهاجم ، مما يؤدي إلى رفض الخدمة للمستخدمين العاديين.

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

16:30 مؤتمر يجمع الأسئلة "على من يقع اللوم وماذا يفعل". تم ترك المنفذين 1900 و 52869 محظورين. تجري محاولات لإصلاح شيء ما على الأجهزة المخترقة. إعادة التشغيل - لم يساعد ، تم رفض فكرة إعادة الوميض على الفور. نعم ، هناك مثل هذه الوظيفة ، كان من الممكن إعادة ترتيب البرنامج عن بعد عبر TR069 بزر واحد على جميع الأجهزة. لكن منذ ذلك الحين لم يكن الجهاز أول نضارة ، لكن عدد العملاء كان كبيرًا - ستؤدي نسبة معينة من الأجهزة المكسورة إلى حدوث مشكلات.

16:40 للتلخيص: يتم اختراق الأجهزة ، والمشاركة في الحد الأدنى في ddos ​​وإرسال شيء في مكان ما على القناة المشفرة. (كل ذلك على منافذ مختلفة ). الدخول غير ممكن ، رفض البائع الوصول الكامل عبر ssh إلى الجهاز ومعرفة ما كان من المستحيل الوصول إليه. وحدة التحكم محمية بكلمة مرور.

في مكان ما أقرب إلى 17:00 ، تقرر خياطة الجهاز بأسرع طريقة. بعد الوميض وإعادة التشغيل ، عاد كل شيء إلى طبيعته.

بدلا من المجاميع


للأسف ، لم نتمكن من حل هذه المشكلة تمامًا.

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

إذا كان من الجيد البحث في شودان ،
يمكنك أن تجد لنفسك شيئا
للتجارب:
بطريقة أو بأخرى
لكنني لم أخبرك بذلك.

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


All Articles