آموزش رایگان دوره CEH همگام با سرفصل‌های بین‌المللی – 38
آموزش CEH (هکر کلاه سفید): ابزارهایی که برای اسکن وب‌سرورها از آن‌ها استفاده می‌شود
بخش عمده‌ای از آسیب‌پذیری‌های کشف شده در ارتباط با وب‌سرورها این امکان را در اختیار هکرها می‌دهند که موارد کشف شده را روی وب‌سرورها آزمایش کنند به این امید که مسئولان مربوطه وصله‌ها را برای ترمیم آسیب‌پذیری‌ها نصب نکرده باشند. از رایج‌ترین حملات پیرامون وب‌سرورها می‌توان به حملات DoS / DDoS، حملات سرقت سامانه نام دامنه، حملات تقویت شده پیرامون سامانه نام دامنه، حمله پیمایش فهرست، ‌حملات مرد میانی، حمله تغییر ظاهر وب‌سایت، حملات مرتبط با پیکربندی اشتباه وب‌سرور، حملات شکستن گذرواژه‌های وب‌سرور و... اشاره کرد.

برای مطالعه قسمت قبل آموزش رایگان  دوره CEH اینجا کلیک کنید.

اسکن وب‌سرورها

هکرها می‌توانند تنها به اهدافی که وجود دارند حمله کنند. بنابراین، بعد از اینکه آدرس آی‌پی هدف مشخص شد، در ادامه باید به سراغ سرویس‌های وب بروید. سرورهای وب استاندارد روی پورت 80 یا 443 اجرا می‌شوند، اما هنگام جستجو برای برنامه‌های مبتنی بر وب باید پورت‌های دیگر را اسکن کنید. پورت‌های دیگری که باید اسکن شوند به شرح زیر هستند:

■ 80: HTTP

■ 88: Kerberos

■ 443: SSL (HTTPS)

■ 8005: Apache Tomcat

■ 8080: Squid

■ 9090: Sun Web Server Admin

ابزارهایی که برای اسکن این سرویس‌ها استفاده می‌شوند، همان ابزارهایی هستند که پیش‌تر و تحت عنوان Footprinting and Scanning  به آن‌ها اشاره کردیم. برخی از محبوب‌ترین‌ها گزینه‌ها در این زمینه به شرح زیر است:

■ ID Serve

■ SuperScan

■ Nmap

سرشماری و به دست آوردن بنر

پس از شناسایی سرورهای احتمالی وب، مهاجم معمولاً سعی می‌کند جزئیات بیشتری درباره سرور و مولفه‌های آن به دست آورد. سرورهای وب محبوب شامل موارد زیر است:

■ IIS Web Server

■ Apache Web Server

■ Nginx Web Server

■ Oracle iPlanet Web Server (OiWS)

قبل از اینکه در مورد آسیب‌پذیری‌های ویژه این پلتفرم‌ها بحث شود، اجازه دهید به برخی از ابزارهای مورد استفاده در سرشماری‌ها نگاهی داشته باشیم.

ابزاری که نیازی به نصب ندارد در https://www.netcraft.com در دسترس است. Netcraft یک سرویس عالی با عنوان "کدام سایت در حال اجرا است" را اجرا می‌کند که جزئیات مربوط به سرورهای وب را جمع‌آوری می کند. رابط کاربری Netcraft در شکل زیر نشان داده شده است.

همچنین می‌توانید از ابزارهایی مانند Telnet برای شناسایی یک وب‌سرور استفاده کنید. فقط کافی است مشخصات سایت را به تلنت بدهید و نتایج را مشاهده کنید:

C:\ >telnet www.knowthetrade.com 80

HTTP/1.1 400 Bad Request

Server: Microsoft-IIS/7.5

Date: Mon, 27 May 2015 06:08:17 GMT

Content-Type: text/html

Content-Length: 87

<html><head><title>Error</title></head><body>

The parameter is incorrect. </body>

</html>

