تعليمتقنية

جمع المعلومات باستخدام أداة recon-ng الجزء الأول


درس اليوم حول منهجية جمع المعلومات والاستطلاع باستخدام الأداة recon-ng ، فما هي هذه الأداة؟

تعريف الأداة recon-ng

هي أداة وظيفتها جمع المعلومات من العديد من المصادر الموجودة والمتاحة على الإنترنت.

أي أنها تقوم بما يسمى ب Open Source Intelligence باختصار OSINT أو جمع المعلومات الاستخباراتية التي تحدثنا عنها سابقاً في هذه الوحدة.

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

هذه الأداة مبرمجة بالبايثون ومفتوحة المصدر.

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

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

الأداة مقسمة إلى Modules

ال modules هي بعض الوظائف التي يتم عبرها عمل أمور معينة، فهناك modules خاصة بال reconning وعددهم 77 module.

هناك modules خاصة بعمل ب discovery وعددهم 2، module لاستغلال الثغرات عددهم 2، modules لإصدار التقارير عددهم 8، و modules لاستيراد البيانات عددهم 2.

غالباً سنتحدث عن recon modules و reporting modules لأن هذه الأداة مخصصة أساساً لعمل الاستطلاع.

بعكس metasploit و social net collect والتي هي مخصصة للهندسة الاجتماعية. وأداة recon  شبيهة بال metasploit.

وظائف الأداة

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

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

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

جدول domains

وفيه سيخزن البيانات الخاصة بالنطاقات.

جدول Hosts

تخزن به البيانات الخاصة بالنطاقات الفرعية.

جدول Locations

بخزن فيه معلومات خاصة بالبيانات الجغرافية وهكذا.

والعديد من الجداول الأخرى. سنتعامل مع عدة جداول مختلفة.

كيفية التعامل مع الأداة من خلال Kali Linux

أقوم بتشغيل توزيعة Kali Linux وهذه الأداة موجودة عليها، من Application ثم information gathering ثم recon-ng أو من خلال سطر الأوامر بأن اكتب: recon-ng

إن ظهرت أخطاء باللون الأحمر، فيقصد بها أن هناك خطأ ب APIs بما أن وظيفة الأداة جمع معلومات من مصادر مختلفة.

بعض هذه المواقع والخدمات تحتاج API، بحيث أننا إن تعاملنا مع هذه المواقع بأن أدخل الموقع وأسجل فيه.

ومن ثم أبحث عما أريد ويعطينا نتائج وآخذ النتائج بشكل يدوي وأضمنها داخل التقرير الخاص.

لكن معظم هذه المواقع تقوم بتوفير API أو Application Programming Interface وهي بيئة يمكن من خلالها الحصول على بعض البيانات لبرمجة أدوات تتعامل مع هذه الخدمة من الأداة نفسها.

فإن أردت أن تقوم recon-ng بأن تتعمل مع هذه الأداة فعلي بالدخول إلى العديد من الخدمات المختلفة على حساب عليها وآخذ API key .

وطبعاً هذا حسب طبيعة إنشاء API  على المواقع والخدمات ومن ثم إضافتها على recon-ng .

لن أتطرق لكيفية إنشاء API لأن كل موقع له طريقة وخدمة مختلفة، بل سأتحدث عن طريقة إضافة key على recon-ng وعلى كيفية التعامل مع المفاتيح وما هي المفاتيح المتاحة وما هي قيمها.

Help

وظيفته إظهار الجميع الأوامر التي يمكن أن نستخدمها داخل recon-ng ومنها نتعرف على الآتي:

Add

وظيفته إضافة record على قاعدة البيانات، فقبل قليل تحدثت عن schema وهي تحوي جداول الدومين والهوست وغيرها.

لإضافة سجل أو حقل على جدول من الجداول الموجودة في schema سأتعامل مع ADD ثم إسم الجدول ثم أنقر Enter سيقوم بسؤال عما تريد إضافتها وقيمها.

Back

تعني العودة للخلف.

Delete

لحذف السجل record.

Exit

للخروج العمل ككل.

Keys

وظيفتها إظهار المفاتيح وإضافة وحذف المفاتيح ويمكن ضبط المفاتيح.

Load و use

وظيفتهما أن لدي module معين يقوم بالاستطلاع، إن أردنا التعامل مع هذا ال module لتنفيذه، يمكن استخدام أحدهما، ومن ثم نتبعه باسم ال module.

Search

للبحث عن module معين في  recon-ng.

Set

إذا أردنا تحديد خصائص أو خيارات ل module معين، والتعديل عليها.

Show

خاصة بال framework والمكان الذي أتواجد  فيه.

وهناك أوامر أخرى غيرها.

الخيارات

بكتابة show  options، سيظهر لي بعض الخيارات وبحسب أين أتواجد، فأنا لست داخل module معين، وإنما داخل framework.

ستظهر لي خيارات خاصة بال framework وهي recon-ng بشكل كلي:

Name server

وقيمته 8.8.8.8 هذا IP Address  لل DNS الخاص بجوجول.

والمقصود به هو أن أي طلب سيتم تنفيذه من الأداة إلى أي موقع أو خدمة مختلفة، إذا احتاج لعمل name resolution سيتعامل مع DNS Server الخاص بجوجل.

