httprecon اداة كشف إصدار و معلومات خادم الويب
الكاتب: أحمد ابوالعلا | يوم: 20 يناير, 2012 | التعليقات: 4 | القراءات: - عدد المشاهدات 20٬858
الكثير منا قد يسمع عن مصطلح ” security by obsecure ” و هي اضعف طرق الحماية لكنها تكون مهمة في بعض الأحيان . و هذة الطريقة فكرتها تتركز على اخفاء معلومات لا تكون هامة جدا و لكنها قد تكون مفيدة للمخترق مثل اصدار التطبيق الذي يريد ان يخترقه . و مرحلة جمع المعلومات هي اهم مرحلة من مراحل تجربه الإختراق لذلك قد يكون من المزعج جدا لـPenteration Tester عدم قدرته على معرفة اصدار التطبيق او اصدار الخدمه التى تعمل على الخادم .
واذا تكلمنا على خوادم الويب او Webservers فبعض مدراء الخوادم يقومون بأخفاء معلومات الخادم او تغيرها بمعلومات وهمية , و من المعروف انه يمكن التعرف على نوع الخادم فقط من Headers الواردة التى تأتي كرد من الخادم عند طلب صفحة ما . مثال على ذلك تجربة على موقع Microsoft.com تكون النتيجة مثل التالي :
HTTP/1.1 200 OK
Cache-Control: no-cache
Pragma: no-cache
Content-Type: text/html; charset=utf-8
Expires: -1
Vary: Accept-Encoding
Server: Microsoft-IIS/7.5
X-AspNet-Version: 2.0.50727
VTag: 438270830600000000
P3P: CP=”ALL IND DSP COR ADM CONo CUR CUSo IVAo IVDo PSA PSD TAI TELo OUR SAMo CNT COM INT NAV ONL PHY PRE PUR UNI”
X-Powered-By: ASP.NET
Date: Fri, 20 Jan 2012 04:55:02 GMT
Content-Length: 202404
هنا نرى بوضوح اصدار و نوع خادم الويب و هو ” Microsoft-IIS ” و الأصدار 7.5 و تستطيع ايضا ان ترى بعض المعلومات الأخرى مثل اصدار الـASP.NET و هو 2.0.50727
لذلك الأن هذة المعلومات تساعد و تفيد المخترق بتحديد نوع الهجوم و التركيز فقط على نوع هذا الخادم و فحص ثغراته . لكن نفترض اذا قام penteration tester بالتجربة على خادم و لم يظهر نوع هذا الخادم او اصداره او ظهر له اصدار و لكنه غير متأكد اذا كان هذا حقيقي ام لا .
هنا يأتي دور الـfingerpritning و هي عملية التعرف على نوع الخدمة او اصدارها عن طريق عمل بعض الأختبارات المتقدمة عليها و التى تكشف نوعها و اصدارها الحالي .
و اداة httprecon هي من افضل الأدوات التى قمت بتجربتها بنفسي على نظام وندوز و تقوم بالتعرف و الكشف عن نوع الخادم و معرفة اصداره حتى اذا كان الأصدار مخفي او وهمي . و الأداة تظهر النتائج بالنسبة المئوية حسب نسبة التوقع مثلا اذا كان كل التجارب توافقت مع خادم Apache سوف يظهر لك نسبة 100% و اذا كان مثلا الكثير منها توافقت مع IIS سيظهر مثلا 80% و غيره .
الأداة سهلة جدا الأستخدام كل ما عليك فعلة ان تضع عنوان الموقع الذي تريد ان تتعرف على نوع الخادم الخاص به و سوف تقوم الأداة بعمل الفحوصات الازمة للتعرف عليه .
وهذا مثال بسيط على عمل الأداة عند تشغيلها و ظهور النتائج بشكل ممتاز .
تحميل الأداة | رابط الموقع
أحمد ابوالعلا : باحث امن معلومات مصري , متخصص في إختبار نظم الحماية و تجربة الأختراق و مهتم بإختبار تطبيقات الويب, قام باكتشاف العديد من الثغرات في مواقع و شركات عالمية مثل Ebay, Adobe , Apple , Twitter , Yahoo, Microsoft , Google و تم ادراج اسمه عده مرات بحائط الشرف تقديراً لجهوده.
التعليقات:
اترك تعليقاً | عدد التعليقات: (4)
الله يجزك خير اخي بس ما فايده منها في السيرفرات
يعني والله انا غشيم شوي ابي توضح لي عن مميزات الادا يعني هل هي تخرج اليوزر والباس الموقع
وهل احصل علي بينالت الموقع من الكونفات والوغيرها
يعني اخي الفاضل ابي توصفي لي شفل الادا والتعمل معها
يا استاذي الكريم شخصيا اعتبر هذه الاداة غير مهمة ابدا قمت بتجربتها وهي تخطىء كثيرا كما انها تعطي معلومات نسبية تكاد تكون عشوائية وهذا مالايحبه الكثير+يمكنك معرفة هذه المعلومات بواسطة الامر “wget” من: demarrer-exuter-cmd ثم كتابة هذا الامر wget –server-response –spider http://www.example.com
قبل ذلك حمل الملف التنفيذي من الرابط هذا:http://users.ugent.be/~bpuype/cgi-bin/fetch.pl?dl=wget/wget.exe.
تقبل مروري ولك مني تحية
@ مازلت موجود : الطريقة التي ذكرتها تعتمد على قراءة header إستجابة الخادم. وهذه الطريقة غير عملية. فيمكن تعديلها, مثلاً خادمي Apache وستراه IIS, أو ببساطة إخفاءها من إعادات الخادم.
الأداة تستخدم طريقة مختلفة في تخمين نوع الخادم, تدرس حجم الـheader ورسائل الخادم وطريقة إستجابته للأخطاء. مثلاً إنظر لإستجابة خادم Apache :
Apache:
HTTP/1.1 200 OK
Date: Wed, 14 Mar 2012 23:54:28 GMT
Server: Apache/2.4.1 (Unix)
Last-Modified: Wed, 14 Mar 2012 23:11:45 GMT
ETag: “8754-4bb3c1965a279”
Accept-Ranges: bytes
Content-Length: 34644
Vary: Accept-Encoding
Cache-Control: max-age=3600
Expires: Thu, 15 Mar 2012 00:54:28 GMT
Keep-Alive: timeout=5, max=100
Connection: Keep-Alive
Content-Type: text/html; charset=utf-8
ﻻحظّ أن Date يلي حالة الردّ 200 ويأتي بعدها Server. أما في خادم من نوع IIS :
IIS:
HTTP/1.1 200 OK
Content-Type: text/html
Last-Modified: Sat, 25 Sep 2010 08:00:08 GMT
Accept-Ranges: bytes
ETag: “XXXXXXXXX”
Server: Microsoft-IIS/7.5
X-Powered-By: ASP.NET
Date: Wed, 14 Mar 2012 23:54:38 GMT
Connection: keep-alive
Content-Length: 274
فإن Date في الأخير وتليها Connection. وأيضاً هناك إختلاف في Nginx :
Nginx:
HTTP/1.1 200 OK
Server: nginx/1.0.11
Date: Wed, 14 Mar 2012 23:51:11 GMT
Content-Type: text/html; charset=utf-8
Content-Length: 4342
Last-Modified: Mon, 05 Mar 2012 15:44:31 GMT
Connection: keep-alive
Keep-Alive: timeout=15
Accept-Ranges: bytes
وبين جميع تلك الخوادم هناك إختلافات, لأنه ﻻيوجد معيار وتلك الأداة تستخدم مثل هذه الإختلافات في تحديد نوع الخادم بل حتى الإصدار في بعض الأحيان.
اداة بسيطة وفكرتها سهلة جدا لكنها ذكية
فهي تقوم بتجربة خصائص كل خادم وترى من هو الذي ينطبق معاه
لكن ماذا اذا انا قمت بتعديل الهيدر الخاص بي ولنفرض انه عندي خادم اصلي ISS سوف اقوم بنفس التعديلات وبنفس الترتيب لبيانات خادمGNIX .. في هذه الحالة الاداة سوف تظهر على ان gnix matching بدلا من ISS