سنبدأ بالتحدث عن أداتي theharvester و metagoofil التي ستمكننا من جمع معلومات من خلال المصادر التي تم شرحها في الفيديوهات السابقة ولكن بشكل آلي.
والتي ستوفر عليك الوقت والجهد والنتائج التي ستجمعها هذه الأدوات سترتبها لك بشكل جيد وتخزينها في ملفات وتقارير بامتدادات مختلفة سواء xml أو html وغيرها.
وبالتالي ستكون هذه الأدوات وفرت الجهد ورتبت البيانات وسرعت جمع المعلومات من جميع المصادر وسهلت الأمر عليك.
من الأدوات التي سنتحدث عنها تباعاً هي:
Theharvester و Multigo و Fierce و FOCA و Recon-NG و Metagoofil و Dmitry وغيرها.
ومعظمها موجودة على Kali Linux لذا سنشغل توزيعة Kali Linux ونشغل سطر الأوامر وسنقوم بالتعامل مع الأدوات بالتفصيل
Theharvester
التعامل مع هذه الاداة بالشكل التالي، أكتب: Theharvester وأنقر enter وتظهر جميع الخيارات التي يمكنني استخدامها مع هذه الأداة.
بالإضافة إلى مجموعة من الأمثلة التي يمكننا كتابة أوامر على غرارها.
هذه الأداة يمكنها القيام بعدد من الأمور: جمع البريد الإلكتروني للموظفين في الجهة الهدف، جمع أسماء الموظفين الموجودين في الجهة، جمع تغريدات وبيانات من linkedIn.
جمع نطاقات الفرعية و Virtual host عمل Brute Force على DNS وبالتالي معرفة أسماء النطاقات الفرعية غير الموجودة وغير الظاهرة في محركات البحث.
أو التي لا يمكن استرجاعها من خلال DNS بشكل مباشر وبالتالي تجمع لنا مجموعات كثيرة.
الخيار -d
أول خيار في هذه الأداة، وتعني أنه يتبعه إسم الدومين أو الشركة الهدف المراد البحث من خلالها، فإن أردنا البحث من شركة cisco فنكتب: -d ثم cisco ولو أردنا البحث عن طريق الدومين الخاص ب cisco نكتب: -d cisco.com .
لو أردت البحث عن شركة Microsoft: -d Microsoft.com
باختصار –d تتبعها إما إسم الجهة الهدف أو النطاق الخاص بهذه الجهة.
الخيار –b
ويقصد بها مصدر البيانات الذي ستقوم هذه الأداة بجمعه، في دروس سابقة قلنا إنه يمكن جمع المعلومات أو البيانات حول هدف معين من خلال Google أو linkedIn ومواقع مختلفة.
وبالتالي –b تعني مصدر البيانات التي سنقوم بجمع المعلومات من خلالها.
هناك العديد من مصادر البيانات التي يمكن جمع المعلومات من خلالها عن طريق هذه الأداة، فإن قلت له: -b Google أي اجمع لي من Google أو –b bing أي اجمع لي من Bing، وهكذا.
فإن قلت له: -b all أي اجمع لي من جميع هذه المصادر.
يمكن أن تكون بعض المصادر تحتاج إلى API أو Application Programming Interface .
وهذا يعني بأنه لجمع المعلومات من إحدى هذه الخدمات مثل bing API ستقوم بتجميع من موقع bing بحساب خاص بك.
ستقوم بعمل حساب مطور وستحصل على مفتاح وكلمة مرور خاصة ب API لتضيفها إلى الأداة، هذا يحدث أيضاً مع بعض الأدوات الأخرى.
الخيار –s
هذه الأداة ستبحث في مجموعة من مصادر البيانات، فلو نبحث في Google بشكل اعتيادي عن موقع cisco ستظهر العديد من النتائج.
-s تعني من أي نتيجة تبدأ بجمع المعلومات، والأفضل تركها افتراضية لأن الإفتراضي يعني البدء من أول قيمة.
وتحتاج اختيار هذه الأداة إذا أردت تجاوز أول 20 قيمة وأول 30 نتيجة تقوم بكتابة –s30 أي تجاوز أول ثلاثين وابدأ من بعدها.
الخيار -v
ستبحث عن Virtual Host بمواقع البحث وفي مصادر البيانات التي اخترتها.
فلو أردنا جمع معلومات حول cisco.com وقام المخترق بجمع معلومات وفحص موقع cisco ولم يجد أي ثغرة داخل هذا الموقع.
بالتالي يمكنه معرفة ال Virtual Host وهو كالتالي: كلنا نعرف أن موقع الالكتروني موجود على server وserver له IP Address .
ويمكن أن يكون نفس server لهذا IP Address مرتبط معه أكثر من إسم نطاق، وخاصة بشركات الاستضافة التي تقدم استضافة share Hosting .
يكون هناك عشرات ومئات domain names مرتبطة مع نفس IP Address لأنها كلها على نفس server.
تقوم شركات الاستضافة بعمل على كل domain name على configuration الخاص بال web server سواء كان Apache أو IS تقوم بعمل Virtual Host.
وتربط هذا الدومين بال Virtual Host وبالتالي لو أردنا فحص cisco.com ولم نجد فيه ثغرات سنقوم بجمع ال Virtual Host .
ووجدنا أن هناك موقع يدعى cisco2.com فحصناه لأنه على نفس السيرفر ووجدنا فيه ثغرات فاخترقنا cisco2.com واخترقنا السيرفر و cisco.com. هذا مثال ل Virtual Host
الخيار _f
تعني قم بتخزين النتائج الخاصة بهذه الأداة على شكل ملفين html و xml
الخيار -m
تعني جميع domain names أو subdomain names التي تم جمعها من خلال مصدر البيانات الذي قمنا باختياره هنا الخاصة بالدومين الذي بحثنا عنه.
مثلاً cisco فتم إيجاد acisco.com ، bcisco.com وهكذا، قم بمعرفة IP Address الخاص بها وقم بما يدعى بال reverselookup وهو ما ذكرناه في الدرس السابق.
أنه يتم إرسال IP Address و dns server سيقوم بإرجاع جميع النطاقات المرتبطة مع هذا IP Address هذا بشكل مبسط.
الخيار -c
المقصود بها عمل Brute force على DNS
ال Brute force كالتالي: في هذه الأداة يوجد ملف اسمه dns –name .txt وبه مجموعة من الكلمات. تقوم الأداة بإضافة كل كلمة من هذه الكلمات قبل cisco.com .
فمثلاً الكلمة الأولى كانت x فيصبح x.cisco.com ، الكلمة الثانية Dns تصبح dns.cisco.com ، وتحاول إيجاد هل هذا ال subdomain له ارتباط بشركة cisco أو لا.
فهذا هو المقصود ب Brute force ، محاولة إيجاد بعض النطاقات الفرعية للدومين المراد البحث عنه وغير المتوفر سواء بمحرك البحث أو بالاستعلامات العادية التي نقوم بعملها.
الخيار -t
مقصود بها اعمل ما يسمى TLD Expansion Discovery وهي TOP Level Domain وهي تعني سيرفرات ال DNS التي تستضيف النطاقات التالية .com
فيوجد سيرفرات خاصة ب .com ومجموعة خاصة ب .net ومجموعة سيرفرات يوجد عليها معلومات مثل .org و .academy وهكذا
الخيار -e
وتعني إن أردت البحث من خلال DNS server محدد سنقوم بكتابة –e ثم IP Address أو عنوان DNS الخاص بالأداة.
الخيار -l
تعني أننا لو اخترنا Goolge Datasource فإن Google بشكل افتراضي تبحث هذه الأداة في النتائج المائة الأول.
ونعرف أن Google تظهر لي النتائج بشكل افتراضي أول عشرة نتائج ثم الصفجة التالية والتالية لحد آخر نتيجة.
وبالتالي بشكل افتراضي ستبحث في أول 100 نتيجة، ونحن هنا إذا أردنا ان نبحث في عدد أكبر من النتائج سنحدد –l ثم سنقوم بكتابة القيمة المرادة مثلاً: -l 500 يعني ابحث في أول 500 نتيجة.
-l لو اخترنا مصدر بيانات Google ستبحث في أول 100 نتيجة، بالنسبة ل bing ستبحث في أول 50 نتيجة.
الخيار -h
تعني ما يلي: جميع IP Addresses و DNS التي قمت بجمعها من خلال Google، حاول أن تبحث عنها بال shodan search Engine الذي ذكرناه سابقاً بشكل اتوماتيكي.
ولكن بهذه الحالة يجب أن تقوم بالتسجيل في shodan والحصول على API من خلال shodan وتزويده بالأداة التي تقوم بالبحث من خلالها.
مثال أول
أول مثال سنقوم بالتعامل معه هو التالي:
Theharvester –d cisco.com
ويعني أني أريد البحث عن إسم cisco ، وبعد ذلك نريد أن نبحث في المصدر فلو أردنا البحث في Google سنقوم بكتابة: Theharvester –d cisco.com –b google
ولو أردت في Bing أكتبها مكان Google ولو أردت في تويتر أكتبه مكان Google وهكذا. ولو أردت البحث في جميعها أكتب Theharvester –d cisco.com –b all.
أنا سأقوم بالبحث في Google لأسرع العمل. سنقوم بالضغط على Enter وستبدأ عملية البحث وستبحث في أول مائة نتيجة.
وذلك لأننا قلنا أن الإفتراضي –l قيمتها 107 في أول مائة نتيجة.
بالتالي من المئة الأولى تم إيجاد أنه هناك بريداً الكترونياً اسمه [email protected] وتم إيجاد ال DNS من خلال مواقع البحث لل Domain names.
لو كتبت: theharvester –dcisco.com –b google
لو أردنا البحث عن virtual host سأقوم بإضافة: -v وأضغط Enter
سأجد أن هذه الأداة حصلت على مجموعة من البيانات الافتراضية، ويمكننا القيام بفحص المعلومات عنها.
ولو أردنا هذه النتائج أن نقوم بتخزينها في ملف سأختار –f لكن الملف سيتم تخزينه بنفس المكان الذي سنقف عليه فنحن موجودين على root فسأقول له:
cd desktop/mkdir cisco
ومن ثم سنقول له: cd cisco/
Dwd
The harvester –d cisco.com –b google –v –f result
سيتم الآن جمع البيانات وتخزينها في ملفي result.html و result.xml
لاستعراض الملف أدخل إلى المجلد الذي أنشأته وأرى الملفين html و xml أقوم بتشغيل html تظهر البيانات التي تم جمعها وتخزينها.
هذا يساعدنا في كتابة التقرير وحتى الرسمة ستساعدنا في عملية كتابة التقرير الخاص بالإختراق الأخلاقي.
الخيار -n
ستقوم بعمل reverse dns lookup ولكن هذا الأمر سيأخذ وقتاً طويلاً، بأن أضعه قبل –f واضغط enter.
وسيقوم بالعمل بالشكل التالي : جميع ال IPs الموجودة سيقوم بأخذ كل IP وسيبحث في ال Range داخل كل IP Address عن جميع ال Domains المرتبطة مع ال IPs بنفس ال Range .
الخيار -c
ستقوم بعمل Brute Force بمعنى يوجد ملف ns-name.txt يحوي مجموعة كبيرة من الكلمات ستقوم هذه الأداة بإضافة كل كلمة قبل cisco.com فتصبح الكلمة .cisco.com
كما ذكرنا سابقاً وستقوم بالبحث عن كل دومين هل هو موجود أم لا.
وإن كان موجوداً سترجعه لي وإن لم يكن موجوداً لن ترجعه لي، وبالتالي يمكنني معرفة بعض النطاقات الفرعية الخاصة بالشركة الهدف.
وغير المتوفرة على مواقع البحث والتي لا يتعود بال dns query العادية. عندما أقوم ب nslookup أو dig أو غيرها
مثلاً
لو قمت بهذا الخيار: theharvester –d cisco.com –b goole –v –c –f result
فيضيف الكلمات قبل cisco وأحضر الكلمات من dns-names.txt .
بعد أن ينتهي أقوم بتشغيل ملف result وألاحظ أن هناك نتائج إضافية أخرى جديدة نتيجة ال Brute force وجد نطاقات جديدة.
وهذا أمر مفيد لأي مختبر إختراق وهي من العمليات الأساسية التي يجب على المخترق بجمعها ليقوم بتقليص المجال الذي سيقوم بعمل فحص أو إختبار إختراق عليه.
والملف بشكل افتراضي غير موجود في مجلد theharvester فكيف أعرف النتائج وأنسخ مابه؟
أكتب : cd/usr/share/golismero/tools/theharvester/
ثم أكتب: ls
فأجد ملف txt فأنسخه:
cd dns-names.txt usr/share/golismero/tools/theharvester
وأضغط Enter
الآن هذه هو الأمر الذي سأعمله وهو نسخ الملف إلى المجلد الذي اريده.
أعود إلى نفس المسار: cd usr/share/theharvester/discovery ls
وأجده فأفتحه بكود الباثون: gedit dnssearch.py
وأختار منه السطر 76 ويكون كالتالي: usr/share/theharvester/discovery/dns-names.txt
أضيف المسار كاملاً واحفظ عملي وهكذا الأداة ستتعرف على عملي وبالتالي ستقوم بعمل –c مع الأداة لدي.
ساستعمل –l لأنه يبحث بنتائج أكثر، فإن أعدت الأمر الذي فعلته سابقاً: theharvester –d cisco.com –b google –l 1000 –v –c –f result
فسيبحث في الألف نتيجة.وسيقوم بنفس الخطوات. هذه هي أداة theharvester وهي جميلة وأنصح باستعمالها.
أداة metagoofil
هي أداة غير موجودة في Kali Linux فإن كتبت metagoofil وضغطت enter سيظهر الأمر غير موجود، فستقوم ب : apt-get install metagoofil
فستنصبها ومن ثم تكتب: metagoofil واضغط enter ستظهر الأداة.
أي ملف موجود سواء كان امتداده Doc او pdf أو أي ملف، بغض النظر عن امتداده فهناك شيء يدعى Metadata
ما هي metadata
هي عبارة عن بيانات حول الملف، مثل تخزين إصدار الملف، ونوع البرنامج الذي تم تحرير الملف به مثلاً PDF هو عبارة عن ملف من أكروبات وإصداره.
ونظام التشغيل الذي تم تحرير الملف عليه سواء ويندوز وإصداره والمستخدم الذي حرره والمستخدم على نظام التشغيل ويمكن أن يعطيني بياناته.
من خلال metadata يمكن استخلاص البريد الإلكتروني وأنواع أنظمة التشغيل والبرامج واستخراج بيانات مختلفة منها.
Metagoofil أداة سهلة وبسيطة جداً ولها مجموعة من الخيارات:
الخيار -d
تعطيني الدومين الذي أبحث داخله، فمثلاً أريد البحث داخل شركة cisco فأعطيه أمر:
-d cisco.com ليبحث في cisco .
وهي أداة تبحث داخل موقع Google ومجموعة من المواقع الأخرى.
الخيار -t
تبحث داخل الملفات، فأريد البحث مثلاً عن ملفات بامتداد معين فإذا كنت أريد Doc فقط أكتب:
-t doc أو أريد إثنان أكتب: -t doc,pdf
الخيار -l
تعني كمية النتائج التي تريد البحث داخلها، مثل التي في Theharvester.
الخيار -h
إن كنت أريد البحث داخل ملفات مخزنة لدي أصلاً.
الخيار -d
إن أردت البحث في ملفات موجودة Online أقوم بتحميلهم ومن ثم أبحث داخلهم.
الخيار -n
عدد الملفات التي أريد تحميلها بأن يبحث في أول مائتي نتيجة ولكن تحمل لي فقط خمسين وهكذا.
الخيار -o
أي خزن لي download.files التي تعملها عن طريق –n بالمجلد الموجود هنا في –o.
الخيار -f
أي الملف الذي ستخزن فيه النتائج للأوامر.
تطبيق
Metagoofil –d cisco.com –t pdf,ppt –l 300 –n 20 –o/root/desktop/cisco –f result.html
فيبدأ بالبحث عن الملفات التي طلبتها وطلبت تخزينها بالملف على سطح المكتب وهكذا.
أنتقل إلى سطح المكتب وأفتح ملف النتائج التي أعطتني إياه أداة metagoofil فتظهر بيانات ومعلومات كثيرة.
وقام بتحميل الملفات من نوع pdf و ppt التي طلبت تحميلها من خلال Google الموجودة في cisco.com وتم تحليلها أيضاً.
هناك أداة مشابهة لل metagoofil ذات واجهة رسومية ويمكن أن تثبتها على ويندوز تدعى foca يمكن التحليل من خلالها كما ال metagoofil لكن خاصة بالويندوز وهي ليست سطر أوامر بل واجهة رسومية.
هكذا انتهينا من درس اليوم عن metagoofil و the harvester ومعلومات مفيدة عنهما.
محمد خريشة