.
وطبعاً هذا حسب طبيعة إنشاء 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 وأتمنى أن يكون مفيداً وواضحاً لكم.