DNS rebinding في 2k19 ، أو كيفية العرق حقا من خلال زيارة موقع الاباحية


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


ما هو إعادة DNS؟


النظر في المخطط التالي:



لدينا كمبيوتر ضحية مع IP 192.168.0.2 على الشبكة المحلية ، وكذلك لديه جهاز توجيه مع عنوان IP 192.168.0.1. إن هدف المهاجم الذي يقوم بإدارة الخادم باستخدام العنوان 13.37.13.37 واسم المجال hacker.com (أيضًا ، يدور خادم DNS الخاص بنا الذي يحتوي على معلومات حول المجال على ip-shnik) في الوصول إلى جهاز التوجيه على الشبكة المحلية.


لاستخدام تقنية إعادة ربط DNS ، نحتاج إلى جذب الضحية لموقعنا الضار. لنفترض أننا نجحنا.


دعونا الآن ندرس بالتفصيل كيف يعمل الهجوم.


بادئ ذي بدء ، يصل المستعرض إلى خوادم DNS بطلب A- سجل:



تؤدي سلسلة خوادم DNS إلى الخادم الخاص بنا ، والذي بدوره يقدم استجابة قياسية تحتوي على عنوان IP الحقيقي للموقع الضار ، ويشير أيضًا إلى TTL التي نحتاجها ، في هذه الحالة 59.



بعد ذلك ، يقوم المستعرض بعمل طلب HTTP قياسي لـ IP المستلم.



في المرحلة التالية ، يستجيب الخادم بصفحة HTML مع وصول كود جافا سكريبت إلى النطاق الخاص بنا.



الآن ، إلى أن تنتهي صلاحية TTL ويكون المستخدم على الموقع ، سيتم تنفيذ جافا سكريبت الوارد أعلاه. بمجرد انتهاء TTL ، سيطلب المستعرض مرة أخرى الحصول على سجل A.



في هذا الوقت ، يستمر تشغيل javascript الخاص بنا ، وسوف يستجيب خادم DNS الذي نديره بسجل A بعنوان IP من الشبكة المحلية ، حيث يريد المهاجم الوصول إليه.



نظرًا لأن النطاق والمنفذ والبروتوكول لم يطرأ عليه أي تغيير ، فإن SOP لم تنتهك ، ونتيجة لذلك ، يصل المستعرض إلى مجال pew.hacker.com ، ومع ذلك ، سوف يطرق بالفعل جهاز التوجيه المطلوب وغير القابل للتحقيق.



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




لذلك ، دعونا لخص ما ورد أعلاه:


  • يزور المستخدم الموقع ، ويتلقى عنوان IP حقيقيًا و TTL قصيرًا
  • أثناء وجوده في الموقع ، يقوم المتصفح بإجراء مكالمات إلى نفس المجال الذي يوجد به المستخدم. بمجرد انتهاء صلاحية ذاكرة التخزين المؤقت ، يطلب المستعرض مرة أخرى IP المجال.
  • علاوة على ذلك ، يصدر خادم DNS الخاص بنا بدلاً من العنوان الحقيقي ، عنوان IP للخدمة الداخلية (في حالتنا ، جهاز التوجيه)
  • بعد أن يمر الطلب عبر المجال إلى جهاز التوجيه ، ويتم إرسال النتيجة إلينا بواسطة javascript التي تم تحميلها مسبقًا من قبل المستخدم مقدمًا.

لقد حظينا بها! قد يكون لدى الكثيرين سؤال معقول: "ماذا في ذلك؟" ، لأنك تحتاج إلى معرفة عناوين IP الداخلية للخدمات ، واحتفظ بها المستخدم لفترة معينة ، إلخ.


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


ولكن هذا كل شيء من الناحية النظرية ، ولكن ماذا في الممارسة؟ لقد اخترنا المجالات الأربعة الأكثر صلة في عام 2019 ، حيث كانت هناك حوادث متعلقة بهجوم إعادة ربط DNS ، وهذه هي:


  • إنترنت الأشياء
  • محافظ تشفير
  • تطبيقات سطح المكتب
  • السحب

دعونا ننظر في كل موضوع بالترتيب ومعرفة ما إذا كان كل شيء غير مؤذية حقا؟


