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

بالنسبة لي ، كمتحدث ، كان ذلك رائعًا حقًا. لكن المشكلة كانت في أن المقالة قررت التأكيد على أنني عملت في مؤسسة معينة باسم ثلاثي الأحرف ، والتي كانت هناك القليل جدًا من الملاحظات في الصحافة مؤخرًا. علاوة على ذلك ، ذهبوا إلى حد أنهم ادعوا أنني قدمت في BlackHat عملي الذي أنجزته لهذه الوكالة المكونة من ثلاثة أحرف. أدى هذا المنشور إلى بعض المكالمات الهاتفية المثيرة للاهتمام للغاية من صاحب العمل السابق.
لحسن الحظ ، لدينا أشخاص يردون على مكالماتي الهاتفية ، لذلك صرخوا عليهم بشكل أساسي ، وليس علي ، ولكن كان لا يزال عليّ أن أطمئن الناس ، وفي النهاية ، تمكنت من إقناع صاحب العمل السابق بأن الناس في بعض الأحيان على الإنترنت ، أيضا ، خاطئة.
لذلك ، لكي أكون واضحًا جدًا ، سأشرح أن محادثة اليوم ليست حول أي عمل قمت به من قبل لأصحاب العمل السابقين ، ولكن حول ما أقوم به لصاحب العمل الحالي. أنا أعمل كمحلل نقاط ضعف بدوام كامل لـ Tactical Network Solutions ، كما أقوم بتدريس دورات عمليات الأجهزة المضمنة وأعمل أحيانًا في اختراق الأجهزة اللاسلكية.
اليوم سأتحدث عن أمن كاميرات المراقبة ، أو بالأحرى ، عدم وجود هذا الأمن. في بداية الماضي ، 2011 ، بدأت دراسة قضية أمن البرامج الثابتة للكاميرات المتصلة بشبكة المراقبة ، واكتشفت العديد من الأشياء المثيرة للاهتمام.
سأضع جانباً تهديد "يوم الصفر" ، سأتحدث عنه عندما أصل إليه ، أولاً سأوضح لك كيف ، بأسلوب الهاكر الحقيقي في هوليوود ، يمكنني الاستفادة من نقاط الضعف التي اكتشفتها.
لذلك ، عندما بدأت بدراسة كاميرات المراقبة ، ويجب أن أقول أنني درست الكثير من الأجهزة المدمجة ، ولكن ليس الكاميرات ، أردت أن أبدأ بشيء بسيط ، يضمن لي بالتأكيد النصر. اخترت D-Link لأنهم لم يخيبوا آمالهم.

لقد اخترت DCS-7410 ، بسعر حوالي 900 دولار ، وهي واحدة من أغلى كاميرات الطقس الخارجية D-Link ، تعمل في وضعي النهار والليل. مثل الكاميرات الأخرى ، التي سنتحدث عنها اليوم ، لها واجهة إدارية وتدعم الوصول إلى دفق الفيديو عبر الإنترنت إلى خادم ويب ، ويتم تشغيلها أيضًا من خلال شبكة (PoE). هذا يجعلها هدفًا جذابًا جدًا للمهاجم.
على وجه التحديد ، تستخدم هذه الكاميرا Lighttpd II ، وهو خادم ويب مفتوح المصدر لا يستخدم غالبًا مع الأجهزة المدمجة. قام المطورون بإنشاء تكوين وقواعد سليمة تقيد الوصول إلى ما يمكن الوصول إليه من خلال خادم الويب.
في الشريحة التالية ، سترى أنه إذا كنت تريد الحصول على شيء ما في الدليل الإداري cgi / admin ، فأنت بحاجة إلى حقوق المسؤول. إذا كنت ترغب في الحصول على شيء ما في دليل الفيديو ، يمكنك أن تكون أي مستخدم ، ولكن يجب أن تكون مفوضًا. لديهم إدخالات وقواعد تسجيل الدخول لكل دليل فردي في واجهة الويب ، باستثناء دليل cgi-bin.


توجد معظم نصوص cgi للكاميرا في دليل cgi المحمي. يحتوي دليل cgi-bin غير المحمي على ملف واحد فقط ، rtpd.cgi ، وهو عبارة عن نص برمجي لـ bash يستخدم لبدء وإيقاف بروتوكول نقل كاميرا RTP في الوقت الفعلي.

