كيفية اكتشاف قواعد بيانات MongoDB و Elasticsearch المفتوحة

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


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



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


إخلاء المسؤولية المطلوب: لا تتناول هذه المقالة ولا تثير القضايا القانونية والأخلاقية المتعلقة بالبحث وتحديد قواعد البيانات المتاحة للجمهور. يجب اعتبار جميع المعلومات الواردة أدناه تعليمية فقط.

لن "أكتشف أمريكا" إذا قلت إن الأدوات الرئيسية للبحث في قواعد البيانات المفتوحة هي محركات البحث المتخصصة Shodan.io و BinaryEdge.io و Censys.io. سأشير فقط إلى أن هذه ليست خدمات مجانية ، وعليك أن تدفع مقابل الوصول إلى نتائج البحث الكاملة (في حالة Shodan تبلغ 59 دولارًا / شهرًا ، و BinaryEdge - 50 دولارًا / شهرًا ، و Censys - 99 دولارًا / الشهر للحد الأدنى من الحزم الأساسية). الإصدارات المجانية من محركات البحث تحد بشدة من عدد النتائج في الإصدار.


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


دعنا نلقي نظرة على مثال محرك بحث Shodan: كيفية العثور على قواعد بيانات MongoDB و Elasticsearch المفتوحة.


الطلب الأبسط والأكثر وضوحًا الذي يطرح محاولة هو "MongoDB":



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


دعنا نعقد الاستعلام قليلاً باستخدام عوامل تصفية البحث "الكل:" معلومات خادم mongodb "all:" metrics "":



النتائج تبدو أفضل بكثير. كانت جميع قواعد البيانات الموجودة متاحة بحرية في الوقت الذي فهرستها محرك البحث. من المحتمل جدًا أننا سنتمكن من الاتصال بعناوين IP المحددة باستخدام أي مدير لـ MongoDB (على سبيل المثال ، مدير NoSQL لـ MongoDB أو Studio 3T لـ MongoDB).


للعثور على مثيلات MongoDB غير المصادقة التي تعمل أيضًا كخوادم لتخزين الملفات ، قد تحاول استخدام الاستعلام "port: 27017 - all:" جزئيًا "all:" fs.files ""


يمكن للمرء أن قصر البحث على أي بلد. دعنا نقول للبحث عن MongoDB's المفتوحة في الصين: (الاستعلام "الكل:" mongodb server information "all:" metrics "country:" cn ""):



للبحث عن قواعد البيانات المفتوحة Elasticsearch ، من المريح استخدام استعلام "port:" 9200 "all:" مؤشرات مرنة "":



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


فيما يلي قائمة صغيرة من الروابط التي قد تكون مفيدة:


  • cli.shodan.io هي وحدة التحكم Shodan الرسمية.
  • github.com/woj-ciech/LeakLooker هو برنامج بيثون للبحث في قواعد البيانات المفتوحة (MongoDB ، CouchDB ، Elasticsearch ، إلخ).
  • lampyre.io هي واجهة رسومية قوية للغاية (ولا تزال عربات التي تجرها الدواب!) للبحث وتصور ما تجده. لديها قوالب مدمجة للبحث MongoDB وأكثر من ذلك بكثير. في الاختبار التجريبي مع كل العواقب التي تنطوي على ...

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


All Articles