قام المحفل


جوجل الرئيسية



جوجل هوم هو مساعد ذكي من جوجل. يحتوي هذا الجهاز (أو كان في الماضي) على API لا تتطلب أي مصادقة للتحكم في الجهاز. يوفر عددًا من الميزات ، مثل:


  • لعب المحتوى
  • مسح
  • اعادة التشغيل
  • الاتصال بشبكات WIFI ، إلخ

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


Sonos واي فاي المتكلمين



ترفع هذه الأعمدة من Sonos خادم ويب على الشبكة المحلية UPnP ، مما يتيح الوصول إلى عدد من الصفحات المهمة:


  • 192.168.1.76:1400/support/review - يبصق إخراج بعض أوامر UNIX
  • 192.168.1.76:1400/tools - يسمح لك بتشغيل بعض أوامر UNIX

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


راديو ترموستات CT50



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


  • وضع المناخ
  • درجة الحرارة
  • وضع الإضاءة الخلفية والإعدادات الأخرى

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


تلفزيون روكو



لا تزال أجهزة تلفزيون Roku تعاني من نفس المشكلة - واجهة برمجة تطبيقات بدون مصادقة.


تتيح لك واجهة برمجة التطبيقات:


  • تشغيل مختلف التطبيقات
  • لعب المحتوى
  • قم بإجراء استعلامات البحث على النظام ، إلخ.

في هذه الحالة ، فإن الحد الأقصى الذي يهدد المستخدم هو تسرب البيانات الحساسة ، وهو أمر غير سارة أيضًا.


أي جهاز توجيه WIFI



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


ملخص إنترنت الأشياء


نسلط الضوء على بعض الميزات التي يوفرها إعادة ربط DNS عند العمل مع إنترنت الأشياء:


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

محافظ تشفير


غيت


الآن دعنا نتحدث عن محافظ العملات المشفرة. الحالة الأولى التي تم فحصها هي عميل لمحافظ etherum تسمى Geth. يوجد هنا صندوق Pandora في خدمة JSON-RPC. لتبدأ ، دعونا معرفة ما هو عليه. JSON-RPC هو بروتوكول استدعاء إجراء عن بُعد بتنسيق JSON. يبدو كل شيء مثل هذا:



يقوم معظم العملاء بتشغيل هذه الخدمة على المضيف المحلي: 8545 ، ويوفر بدوره مجموعة من الوظائف المثيرة للاهتمام ، مثل eth_sendTransaction وما إلى ذلك.


الآن مثال على كيفية الحصول على رصيده وعنوان محفظته دون علم المستخدم واستخدام هجوم إعادة ربط DNS:



محفظة EOSIO keosd


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



ملخص محافظ التشفير:


  • يمكن للمهاجم سرقة أموال المستخدم
  • يمكن للمهاجم تعديل إعدادات المستخدم المختلفة
  • القدرة على إلغاء تحديد هوية المستخدم

تطبيقات سطح المكتب


عميل النقل


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


هنا تكمن المشكلة في نفس JSON-RPC ، التي درسناها أعلى قليلاً. في هذه الحالة ، يسمح لك بتغيير إعدادات المستخدم ، على سبيل المثال ، تغيير المجلد لتنزيل الملفات:



من ناحية ، يبدو أنه ليس شيئًا خطيرًا ، ولكن إذا حددت مشاركة smb التي يتحكم فيها المهاجم بدلاً من المجلد (في حالة استخدام العميل لعميل Windows) ، يمكنك اعتراض تجزئة المستخدم ، والتي يمكن استخدامها في المستقبل.


عميل الويب uTorrent


يحتوي هذا الرفيق في ترسانته على نفس خدمة JSON-RPC التي تتيح لك تغيير ملفات تكوين المستخدم ، وكذلك تنزيل الملفات.


مطلوب المصادقة في هذه الحالة ، لكن بيانات الاعتماد متوفرة من http://localhost:19575/users.conf . كيف يمكن استخدام هذا؟


أولاً ، قم بتقديم الطلب التالي:



بعد تلقي الرمز المميز ، نقوم بتغيير مجلد التنزيل إلى المجلد حيث توجد البرامج التي تعمل عند بدء تشغيل النظام:



وأخيراً ، نعطي الأمر لتنزيل الحمولة الضرورية:



نتيجة لذلك ، سيتم evil.exe بعد إعادة التشغيل التالية.


Minikube


Minikube هي أداة مساعدة لسطر الأوامر لتكوين وتشغيل كتلة Kubernetes أحادية الوضع في جهاز ظاهري على الكمبيوتر المحلي.


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


بادئ ذي بدء ، تحتاج إلى الحصول على رمز csrf.



بعد ذلك ، تحتاج إلى إنشاء حاوية ، ولهذا أرسل الطلب التالي:



دعونا نرى ما يفعله. في ذلك ، نشير إلى أنه عند بدء تشغيل الحاوية ، نحتاج إلى إعادة توجيه shell-shell ، وكذلك تحميل مجلد Users من النظام الرئيسي:



روبي أون ريلز


هناك جوهرة لإطار Ruby on Rails الذي يسمح لك بتنفيذ كود Ruby مباشرة في المتصفح.



دعنا نحاول معرفة ما نحتاج إليه لهذا؟


نحتاج أولاً إلى الذهاب إلى صفحة غير موجودة:



بعد ذلك ، نحاول الوصول إلى وحدة التحكم من خلال المتصفح:



حسنًا ، أخيرًا ، نشكل طلبًا لبدء تشغيل تطبيق الحاسبة (في هذا المثال ، متجه نظام التشغيل Mac OS X):



عاصفة ثلجية تطبيق سطح المكتب


ليس فقط المطورين والمستخدمين العاديين عرضة لهجوم مثل إعادة ربط DNS ، ولكن اللاعبين أيضًا. هنا نواجه مرة أخرى مشكلة في خدمة JSON-RPC في هذه الحالة على المضيف المحلي على المنفذ 1120. تتيح الخدمة إمكانية إجراء التحديثات وتغيير الإعدادات وخيارات الخدمة المختلفة الأخرى.


في هذه الحالة ، يتم دعم المصادقة ، لكن تمريرها عن طريق تقديم طلبات من المضيف المحلي ليس بالأمر الصعب:



نتيجة لذلك ، يمكنك تحقيق شيء مماثل:



مزيد من التفاصيل يمكن العثور عليها هنا .


ملخص تطبيق سطح المكتب:


  • يمكن للمهاجم الحصول على RCE على النظام الرئيسي (كما لا تنسى VM Escape)
  • يمكن للمهاجم الوصول إلى البيانات الحساسة ، إلخ.

السحب


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


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


نتيجة لذلك ، نظرًا لأننا سنرسل طلبات من وكيل ، يمكننا القيام بالكثير من الأشياء المضحكة. على سبيل المثال:


  • مسح الشبكة الداخلية
  • تسجيل الدخول إلى الخدمات الداخلية (نظريا)
  • سرقة بيانات التفويض من خدمات أخرى ، إلخ.

دعنا نذهب مباشرة إلى الأمازون. يحتوي AWS EC2 على ميزات مثل خدمة بيانات مثيل مثيل. يسمح لأي كيان EC2 باستخدام واجهة برمجة تطبيقات REST الموجودة في 169.254.169.254 ، والتي تكشف عن معلومات حول المثيل.


على سبيل المثال ، فيما يلي قائمة مختصرة بخدمات مماثلة لمختلف السحب:



الآن دعونا نلقي نظرة على الحالة التي ننغمس فيها في AWS.


أولاً ، دع الروبوت يقدم طلبًا إلى واجهة برمجة التطبيقات:



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



بعد ذلك ، يمكننا سحب اسم العقدة التي سنواصل العمل بها:



بعد ذلك ، سنقدم النداء التالي بالاسم المعروف بالفعل - و bingo!




تلقينا العديد من معلومات المستخدم ، مثل AccessKeyId و SecretAccessKey و Token ، إلخ.


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



النتيجة الكلية:


دعونا نسلط الضوء على نقاط الضعف الشائعة التي لاحظناها عند استخدام هجوم إعادة ربط DNS:


  • API دون المصادقة
  • الخدمات المحلية دون المصادقة
  • تجاهل معلمة المضيف لطلب
  • باستخدام http بدلاً من https

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


المصادر:


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


All Articles