ويمكنني التعديل عليه بالشكل التالي: set name server 8.8.4.4 فتتغير القيمة.

للتأكد أكتب: show Options

ولأعيد له قيمته الأصلية أكرر الخطوات.

Proxy

أريد للأداة recon-ng أن تخرج proxy في أي دولة أخرى لأخفي هويتي أو أتجاوز أمور معينة ممنوعة عني.

Threads

هي عدد الطلبات التي ستنفذها الأداة مع بعضها.

User agent

كي أشغل الأداة كمتصفح مثل الفاير فوكس.

Clear

لتنظيف الشاشة.

تطبيق على أمر keys

لدي أمر keys سأنفذه، ويعطيني معلومة أنها تعمل management لل API Keys ويمكنني أن أعرف أسماء المفاتيح مع قيمها بكتابة الأمر Keys list.

لإضافة keys أكتب: keys add وأضغط tab فيظهر جميع المفاتيح التي يمكنني إضافتها.

فإن أردت أن أضيف مثلاً مفتاح انستغرام أكتب: keys add Instagram api ومن ثم أكتب قيمة الانستغرام التي أريدها، وأضغط Enter.

إن أردت حذف مفتاح ما أكتب: keys delete Instagram api  وينحذف المفتاح بالكامل مع قيمته.

تطبيق على show

إن كتبت show وحدها فسيخبرني أن show  يتبعها أحد هذه الأمور: إما banner أو contacts أو companies ونحوها.

فأكتب مثلاً: show banner يظهر لي banner الأداة الذي ظهر في الشاشة الرئيسية. ويمكنك التعديل عليه.

Show schema تظهر لي تصميم قاعدة البيانات الخاصة بأداة recon-ng، فلدي جدول domains فيه عمودين وجدول الشركة ووصفها، وجداول عديدة.

فإن أردت أحد هذه الجداول وليكن جدول domains أكتب: show domains، فلو أضفت domain معين وأريد أن أراه، يمكنني إعطاء هذا الأمر.

Show modules يظهر لي جميع ال modules بكل تصنيفاتها، فهناك مثلاً تصنيف discovery فيه إثنان modules، وإن كتبت: show modules recon يظهر لي فقط ال recon.

Show reporting يظهر فقط modules  التقارير وهكذا.

تطبيق على use و Load

لدي  module معين وأريد أن أتعامل معه، فإما عن طريق load أو عن طريق use. سأختار أحد الـ modules  وأكتبه في سطر الأوامر: use recon/domains-hosts/netcraft

أو أستعمل الأمر load : load recon/domains-hosts/netcraft، نفس الشيء.

تطبيق back

فإن أردت أن أعود للوراء أكتب: back فقط.

تطبيق search

سأبحث عن module معين أكتب: search google  فيعطيني اثنان modules تحوي كلمة Google .

لأبحث عن modules تحوي كلمة shodan مثلاً: search shodan فيعطيني أنه يوجد أربعة modules وأختار ما أريد وأتعامل معه.

الأمر workspaces

لنفهم workspaces كيف تعمل لنأخذ المثال التالي:

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

أنت تريد ان تعمل على كل هذه المشاريع، وتتعامل مع أداة recon-ng لتجمع معلومات حول كل جهة من هذه الجهات.

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

ولن تستطيع تمييز البيانات بين المشاريع، وبالتالي مطوري recon-ng قاموا بعمل workspaces من أجل ذلك.

وأي مشروع ستعمل عليه ستنشئ له مكان عمل workspace بحيث أن بياناته تتخزن داخل workspace الخاصة به لتعزلها عن بعضها.

تطبيق workspace

ونتعامل مع workspaces بالشكل التالي: workspaces وأضغط tab  مرتين. فتظهر لي أني أستطيع إما إضافة أو حذف workspace أو List أو select.

أكتب مثلاً: workspace list وأضغط enter فأجد أن لدي default إفتراضية.

أريد أن أضيف جديد:  workspace add Microsoft بافتراض أن مشروعي يدعى Microsoft.

فإن عدت إلى الأمر List أجد أنه أصبح لدي مكاني عمل default و Microsoft . وهكذا.

للانتقال من مكان عمل إلى آخر أستعمل الأمر select  وإن أردت حذفه أستعمل الأمر delete.

سأنشئ مكاني عمل: workspace add A ، workspace add B

أصبح لدي اثنتان : workspace list فتظهر ثلاث  وهي default و A و B.

فإن كتبت: add domains aa.com

Show domains

فسيظهر أن لدي دومين aa.com موجود في b وهو الذي أضفته، لكن إن ظهر لي إسم module آخر غير ال user define معناه أن هناك module نفذته وأضاف الdomain.

إن كتبت: workspace select A أنتقل إلى A، وإن كتبت: show domains فسيقول لي أنه لا يوجد بيانات.

فهذا يعني أن البيانات في ال workspace ، لا يراهاworkspace  آخر فهما معزولان عن بعض وهذا هو الهدف من workspace.

هنا نكون انتهينا من درس اليوم عن recon-ng وأتمنى أن يكون مفيداً وواضحاً لكم.

محمد خريشة

 

مقالات ذات صلة

زر الذهاب إلى الأعلى