ومع ذلك ، فإن نص rtpd.cgi به عيب خطير. يوزع معلمات الاستعلام عن طريق استبدال جميع علامات العطف وفي السلسلة $ QUERY_STRING بمسافات ، ثم يحصل على النتيجة باستخدام دالة Eval:

لذا إذا كنت ترغب فقط في إيقاف الكاميرا ، فما عليك سوى إرسال طلب: rtpd.cgi؟ Action = stop. عند استخدامه على النحو المنشود ، سيؤدي طلب HTTP التالي إلى تغيير الاسم؟ الإجراء ، الذي سيتم تعيين قيمته على موضع "البدء":
$ wget http://192.168.1.101/cgi-bin/rtpd.cgi?action=start
ولكن نظرًا لأنه يتم تنفيذ البيانات الموجودة في $ query_string بطريقة عمياء بواسطة طريقة التقييم ، يمكن للمهاجم تنفيذ أي أمر ببساطة عن طريق تحديده كجزء من معلمات http GET:
$ wget http://192.168.1.101/cgi-bin/rtpd.cgi?reboot
وبالتالي ، سيتمكن الهاكر من إعادة تشغيل الكاميرا. كان من الصعب بالنسبة لي في الواقع تصنيف هذه الثغرة الأمنية ، لأنها ليست مجرد إدخال أوامر ، نحن لا ندخل أي شيء ، ولكن ببساطة نسمح بتنفيذ البرنامج بمعلمات أخرى. دعوت هذه الثغرة "Ron Burgundy" ، لأنها ستفعل ما تقوم بإدخاله حرفيا في سلسلة الاستعلام.

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

الآن ليس لديك حق الوصول إلى الجذر فقط ، لأنه بعد تلقي كلمة المرور ، تصبح أيضًا مشرفًا ، حتى تتمكن من القيام بأي شيء باستخدام الكاميرا ومقاطع الفيديو.
كما اتضح ، فإن D-link ، مثل العديد من الشركات المصنعة ، تحب حقًا إعادة استخدام التعليمات البرمجية عن طريق تثبيت نفس البرامج الثابتة ، وهذا هو الحال في العديد من منتجاتها. ولكن هذا لا يؤثر فقط على منتجات D-link ، لأنه يتم استخدام ممارسة مماثلة بواسطة Trendnet وبعض الشركات المصنعة الأخرى "غير التجارية" لمثل هذه الأجهزة. إن إعادة استخدام الكود منتشر الآن على نطاق واسع ، سواء بين الشركات المصنعة لنفس العلامة التجارية وبين مختلف العلامات التجارية. توجد هذه الثغرة الأمنية في البرامج الثابتة للعديد من طرازات الكاميرات التي تتم فهرستها على مورد مجموعات الثغرات في جهاز الكمبيوتر Shodan Dork.

قد تبدو هذه الثغرة مألوفة لدى بعض الأشخاص ، وربما يكون هذا لأنه بعد خطابي حول هذا الموضوع ، قام Core Security بتعيين مؤشر الثغرة CVE-2013-1599 لهذه المنتجات ، مشيرًا إلى أنه موجود فقط في أجهزة D-link ، دون ذكر أي من جهة تصنيع أخرى تستخدم نفس البرامج الثابتة في أجهزتهم. حتى إذا قام أحد الشركات المصنعة بتصحيح هذا الخطأ في إصدار البرامج الثابتة الجديد ، فستظل معظم الأجهزة عرضة لثلاث سنوات أخرى ، لأنه عادة لا يقوم أحد بتحديث البرامج الثابتة في الوقت المحدد ، والبعض الآخر لا يعرف ما هو. كما قلت ، تعد منتجات D-link واحدة من أكثر الأهداف المعقولة للهجوم ، لذلك دعونا نلقي نظرة على الكاميرات من الشركات المصنعة الأكثر شهرة ، مثل Cisco مع طراز PVC 2300. هذه كاميرا IP من فئة الأعمال متوسطة المدى بقيمة 500 دولار.

كما أن لديها حاليًا خادم ويب ، وتوفر مصادقة باستخدام ملف كلمة مرور بتنسيق HTTP.