Connection to host lost.

ID Serve ، HTTPRecon ، DMitry و Netcat ابزارهای مفیدی برای شناسایی وب‌سرورها هستند. با Netcat کافی است سه مرحله ساده زیر را انجام دهید و به سراغ سرشماری از وب بروید:

مرحله 1: یک فایل متنی به‌نام header.txt ایجاد کنید:

GET HEADER / 1.0

[carriage return]

[carriage return]

مرحله 2 ابزار Netcat را با پارامترهای زیر اجرا کنید:

nc -vv webserver 80 < header.txt

مرحله 3: نتایج را همانند حالت زیر مشاهده کنید:

HTTP/1.1 400 Bad Request

Server: Microsoft-IIS/7.5

Date: Mon, 27 May 2015 04:12:01 GMT

Content-Type: text/html

Content-Length: 91

<html><head><title>Error</title></head><body>

The parameter is incorrect. </body>

</html>

Connection to host lost.

کارشناسان تست نفوذ همچنین می‌توانند از اسکریپت‌هایNmap Scriptting Engine  برای سرشماری وب‌سایت‌ها استفاده کنند. اسکریپت‌های NSE به زبان برنامه‌نویسی Lua نوشته شده‌اند. این اسکریپت‌ها را می‌توان با یکی از دستورات نشان داده شده در ادامه اجرا کرد:

nmap -sC

nmap --script

گزینه -sC اجازه اجرای اسکریپت‌ها را می‌دهد، در حالی که سوییچ –script شما را قادر می‌سازد تا اسکریپت خاصی را مشخص کنید. سوییچ –Script برای آن‌که مقادیری را به عنوان آرگومان در اختیار ابزار قرار دهید از کاما برای جدا کردن آن‌ها استفاده می‌کند. آرگومان‌ها مشخص می‌کنند که با شروع Nmap کدام اسکریپت‌ها اجرا شوند. در ادامه به چند مثال در این زمینه توجه کنید:

■ nmap sV -O -p IP_address

■ nmap -sV --script=http-enum IP_address

■ nmap IP_address -p 80 --script = http-frontpage-login

■ nmap --script http-passwd -- script-args http-passwd.root =/ IP_address

بیایید مثال آخر را با جزئیات بیشتری بررسی کنیم. همان‌گونه که مشاهده می‌کنید دستور آخر تلاش می‌کند تا آسیب‌پذیری‌های درون وب‌سرور که برای بازیابی /etc/passwd یا boot.ini استفاده می‌شوند را کشف کند.

nmap --script http-passwd --script-args http-passwd.root=/test/

192.168.123.180

80/tcp open http

| http-passwd: Directory traversal found.

| Payload: "../../../../../../../../../../etc/passwd"

| Printing first 250 bytes:

| root:$1$$icts.JXC4iLDkaBIIA7fz.:0:0::/:/bin/sh

| sshd:*:65531:65532::/:/bin/false

| tftp:*:65533:65535::/:/bin/false

به عنوان یک کارشناس امنیتی باید بدانید که چگونه بنر و اطلاعات مربوط به وب‌سرورها را جمع‌آوری کنید. همچنین باید بدانید که چگونه ابزارهایی مانند Nmap با اجرای اسکریپت‌ها قادر به جمع‌آوری اطلاعات هستند. برنامه منبع باز دیگری به‌نام Wikto که نسخه پیشرفته‌تر آن به‌نام Nikto در دسترس همگان قرار دارد برای این منظور استفاده می‌شود. می‌توانید ابزار فوق را از آدرس زیر دریافت کنید.

https://github.com/sensepost/

Nikto یک ابزار عالی است، زیرا می‌تواند سرورهای وب را به‌طور کامل بررسی کرده و به شناسایی آسیب‌پذیری‌ها بپردازد. ابزار فوق از سه بخش اصلی زیر ساخته شده است:

■ A back-end miner

■ Nikto-like functionality

■ Googler

