httprecon اداة كشف إصدار و معلومات خادم الويب

الكثير منا قد يسمع عن مصطلح ” 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)

  1. مسلم وفتخر قال:

    الله يجزك خير اخي بس ما فايده منها في السيرفرات
    يعني والله انا غشيم شوي ابي توضح لي عن مميزات الادا يعني هل هي تخرج اليوزر والباس الموقع
    وهل احصل علي بينالت الموقع من الكونفات والوغيرها
    يعني اخي الفاضل ابي توصفي لي شفل الادا والتعمل معها

  2. يا استاذي الكريم شخصيا اعتبر هذه الاداة غير مهمة ابدا قمت بتجربتها وهي تخطىء كثيرا كما انها تعطي معلومات نسبية تكاد تكون عشوائية وهذا مالايحبه الكثير+يمكنك معرفة هذه المعلومات بواسطة الامر “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.
    تقبل مروري ولك مني تحية

  3. بركات قال:

    @ مازلت موجود : الطريقة التي ذكرتها تعتمد على قراءة 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

    وبين جميع تلك الخوادم هناك إختلافات, لأنه ﻻيوجد معيار وتلك الأداة تستخدم مثل هذه الإختلافات في تحديد نوع الخادم بل حتى الإصدار في بعض الأحيان.

  4. kalinihon قال:

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

    لكن ماذا اذا انا قمت بتعديل الهيدر الخاص بي ولنفرض انه عندي خادم اصلي ISS سوف اقوم بنفس التعديلات وبنفس الترتيب لبيانات خادمGNIX .. في هذه الحالة الاداة سوف تظهر على ان gnix matching بدلا من ISS

أكتب تعليق