passive recon
ما هو Passive Recon؟
الPassive Recon هو عملية جمع المعلومات عن هدف معين (مثل موقع ويب أو تطبيق) دون التفاعل المباشر مع الأنظمة الخاصة به. الهدف هنا هو العثور على معلومات عامة متاحة عن هذا الهدف، مثل واجهات برمجة التطبيقات، بيانات اعتماد الدخول، معلومات النسخ، والتوثيق.
لماذا Passive Recon مهم؟
اكتشاف نقاط الضعف: يمكن أن تساعد المعلومات التي تجمعها في تحديد نقاط ضعف محتملة يمكن استغلالها في الهجمات.
جمع معلومات مفيدة: معرفة كيفية عمل واجهات برمجة التطبيقات يمكن أن توفر لك استراتيجيات لاختراقها لاحقًا.
كيفية القيام بالاستطلاع السلبي
1. جمع المعلومات باستخدام المعلومات المتاحة (OSINT):
المعلومات المفتوحة (OSINT) هي البيانات التي يمكن الوصول إليها بشكل عام، مثل الوثائق، والشهادات، ومواقع الويب. بعض أنواع المعلومات التي تبحث عنها تشمل:
نقاط نهاية واجهة برمجة التطبيقات (API endpoints).
بيانات اعتماد (مثل مفاتيح API).
معلومات النسخة (version information).
وثائق API.
2. تقنيات البحث:
إليك بعض التقنيات التي يمكنك استخدامها لجمع المعلومات:
استعلامات Google Dorking
حتى بدون استخدام تقنيات دوقينغ، قد يكون العثور على (API) كالمستخدم النهائي سهلاً مثل إجراء بحث سريع.
ومع ذلك، أحيانًا قد لا تحصل على النتائج الدقيقة التي تأملها. إذا كنت تحصل على الكثير من النتائج غير ذات الصلة، يمكنك استخدام بعض تقنيات Google Dorking لاكتشاف واجهات برمجة التطبيقات بشكل أكثر فعالية.
النتائج المتوقعة:
inurl:"/wp-json/wp/v2/users"
يجد جميع directories مستخدمي API الخاصة بـ WordPress المتاحة علنًا.
intitle:"index.of" intext:"api.txt"
يجد الملفات التي تحتوي على مفاتيح API المتاحة علنًا.
inurl:"/api/v1" intext:"index of /"
يجد API directories المثيرة للاهتمام.
ext:php inurl:"api.php?action="
يجد جميع المواقع التي تحتوي على ثغرة SQL في API (XenAPI). (تم نشر هذا الاستعلام في عام 2016، وبعد أربع سنوات، هناك حاليًا 141,000 نتيجة.)
intitle:"index of" api_key OR "api key" OR apiKey -pool
هذا واحد من استعلاماتي المفضلة. يسرد المفاتيح المحتملة المكشوفة لAPI
ما هو GitDorking؟
هو عملية البحث عن معلومات حساسة أو نقاط ضعف في البرمجيات من خلال البحث في GitHub الGitHub هو موقع يستخدمه المطورون للتعاون في مشاريع البرمجة، ويمكن أن يحتوي على معلومات قد تكون مفيدة للمهاجمين، مثل مفاتيح API وكلمات المرور.
كيفية البحث عن المعلومات على GitHub
البحث عن المعلومات الحساسة:
يمكنك البحث عن اسم المنظمة المستهدفة مع كلمات مثل "api key" أو "secret". هذا يساعدك في العثور على أي ملفات قد تحتوي على معلومات حساسة.
استخدام parameters البحث:
مثل:
filename:swagger.json
أوextension: .json
للتركيز على أنواع معينة من الملفات التي قد تحتوي على معلومات هامة.
استكشاف repository
بعد أن تجد مستودعًا (repository) يمكن أن يحتوي على معلومات مهمة، يمكنك استكشاف عدة أقسام فيه:
قسم الكود (Code):
هنا يمكنك رؤية الكود الحالي والملفات المتعلقة بالمشروع.
يمكنك استخدام اختصار Ctrl+F للبحث عن كلمات مثل "API" أو "key" أو "secret" داخل الكود.
يمكنك أيضًا رؤية التعديلات السابقة من خلال زر History الذي يعرض التغييرات التي تمت على الكود بمرور الوقت.
قسم المشاكل (Issues):
في هذا القسم، يمكن للمطورين تتبع الأخطاء والمهام والطلبات الخاصة بالميزات.
إذا كان هناك مشكلة مفتوحة، فهذا قد يعني أن هناك ثغرة لا تزال موجودة في الكود.
قسم الطلبات السحب (Pull requests):
هنا يتعاون المطورون لتعديل الكود. قد تجد تغييرات مقترحة تشمل ثغرات أو تسريبات لمعلومات حساسة لم يتم حلها بعد.
ماذا تفعل إذا لم تجد نقاط ضعف؟
إذا لم تجد أي نقاط ضعف، يمكنك استخدام GitHub لجمع معلومات عن الهدف، مثل:
لغات البرمجة المستخدمة.
معلومات عن نقاط النهاية (API endpoints).
وثائق الاستخدام التي قد تفيدك في الهجمات المستقبلية.
الأدوات:
TruffleHog: أداة تستخدم للبحث التلقائي عن الأسرار المكشوفة على GitHub. يمكنك تشغيلها للبحث عن الأسرار في مستودعات معينة.
3. استخدام محركات البحث الخاصة بالأجهزة:
Shodan: محرك بحث للعثور على الأجهزة المتصلة بالإنترنت. يمكنك البحث عن نقاط نهاية API باستخدام استعلامات مثل:
hostname:"targetname.com"
: للبحث عن نظام معين."content-type: application/json"
: للعثور على واجهات برمجة التطبيقات التي تستخدم JSON.
4. استعراض الإنترنت المؤرخ:
Wayback Machine: موقع يتيح لك رؤية التغيرات في صفحات الويب عبر الزمن. يمكن أن يساعدك في اكتشاف واجهات برمجة التطبيقات القديمة أو تلك التي كانت متاحة سابقًا ولكن لم تعد موجودة الآن.
الخاتمة
بعد الانتهاء من جمع المعلومات، يمكنك تحليلها لتحديد كيف يمكنك استغلالها لاحقًا. الهدف النهائي هو فهم كيفية عمل الواجهات البرمجية وما هي الثغرات المحتملة.
Last updated