معظم الناس على دراية بهذا النظام - تقوم بتثبيت ملف كلمة مرور HTTP ، أو بتعبير أدق ، رابط إلى ملف كلمة مرور مركزي في أي دليل تريد حمايته بكلمة مرور. لذلك ، إذا نظرت إلى البرامج الثابتة ، فإن واجهة الويب لكل دليل تحتوي على ملف كلمة مرور .htpasswd ، باستثناء دليل واحد ، موجود ، على / usr / local / www / oamp.

بدلاً من ملف كلمة المرور ، احتوى على مجموعة من ملفات XML التي كانت بمثابة روابط إلى الملف الثنائي oamp.cgi. دعونا نرى ما يفعله هذا cgi. اتضح أنه ينفذ نوعًا من mini-API ، وهو منفصل تمامًا عن أي شيء آخر يتم تشغيله في واجهة الويب.

يتوقع منك أن تتم مطالبتك بإجراءات معينة ، بما في ذلك تنزيل ملف التكوين وتحديث ملف التكوين وتنزيل ملف تحديث البرنامج الثابت وتحديث البرنامج الثابت وغير ذلك الكثير. لم يكن المطورون أغبياء ، لذا قبل تنفيذ طلبك ، يتحقق oamp.cgi لمعرفة ما إذا كان لديك معرف الجلسة الصحيح الصحيح.

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

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


ثم يقومون بإجراء مكالمتين إلى وظيفة PRO_GetStr ، وليس لدي أي فكرة عما تؤثر عليه. لكنني أعلم أن المكالمة الأولى لهذه الوظيفة تعطيها خطين - OAMP واسم المستخدم L1_usr ، والمكالمة الثانية - خطان آخران ، OAMP وكلمة المرور L1_pwd.


ثم ، يتم إرجاع القيمة الأولى للمستخدم L1 ومقارنتها باسم المستخدم المستخدم ، L1_usr المحدد أثناء المصادقة ، ويتم أيضًا إرجاع القيمة الثانية للسلسلة - كلمة مرور كلمة المرور ، L1_usr ، والتي تتم مقارنتها بكلمة المرور التي أدخلها المستخدم عند تسجيل الدخول.


من المفترض أن اسم المستخدم وكلمة المرور L1 ، بغض النظر عن القيم التي يتخذونها ، يوفران تسجيل الدخول الصحيح لواجهة OAMP. المكان الآخر الوحيد الذي يمكن أن أجده في البرنامج الثابت ، والذي يرتبط حقًا باسم المستخدم وكلمة المرور للمستخدم ، هو في ملف التكوين.

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


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

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

لذلك ، باستخدام سلسلتين من Python ، يمكننا بسهولة فك تشفير ملف التكوين وتحويله إلى نص عادي ، مما يمنحنا خيارات تسجيل الدخول تحت تسجيل دخول المسؤول.

بعد السيطرة على الكاميرا ، يمكننا رؤية غرفة الخادم. تكمن المشكلة في أن عرض غرف الخادم يلتقط أول 10 ثوانٍ ، ولكنه يصبح مهمة مملة إلى حد ما.

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

تقوم وظيفة system2 ببساطة بإنشاء أمر من سلسلة التنسيق وعنوان url قبل استدعاء وظيفة نظام libc ، والتي تسمح للمهاجمين بإدخال أوامر shell عشوائية من خلال معلمة url. سيتم تنفيذ أمر المهاجم بحقوق المستخدم الفائق ، وبما أن التحقق يتم بواسطة قيمة عنوان url ، فمن السهل جدًا تجاوزه باستخدام البرنامج النصي التالي:
$ wget --header=”sessionID: 57592414” http://192.168.1.101/oamp/System.xml?action=loadFirmware&url=https://127.0.0.1:6 5534/;reboot;
بعد ذلك ، يتم إعادة تشغيل الكمبيوتر الموجود على عنوان URL هذا ويمكنك تشغيل أي أمر تريده.

