fingerPrint web server (اثر انگشت وب سرور)

بسم الله الرحمن الرحیموب سرور اثر انگشت چیست؟انگشت نگاری وب سرور وظیفه شناسایی نوع و نسخه وب سروری رو داره که هدف روی آن اجرا می شه. در حالی که انگشت نگاری وب سرور اغلب در ابزارهای تست خودکار محصور می شه.پیدا کردن دقیق نوع وب سروری که یک برنامه روی آن اجرا می شود ، می‌تواند تسترهای امنیتی را قادر بسازه تا تشخیص بده که آیا برنامه در برابر حمله آسیب‌پذیر است یا خیر. به ویژه، سرورهایی که نسخه‌های قدیمی‌تر نرم‌افزار را بدون وصله‌های امنیتی به‌روز اجرا می‌کنند، می‌توانند در معرض سوء استفاده‌های خاص نسخه شناخته شده باشند.تکنیک های مورد استفاده برای انگشت نگاری وب سرور شامل گرفتن بنر، ایجاد پاسخ به درخواست های نادرست، و استفاده از ابزارهای خودکار برای انجام اسکن های قوی تر است که از ترکیبی از تاکتیک ها استفاده می کند. فرض اساسی که همه این تکنیک ها بر اساس آن عمل می کنند یکسان است. همه آنها تلاش می کنند تا برخی از پاسخ ها را از وب سرور استخراج کنند که سپس می تواند با پایگاه داده ای از پاسخ ها و رفتارهای شناخته شده مقایسه شود و بنابراین با یک نوع سرور شناخته شده مطابقت داده شود.گرفتن بنر:گرفتن بنر با ارسال یک درخواستHTTP به وب سرور و بررسی هدر پاسخ آن انجام می شود. این را می توان با استفاده از ابزارهای مختلفی از جملهtelnet برای درخواست هایHTTP یا openssl برای درخواست های SSL انجام داد.به عنوان مثال، در اینجا پاسخ به یک درخواست از یک سرور آپاچی است.HTTP/1.1 200 OKDate: Thu, 05 Sep 2019 17:42:39 GMTServer: Apache/2.4.41 (Unix)Last-Modified: Thu, 05 Sep 2019 17:40:42 GMTETag: &quot75-591d1d21b6167&quotAccept-Ranges: bytesContent-Length: 117Connection: closeContent-Type: text/htmlدر این مثال ها، نوع و نسخه سرور به وضوح آشکار می شود. با این حال، برنامه های کاربردی آگاه از امنیت ممکن است با تغییر هدر، اطلاعات سرور خود را مبهم کنند. به عنوان مثال، در اینجا گزیده ای از پاسخ به درخواست یک سایت با هدر اصلاح شده است:HTTP/1.1 200 OKServer: Website.comDate: Thu, 05 Sep 2019 17:57:06 GMTContent-Type: text/html; charset=utf-8Status: 200 OKدر مواردی که اطلاعات سرور مبهم است، آزمایش کنندگان ممکن است بر اساس ترتیب فیلدهای سرصفحه، نوع سرور را حدس بزنند. توجه داشته باشید که در مثال آپاچی بالا، فیلدها از این ترتیب پیروی می کنند:DateServerLast-ModifiedETagAccept-RangesContent-LengthConnectionContent-Typeبا این حال، در هر دو مثال nginx و سرور مبهم، فیلدهای مشترک از این ترتیب پیروی می کنند:ServerDateContent-Typeآزمایش کنندگان می توانند از این اطلاعات برای حدس زدن اینکه سرور مبهم nginx است استفاده کنند. با این حال، با توجه به اینکه تعدادی از وب سرورهای مختلف ممکن است ترتیب فیلدهای یکسانی را به اشتراک بگذارند و فیلدها قابل تغییر یا حذف باشند، این روش قطعی نیست.ارسال درخواست های نادرستسرورهای وب ممکن است با بررسی پاسخ های خطای آنها و در مواردی که سفارشی نشده اند، صفحات خطای پیش فرض آنها شناسایی شوند. یکی از راه‌های وادار کردن سرور به ارائه این موارد، ارسال درخواست‌های عمدا نادرست یا نادرست است.به عنوان مثال، در اینجا پاسخ به درخواست روش غیر موجود بابا نوئل از یک سرور آپاچی است.GET / SANTA CLAUS/1.1HTTP/1.1 400 Bad RequestDate: Fri, 06 Sep 2019 19:21:01 GMTServer: Apache/2.4.41 (Unix)Content-Length: 226Connection: closeContent-Type: text/html; charset=iso-8859-1<!DOCTYPE HTML PUBLIC &quot-//IETF//DTD HTML 2.0//EN&quot><html><head><title>400 Bad Request</title></head><body><h1>Bad Request</h1><p>Your browser sent a request that this server could not understand.<br /></p></body></html>Here is the response to the same request from nginx.GET / SANTA CLAUS/1.1<html><head><title>404 Not Found</title></head><body><center><h1>404 Not Found</h1></center><hr><center>nginx/1.17.3</center></body></html>در اینجا پاسخ به همان درخواست از lighttpd است.GET / SANTA CLAUS/1.1HTTP/1.0 400 Bad RequestContent-Type: text/htmlContent-Length: 345Connection: closeDate: Sun, 08 Sep 2019 21:56:17 GMTServer: lighttpd/1.4.54<?xml version=&quot1.0&quot encoding=&quotiso-8859-1&quot?><!DOCTYPE html PUBLIC &quot-//W3C//DTD XHTML 1.0 Transitional//EN&quot&quothttp://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&quot><html xmlns=&quothttp://www.w3.org/1999/xhtml&quot xml:lang=&quoten&quot lang=&quoten&quot><head><title>400 Bad Request</title></head><body><h1>400 Bad Request</h1></body></html>استفاده از ابزارهای اسکن خودکار: اثر انگشت وب سرور معمولا به عنوان ابزار اسکن خودکار عمل میکند. ابزارهای خودکار می توانند پاسخ های سرورهای وب را بسیار سریعتر از آزمایش دستی مقایسه کنند و از پایگاه داده های بزرگی از پاسخ های شناخته شده برای شناسایی سرور استفاده کنند. به این دلایل، ابزارهای خودکار احتمال بیشتری برای تولید نتایج دقیق دارند.در اینجا برخی از ابزارهای اسکن رایج مورد استفاده که شامل عملکرد انگشت نگاری وب سرور هستند، آورده شده است.Netcraft•، یک ابزار آنلاین که وب سایت ها را برای اطلاعات اسکن می کند، از جمله وب سرور.Nikto•، یک ابزار اسکن خط فرمان منبع باز.Nmap•، یک ابزار خط فرمان منبع باز که دارای رابط کاربری گرافیکی، Zenmap نیز می باشد.نکته : اطلاعات سرور افشا شده لزوماً به خودی خود یک آسیب پذیری نیست، اما اطلاعاتی است که می تواند به مهاجمان در سوء استفاده از آسیب پذیری های دیگر که ممکن است وجود داشته باشد کمک کند. اطلاعات سرور افشا شده همچنین می‌تواند مهاجمان را به یافتن آسیب‌پذیری‌های سرور خاص نسخه‌ای که می‌تواند برای بهره‌برداری از سرورهای وصله‌نشده استفاده شود، سوق دهد. به همین دلیل توصیه می شود اقدامات احتیاطی انجام شود. این اقدامات عبارتند از:· پنهان کردن اطلاعات وب سرور در هدرها، مانند ماژولmod_headers Apache.· استفاده از یک سرور پراکسی معکوس سخت شده برای ایجاد یک لایه امنیتی اضافی بین وب سرور و اینترنت.· اطمینان از به روز نگه داشتن وب سرورها با آخرین نرم افزارها و وصله های امنیتی.اثر انگشت وب سرورزیرساخت پشت یک برنامه وب چیزی است که از آن پشتیبانی می کند و امکان کارکرد را فراهم می کند. این شامل وب سروری می شود که مستقیماً در اجرای هر برنامه ای نقش دارد. با دانستن اینکه چه نوع وب سروری در پشت برنامه قرار دارد، نشان می دهد که سیستم عاملی که روی سرور اجرا می شود و آسیب پذیری های شناخته شده ای که ممکن است وجود داشته باشد، این امکان را به شما می دهد. شما ارزیابی کنید که کدام اکسپلویت های مناسب برای حمله به هدف هستند.امروزه در بازار عرضه کنندگان و نسخه های مختلفی از سرورهای وب وجود دارد که چند نمونه از آنها می باشد:• سرور HTTP آپاچی (توسعه یافته توسط بنیاد نرم افزار آپاچی)• آپاچی تامکت (توسعه یافته توسط بنیاد نرم افزار آپاچی)• خدمات اطلاعات اینترنتی (IIS، توسعه یافته توسط مایکروسافت)دانستن نوع وب سرور کمک قابل توجهی می کند و همچنین می تواند مسیر حمله را تغییر دهد. این اطلاعات را می توان با ارسال دستورات خاص به وب سرور و تجزیه و تحلیل خروجی پاسخ به دست آورد، زیرا ممکن است هر نسخه از وب سرور پاسخ متفاوتی بدهد.در زیر چند ابزار برای انجام انگشت نگاری وب سرور آورده شده است.لیست ابزارهای تست شده و توصیف شده توسط هکرها• ابزار انگشت نگاریروش دستیساده ترین و اساسی ترین راه برای شناسایی وب سرور، نگاهی به قسمت Server در هدر پاسخ HTTP است.برای این مثال ها یک ماشین مجازی (VM) با IP 192.168.1.3 ایجاد کرده ایم.درخواست:$ nc 192.168.1.3 80HEAD / HTTP/1.1Reply:Web server used Apache 2.2HTTP/1.1 200 OKDate: Mon, 02 May 2020 02:53:29 GMTServer: Apache/2.4.38 (Debian)Content-Length: 1179Connection: closeContent-Type: text/htmlReply from Microsoft IIS 7.5HTTP/1.1 200 OKServer: Microsoft-IIS/7.5Date: Mon, 02 May 2020 02:53:29 GMTContent-Type: text/HTMLAccept-Ranges: bytesContent-Length: 7369روش دیگر ارسال یک درخواست نامعتبر به وب سرور است که باعث ایجاد صفحه خطای حاوی نسخه وب سرور در هدر پاسخ و/یا در بدنه HTML می شود.$ nc 192.168.1.3 80HEAD / HTTP/4.0HTTP/1.1 400 Bad RequestDate: Fri, 06 Mar 2020 16:01:08 GMTServer: Apache/2.4.38 (Debian)Content-Length: 309Connection: closeContent-Type: text/html; charset=iso-8859-1​<!DOCTYPE HTML PUBLIC &quot-//IETF//DTD HTML 2.0//EN&quot><html><head><title>400 Bad Request</title></head><body><h1>Bad Request</h1><p>Your browser sent a request that this server could not understand.<br /></p><hr><address>Apache/2.4.38 (Debian) Server at hackerday.station Port 80</address></body></html>با این حال، این روش آزمون دقت محدودی دارد. چندین تکنیک وجود دارد که به وب سایت اجازه می دهد رشته بنر را مبهم یا تغییر دهد. برای مثال، ممکن است پاسخ زیر را دریافت کنید403 HTTP/1.1 ForbiddenDate: Mon, 16 feb 2003 02:41: 27 GMTServer: Unknown-WebserverConnection: closeروش خودکاروب سرور انگشت نگاری را می توان با استفاده از ابزارهای خودکاری که برای این منظور طراحی شده اند نیز انجام داد.ابزارهای خودکار در شناسایی نسخه وب سرور بسیار دقیق تر هستند، زیرا آنها نه تنها بر اساس خواندن هدر پاسخ هستند، بلکه رفتار آن را تجزیه و تحلیل کرده و با پایگاه داده امضای آن مقایسه می کنند.یکی از محبوب ترین ابزارهاhttprint است که برای لینوکس و ویندوز موجود است.وب سرور انگشت نگاری را می توان با استفاده از ابزارهای خودکاری که برای این منظور طراحی شده اند نیز انجام داد.ابزارهای خودکار در شناسایی نسخه وب سرور بسیار دقیق تر هستند، زیرا آنها نه تنها بر اساس خواندن هدر پاسخ هستند، بلکه رفتار آن را تجزیه و تحلیل کرده و با پایگاه داده امضای آن مقایسه می کنند.یکی از محبوب ترین ابزارها httprint است که برای لینوکس و ویندوز موجود است.httprint v0.301 (beta) - web server fingerprinting tool(c) 2003-2005 net-square solutions pvt. ltd. - see readme.txthttp://net-square.com/httprint/httprint@net-square.com​Finger Printing on http://192.168.1.3:80/Finger Printing Completed on http://192.168.1.3:80/--------------------------------------------------Host: 192.168.1.3Derived Signature:Apache/2.4.38 (Debian)811C9DC568D17AAE811C9DC5811C9DC5811C9DC5505FCFE84276E4BB630A04DB0D7645B5811C9DC5811C9DC5CD37187C811C9DC5811C9DC5811C9DC5811C9DC568D17AAEE2CE6923E2CE6923811C9DC5E2CE6927811C9DC568D17AAE811C9DC56ED3C29568D17AAE811C9DC5E2CE6923E2CE692368D17AAE68D17AAEE2CE6923E2CE692368D17AAE811C9DC5E2CE6927E2CE6923​Banner Reported: Apache/2.4.38 (Debian)Banner Deduced: Lotus-Domino/6.xScore: 77Confidence: 46.39--------------------------------------------------Httprint can print a html report for easy reading.Httprint می تواند یک گزارش html را برای خواندن آسان چاپ کند.?گزارش httprint در htmlحتی با انجام اسکن پورت باNmap با استفاده از پارامتر -sV می‌توان نسخه سرور را در میزبان راه دور بازیابی کرد.$ nmap 192.168.1.3 -sVStarting Nmap 7.80 ( https://nmap.org ) at 2020-03-06 16:25 CETNmap scan report for hackerday.station (192.168.1.3)Host is up (1.0s latency).Not shown: 994 closed portsPORT STATE SERVICE VERSION21/tcp open ftp22/tcp open ssh OpenSSH 7.9p1 Debian 10+deb10u2 (protocol 2.0)80/tcp open http Apache httpd 2.4.38 ((Debian))514/tcp filtered shell3306/tcp open mysql MySQL (unauthorized)انگشت نگاری وب سرور یک مرحله بسیار مهم برای کسانی است که می خواهند به یک برنامه حمله کنند، این مرحله به شناسایی آسیب پذیری های شناخته شده مورد علاقه آنها کمک می کند و بنابراین از چه نوع اکسپلویتی استفاده می شود.هنگامی که انگشت نگاری انجام می شود، بسیار مهم است که به یک روش تکیه نکنید، بلکه از ابزارهای مختلف برای به دست آوردن نتایج دقیق استفاده کنید.مداخله در سطح زیرساخت:• هدرهای وب سرور را مبهم کنید• از وب سرور پشت پراکسی معکوس / WAF محافظت کنید.* اثر انگشت NMAP چیست؟تکنیک انگشت نگاری Nmap OS از پروب های TCP، UDP و ICMP استفاده می کند که به مجموعه ای از پورت های سنتی روی دستگاه هدف ارسال می شوند. این پروب ها برای بهره برداری از ابهامات موجود در پروتکل های استاندارد طراحی شده اند. پس از دریافت پاسخ Nmap، به گوش دادن ادامه می دهد.انگشت نگاری IdentoGO برای چیست؟IDEMIA طیف گسترده ای از خدمات مرتبط با هویت را ارائه می دهد، اما خدمات اصلی ما خدمات ضبط و انتقال اثر انگشت ایمن ما است که در مکان های مختلف مناسب برای استخدام، صدور گواهینامه، صدور مجوز و سایر نیازهای تأیید در دسترس است.گرد اورنده : محمد درویشی بهلولی-