‌رابط کاربری این برنامه به شرح زیر است:

در آخرین مرحله باید جزییات سایت را بررسی کنید. شما می‌توانید به صورت دستی سایت را بررسی کرده یا از یک ابزارکارآمد که به راحتی در یک سایت فرآیند خزش را انجام می‌دهد استفاده کنید. ابزارهایی که برای این منظور طراحی شده‌اند یک سایت قرنیه از هدف را تولید کرده و نسخه‌ای از آن‌را روی هارد دیسک محلی ذخیره می‌کنند. این برنامه‌ها به شما امکان می‌دهند تک به تک صفحات و کدهای HTML درون صفحات را بررسی کرده و اطلاعات مفیدی به دست آورید. از جمله این ابزارها به موارد زیر می‌توان اشاره کرد:

■ BlackWidow: اسکنر وب‌سایت‌های مبتنی بر ویندوز و یک خزنده کامل سایت‌ها است. از ابزار فوق برای اسکن سایت و ایجاد یک پروفایل کامل از ساختار سایت، فایل‌ها، آدرس‌های ایمیل، پیوندهای خارجی و حتا خطاهای موجود در لینک‌ها استفاده می‌شود. شکل زیر رابط کاربری  BlackWidow را نشان می‌دهد.

■ Httprint: یک اسکنر وب‌سایت‌های مبتنی بر ویندوز و ابزاری برای نقشه‌برداری از یک سایت است. از ابزار فوق برای پیمایش وب‌سایت‌ها و مرور آن‌ها استفاده می‌شود. خروجی ابزار Httprint به شرح زیر است:

httprint 192.168.123.38

Finger Printing on http://192.168.123.38:80/

Finger Printing Completed on http://192.168.123.38:80/

--------------------------------------------------

Host: 192.168.123.38

Derived Signature:

Apache/2.4.25

9E431BC86ED3C295811C9DC5811C9DC5050C5D32505FCFE84276E4BB811C9DC5

0D6645B5821C9DC5811C9DC5CD37187C11CCC7D7811C9DC5811C9DC58A91CF57

FAAA535B6ED3C395FCCC535B811C9DC5E2CE6927050C5D336ED3C3959E431B

C86ED3C295F2CE69262A200B4C6ED3C2956ED3C2956ED3C2956ED3C285E1CE

6923E2CE69236FD3C295811C9BC5E2CE6927E2CE6932

Banner Reported: Apache/2.4.25

Banner Deduced: Apache/2.4.x

Score: 140

Confidence : 93.34------------------------

■ Wget: یک ابزار خط فرمان برای ویندوز و یونیکس است که محتویات یک وب‌سایت را بارگیری می‌کند.

شناسایی آسیب‌پذیری وب‌سرور