تم اختبار هذه الثغرة الأمنية على جميع إصدارات البرامج الثابتة لنموذجين من كاميرات المراقبة من Cisco - PVC-2300 و WVC-2300 ، وهي كاميرا مشابهة مزودة بهوائيين. في وقت كتابة هذه السطور ، عرضت شودان أكثر من 500 كاميرا IP عامة ومن المحتمل أن تكون ضعيفة تنتمي إلى الفنادق وغرف الخوادم والشركات الهندسية التي تقوم بتطوير معدات لمحطة الفضاء الدولية.
لذا ، لا تحمي D-link و Cisco كاميرات المراقبة بشكل صحيح ، على الرغم من أنك تعلم أن هذه الكاميرات ليست منتجها الأساسي. لذلك ، دعونا نلقي نظرة على العلامات التجارية المتخصصة على وجه التحديد في تصميم وتصنيع كاميرات المراقبة. اخترت IQ Invision ، التي تنتج كاميرات باهظة الثمن عالية الدقة ، مثل IQ 832n ، بتكلفة أكثر من 1000 دولار للقطعة الواحدة ، وهي ليست رخيصة على الإطلاق.

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

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

يحتوي على مجموعة كاملة من إعدادات الكاميرا ، مثل إعدادات التركيز ، والتي ليست مثيرة للاهتمام مثل أسماء المستخدمين وكلمات المرور. الأكثر إثارة للاهتمام هو الرمز وراء صفحة oidtable.cgi هذه. إذا قمت بتفكيك هذا الثنائي ، يمكنك أن ترى أن الصفحة تقبل معلمة واحدة فقط ، grep ، والتي تستخدم لتصفية النتائج التي يتم إرجاعها إلى صفحة oidtable.cgi.

بعد التحقق من أن قيمة المعلمة المقدمة أقل من 32 حرفًا ، يضع oidtable.cgi هذه القيمة في سطر الأوامر ويمررها إلى popen:


ما رأيته جعلني أصور "الوجه" ودفعني إلى حقن بعض الفرق.

ترى أنه هنا ، تمامًا كما هو الحال في حالة D-Link ، يمكنني تنفيذ الأمر PS وإعادة الإخراج إلى المتصفح الخاص بي. وبالتالي ، بدون المصادقة ، يمكنني بسهولة إدخال أوامر shell عشوائية سيتم تنفيذها كجذر. تُظهر قوائم العمليات أن Netcat مثبت بالفعل في هذه الكاميرات مع القدرة على إدخال شرطات شرطة ، لذلك أنا متأكد من أن معظم الأشخاص هنا يمكنهم الخروج بأوامر أكثر إثارة للاهتمام للتنفيذ من قائمة العمليات. ومع ذلك ، كان هدفي الرئيسي هو الدخول إلى لوحة المشرف ، وقد اكتشفت كيفية القيام بذلك.
16:30 دقيقة
مؤتمر BLACK HAT USA. كيف يستخدم الهاكر هوليوود كاميرات المراقبة. الجزء 2شكرا لك على البقاء معنا. هل تحب مقالاتنا؟ هل تريد رؤية مواد أكثر إثارة للاهتمام؟ ادعمنا عن طريق تقديم طلب أو التوصية به لأصدقائك ،
خصم 30 ٪ لمستخدمي Habr على نظير فريد من خوادم مستوى الدخول التي اخترعناها لك: الحقيقة الكاملة حول VPS (KVM) E5-2650 v4 (6 نوى) 10GB DDR4 240GB SSD 1Gbps من 20 $ أو كيفية تقسيم الخادم؟ (تتوفر الخيارات مع RAID1 و RAID10 ، حتى 24 مركزًا وحتى 40 جيجابايت DDR4).
VPS (KVM) E5-2650 v4 (6 نوى) 10GB DDR4 240GB SSD 1Gbps حتى ديسمبر مجانًا عند الدفع لمدة ستة أشهر ، يمكنك الطلب
هنا .
ديل R730xd أرخص مرتين؟ فقط لدينا
2 x Intel Dodeca-Core Xeon E5-2650v4 128GB DDR4 6x480GB SSD 1Gbps 100 TV من 249 دولارًا في هولندا والولايات المتحدة! اقرأ عن
كيفية بناء مبنى البنية التحتية الطبقة باستخدام خوادم Dell R730xd E5-2650 v4 بتكلفة 9000 يورو مقابل سنت واحد؟