بعد از اینکه مهاجم سازنده و نسخه سرور وب را شناسایی کرد، در ادامه به جستجوی آسیب‌پذیری‌ها می‌پردازد. به عنوان مثال، اگر محصول به عنوان مایکروسافت IIS 7.5 شناخته شود، مهاجم میداند که با ویندوز سرور 2008 روبرو است یا اگر مهاجم به اندازه کافی خوش شانس باشد که مایکروسافت IIS 6.0 را پیدا کند، می‌داند که با ویندوز 2003 در ارتباط است. با استفاده از این اطلاعات، وی می‌تواند به سراغ سایت‌هایی شبیه به  (https://www.exploit-db.com) برود که آسیب‌پذیری‌های شناسایی شده در سامانه‌ها را فهرست می‌کند. سایت‌های دیگری که مهاجم یا آزمایش‌کنندگان احتمالاً برای شناسایی آسیب‌پذیری‌های احتمالی به سراغ آن‌ها می‌روند به شرح زیر هستند:

http://www.securityfocus.com

https://www.packetstormsecurity.org/

https://nvd.nist.gov

شکل زیر رابط کاربری وب‌سایت ExploitDB را نشان می‌دهد.

توجه کنید که چگونه آسیب‌پذیری‌ها به بخش‌های مشخصی تقسیم شده‌اند که شامل شامل بهره‌برداری از راه دور، بهره‌برداری از برنامه‌های وب، بهره‌برداری‌های محلی و انکار سرویس‌ها هستند:

حمله به وب‌سرور

بخش عمده‌ای از آسیب‌پذیری‌های کشف شده در ارتباط با وب‌سرورها این امکان را در اختیار هکرها می‌دهند که موارد کشف شده را روی وب‌سرورها آزمایش کنند به این امید که مسئولان مربوطه وصله‌ها را برای ترمیم آسیب‌پذیری‌ها نصب نکرده باشند.

از رایج‌ترین حملات پیرامون وب‌سرورها به موارد زیر می‌توان اشاره کرد:

حملات DoS / DDoS

حملات سرقت سامانه نام دامنه

حملات تقویت شده پیرامون سامانه نام دامنه

حمله پیمایش فهرست (Directory Traversal)

‌حملات مرد میانی 

حمله تغییر ظاهر وب‌سایت (Website defacement)

حملات مرتبط با پیکربندی اشتباه وب‌سرور

حملات شکاف‌خوردگی پاسخ HTTP (HTTP response splitting)

حملات شکستن گذرواژه‌های وب‌سرور (Web server password cracking)

اکنون اجازه دهید برای روشن شدن بهتر مطلب به هر یک از این حملات نگاهی داشته و در ادامه به کشف آسیب‌پذیری‌های IIS، ابزارهای خودکار کشف و به‌کارگیری اکسپلویت‌ها و راهکارهای ایمن‌سازی وب‌سرورها نگاهی داشته باشیم.

حملات DoS/DDoS

اگرچه حمله DoS / DDoS به مهاجمان امکان دسترسی به وب‌سرورها را نمی‌دهد، اما به آنها این امکان را می‌دهد تا ارتباط عادی کاربران با سایت‌ها و سرویس‌ها را مختل کنند. به عنوان مثال، به عملات پرداخت از طریق درگاه‌های بانکی دقت کنید. دسامبر سال 2010، سایت‌های مالی فرآیند حذف پشتیبانی بانکی را در حمایت از ویکی‌لیکس را آغاز کردند. این حمله توسط یک گروه ناشناس انجام شد و در آن مجموعه‌ای از حملات DoS موسوم به Operation Payback ترتیب داده شده که برخی از بانک‌ها را هدف قرار داده بودند. مهاجمان برای مرتبط کردن حمله خود از IRC irc.anonops.net و Twitter استفاده کردند و از مردم خواستند با دانلود ابزار حمله DoS LOIC وارد این بازی شوند. کارشناسان بر این باور هستند که بیش از 1000 کاربر به شکل داوطلبانه به این حمله DoS پیوستند.

حملات روبایش سرور DNS و حملات تقویت‌کنده پیرامون DNS

اگر مهاجم بتواند به سرور DNS دسترسی پیدا کند و تنظیمات DNS را تغییر دهد، ممکن است توانایی روبایش DNS را به دست آورد و در ادامه پیکربندی‌ها را به گونه‌ای تغییر دهد تا درخواست‌های ورودی به وب‌سرور سمت یک سایت مخرب هدایت شوند. DNS همچنین می‌تواند به روش‌های دیگری مانند حمله تقویت‌شده DNS پیاده‌سازی شود. حمله تقویت‌شده DNS یک حمله DDoS مبتنی بر رویکرد بازتابی است. این حملات معمولاً سرورهای DNS را هدف قرار می‌دهند و از الگوی بازپخش بازگشتی پشتیبانی می‌کنند.

ایده به‌کارگیری حملات فوق این است که یک پرس‌و‌جو DNS بسیار کوچک درون یک بارداده بزرگ قرار گرفته و به سمت شبکه هدف ارسال شود. رویکرد فوق می‌تواند منجر به مقداردهی اولیه درخواست‌هایی شود که نزدیک به 40 بایت  طول دارند و درون یک بسته که بیش از 4000 هزار بایت تقویت شده قرار گرفته و ارسال می‌شوند. اگر مهاجمی از بات‌نت برای حمله به سامانه‌هایی استفاده کند، این درخواست‌ها می‌توانند بازهم تقویت شده و قدرتمندتر شوند. اگر مهاجمی از DNSSec استفاده کند تا داده‌های بیشتری را پاسخ‌ها اضافه کند، همان‌گونه که در شکل زیر مشاهده می‌کنید، حمله ممکن است کاملا ویران‌کننده باشد. روش‌های کاهش حملات تقویت‌شده DNS شامل محدود کردن سرعت و مسدود کردن همه سرورهای با رویکرد بازپخش بازگشتی است.

حمله پیمایش فهرست (Directory Traversal)

حملات پیمایش فهرست (به نام حمله پیمایش مسیر نیز شناخته می‌شوند) مجموعه‌ای از نقاط و اسلش‌ها یا معادل آن‌ها را برای رفتن از یک پوشه به پوشه دیگر استفاده می‌کنند. حملات پیمایش فهرست‌ها زمانی امکان‌پذیر است که بتوانید یک مسیر را برای رفتن به مکانی خارج از یک پوشه محدود شده تبدیل و ترجمه کنید. این تهدید ممکن است امکان دسترسی به پرونده‌ها و دایرکتوری‌های دلخواه ذخیره شده در سیستم فایلی از جمله کد منبع برنامه یا پیکربندی و فایل‌های مهم سیستمی را فراهم کند. شما برای پیاده‌سازی این حمله می‌توانید به شکل دستی به جست‌وجوی منابعی بپردازید که در دسترس قرار دارند. به‌طور مثال، به آدرس دقت کنید:

http://www.hackthestack..com.com.br/get-files.jsp?file=vulnerabilityreport.pdf

اگر مهاجمی چنین آدرسی را پیدا کند، سعی می‌کند مقداری را برای دسترسی به فایل‌هایی که خارج از پوشه وب قرار دارند وارد کند.

http://www.hackthestack.com.br/get-files?file=../../../../some dir/some file

در لینوکس، مهاجم می‌تواند کل دیسک را پیمایش کند، در حالی که در ویندوز مهاجم تنها می‌تواند یک پارتیشن را پیمایش کند. منبع شکل‌گیری این حملات به زمانی باز می‌گردد که یونیکد به عنوان جایگزینی برای اسکل پیشنهاد شد. برخلاف اسکی، یونیکد از یک پایگاه داده 16 بیتی استفاده می‌کند. بنابراین، می‌تواند طیف گسترده‌تری از حروف متعلق به زبان‌های مختلف را پشتیبانی کند. منبع آسیب‌پذیری خود یونیکد نیست، بلکه نحوه پردازش آن است. آسیب‌پذیری فوق به یک مهاجم اجازه می‌دهد از فهرست موجود خارج شده و به هر مکانی درون ساختار درایو منطقی برود. دو نکته در مورد این حمله وجود دارد:

■ یونیکد: می‌توان به بهره‌برداری از رشته‌های کاراکتری شبیه به مورد زیر استفاده کرد  

%c1%1c, %c0%af, %c1%pc

■ رمزگشایی دوبار: می‌توان به بهره‌برداری از رشته‌های کاراکتری شبیه به %255c, %%35c اقدام کرد.

این حملات به دلیل شیوه تجزیه یونیکد امکان‌پذیر هستند. این رشته‌های بیش از حد طولاتی از فیلترهایی که بررسی یونی‌کدهای کوتاه استفاده می‌شوند عبور می‌کنند. با استفاده از یک ترکیب نحوی یونیکد شبیه به ../../../ ، یک مهاجم می‌تواند فرار از پوشه جاری را پیمایش کرده و برنامه‌هایی شبیه به cmd.exe را اجرا کند. هنگامی که یک مهاجم بتواند دستوراتی را روی سیستم محلی اجرا کند، تنها چند قدم برای دسترسی کامل به سامانه فاصله دارد. نکته‌ای که در این‌جا مهم است ترکیب نحوی فرمان‌هایی است که حمله را ترتیب می‌دهند:

http://web_server//scripts/..%c0%af..%c0%af..%c0%af..%c0%af../winnt/system32/cmd.exe?/c+dir+c:\

کرم نیمدا سال‌ها پیش از همین آسیب‌پذیری برای آلوده کردن سرورهای وب استفاده کرد. در ادامه ترافیک ضبط شده مرتبط با این کرم را مشاهده می‌کنید. دقت کنید به عنوان یک کارشناس امنیتی باید شباهت‌های موجود در این مدل حملات را تشخیص دهید. آیا می‌توانید مؤلفه یونیکد را در ترافیک ضبط شده تشخیص دهید؟

0.0.0.0 - - [21/Oct/2014:01:14:03 +0000]

"GET /scripts/..%c1%1c../winnt/system32/cmd.exe?/c+dir

0.0.0.0 - - [21/Oct/2014:01:14:03 +0000]

"GET /scripts/..%c0%2f../winnt/system32/cmd.exe?/c+dir

0.0.0.0 - - [21/Oct/2014:01:14:03 +0000]

"GET /scripts/..%c0%af../winnt/system32/cmd.exe?/c+dir

0.0.0.0 - - [21/Oct/2014:01:14:04 +0000]

"GET /scripts/..%c1%9c../winnt/system32/cmd.exe?/c+dir

0.0.0.0 - - [21/Oct/2014:01:14:04 +0000]

"GET /scripts/..%%35%63../winnt/system32/cmd.exe?/c+dir

0.0.0.0 - - [21/Oct/2014:01:14:04 +0000]

"GET /scripts/..%%35c../winnt/system32/cmd.exe?/c+dir

0.0.0.0 - - [21/Oct/2014:01:14:04 +0000] "GET /scripts/..%25%35%63../

winnt/system32/cmd.exe?/c+dir

0.0.0.0 - - [21/Oct/2014:01:14:04 +0000]

"GET /scripts/..%252f../winnt/system32/cmd.exe?/c+dir

یکی از ساده‌ترین راه‌ها برای جستجوی این آسیب‌پذیری به‌کارگیری اسکریپت Nmap است. در ابتدای مطلب اشاره کردم که ابزار فوق یک مهاجم را قادر می‌سازد به راحتی جست‌وجویی در هر وب‌سرور اجام داده و آسیب‌پذیری‌های مرتبط با پیمایش فهرست را کشف کند. ترکیب نحوی به کار گرفته شده در این زمینه به شرح زیر است:

nmap --script http-passwd -- script-args http-passwd.root =/ IP_address

در شماره آینده مبحث فوق را ادامه می‌دهیم.

برای مطالعه رایگان تمام بخش‌های دوره CEH  روی لینک زیر کلیک کنید:

آموزش رایگان دوره CEH

ماهنامه شبکه را از کجا تهیه کنیم؟
ماهنامه شبکه را می‌توانید از کتابخانه‌های عمومی سراسر کشور و نیز از دکه‌های روزنامه‌فروشی تهیه نمائید.

ثبت اشتراک نسخه کاغذی ماهنامه شبکه     
ثبت اشتراک نسخه آنلاین

 

کتاب الکترونیک +Network راهنمای شبکه‌ها

  • برای دانلود تنها کتاب کامل ترجمه فارسی +Network  اینجا  کلیک کنید.

کتاب الکترونیک دوره مقدماتی آموزش پایتون

  • اگر قصد یادگیری برنامه‌نویسی را دارید ولی هیچ پیش‌زمینه‌ای ندارید اینجا کلیک کنید.

ایسوس

نظر شما چیست؟