Вступ
У 2003 році, хакеру, відомому як «HD Moore», прийшла ідея розробити інструмент для швидкого написання експлоїтів. Так був народжений добре відомий у всіх колах проект Metasploit. Перша версія фреймфорку була написана мовою Perl, що містила псевдографічний інтерфейс на базі бібліотеки curses.
До 2007 року розробники консолідувалися, заснувавши компанію Metasploit LLC; в цей же час проект повністю переписали на Ruby і, частково на Сі, Python і Ассемблер.
У жовтні 2009 року проект Metasploit придбала компанія Rapid7 з умовою, що HD Moore залишиться технічним директором фреймворку, на що погодилася компанія Rapid7.
Сьогодні Metasploit є однією з найпопулярніших програм, що мають найбільшу базу експлоїтів, шелкодів і купу різноманітної документації, що не може не порадувати.
Metasploit дозволяє імітувати мережеву атаку і виявляти вразливості системи, перевірити ефективність роботи IDS/IPS, або розробляти нові експлоїти, зі створенням докладного звіту. У народі його навіть встигли прозвати «хакерським швейцарським ножем».
Завдяки переписаному, в основному на ruby, коду фреймворку, він залишається кроссплатформенним, тобто не має конкретної прив'язки ні до якої ОС. HD Moore якось продемонстрував запуск Msfconsole на годиннику з linux прошивкою.
На сьогоднішній день Metasploit міститься в декількох linux-дистрибутивах:
— Kali linux (kali.org);
- Backtrack linux (backtrack-linux.org (підтримка припинена));
— Pentoo (pentoo.ch);
— BlackArch (www.blackarch.org);
— Backbox (backbox.org).
З моменту придбання Фреймфорка, багато що змінилося.
Наприклад, з'явилися PRO і Community версії, а в 2010 році, більш спрощена версія для «малокваліфікованих» користувачів - Metasploit Express.
Інструмент має декілька конфігурацій:
1) Командна оболонка (msfconsole);
2) Веб-інтерфейс (Metasploit Community, PRO і Express);
3) Графічна оболонка (Armitage, і більш просунута версія - Cobalt strike).
Фреймворк: практика
Якщо у вас все ще немає Метасплоїта - не біда, завантажити його можна на офіційному сайті metasploit.com.
Варто зазначити, що msf коректно працює тільки з базою PostgreSQL.
Після того як ми завантажили пакет, відкриємо консоль і виконаємо наступне:
1) кd Download/( перейдемо до теки звантажень);
2) chmod + X metasploit-latest-linux-installer.run (даємо права на запуск);
3) sudo ./metasploit-latest-linux-installer.run (запускаємо графічну установку).
(Більш детальна документація з установки знаходиться на сайті Metasploit).
В якості короткого опису ознайомимося з основними поняттями, а також розглянемо деякі команди MSF.
Exploit - фрагмент коду, що використовує вразливість в ПЗ або ОС для виконання атаки на систему.
Module - Модуль, що автоматизує процес будь-якої атаки.
Shellcode - Шеллкод. Використовується як корисне навантаження експлойту, що забезпечує доступ до командної оболонки ОС.
Payload - Корисне, або смислове навантаження. Це код, який виконується після успішного виконання атаки. Видів навантаження в msf чимало.
«Stager» - Навантаження, розбите на частини. Встановлюючи з "єднання, шелл повністю завантажується.
«Reverse shell» - Бекконнект йшов.
«Meterpreter» - Мабуть, один з популярних, якщо не найпопулярніший шелл. Має купу можливостей: міграцію в процеси; XOR-шифрування, для обходу IDS і антивірусів; два види dll-інжекції тощо. Також можна вибрати «metsvc» навантаження, що заллє і пропише meterpreter як сервіс. Більш детально про meterpreter можна почитати в статтях, посилання на які будуть в кінці статті.
Закінчимо невеликий екскурс по meterpreter'y і перейдемо до консолі msf.
use - Вибір експлоїта
search - Пошук. Команду пошуку більш розширено; якщо ви забули точну назву або шлях розташування експлоїту, вона здатна відобразити всю наявну інформацію
show options - Перегляд параметрів для налаштування. Після вибору експлоїта, ви можете переглянути які параметри доступні для налаштування
show payload - Перегляд корисних навантажень. Msf містить багато корисних навантажень; скориставшись цією командою можна також подивитися рекомендовані навантаження для конкретного ескплоїту або ОС
info - Перегляд подробиць про корисне навантаження
(info payload_name)
set - Встановлення параметрів. Команда set встановлює потрібні параметри, наприклад, RHOST (remote) і LHOST (local), або корисне навантаження
(set PAYLOAD windows/shell/reverse_tcp)
check - Перевірка вузла на вразливість
exploit - Запуск згуртування. Коли мета вибрана і все можливе налаштовано, залишається тільки завершальний етап - команда exploit
Також варто відзначити маловідому, але корисну фічу msf - можливість створення resource-скриптів. Сам resource-скрипт представляє з себе текстовий файл, що містить послідовність команд для виконання; також він дозволяє виконати ruby код.
Ці файли дуже зручні, і дозволяють практично повністю автоматизувати без того легкий процес тестування. Наприклад, це може знадобитися для автоматичного запуску сервера, або очищення «сміття».
Ув'язнення
Вразливість RDP протоколу дозволяє виконати код на віддаленій системі. Розглянемо експлоїт ms12_020, що призводить до BSOD.
Сплоїт розташовується за адресою auxiliary/dos/windows/rdp/ms12_020_maxchennelids:
Вибравши згуртований, налаштуємо його. Достатньо вказати віддалений вузол:
Як ми можемо спостерігати на скріншоті вище, сесія встановлена.
Правильно відпрацьований згуртовує призводить до подібної картини:
Типово, протокол не включено у версії Windows RDP. Так що вам слід його попередньо включити
Посилання
www.metasploit.com - Офіційний сайт Метасплоїта
www.offensive-security.com/metasploit-unleashed/Main_Page - Офіційна документація з metasploit
www.rapid7.com/products/metasploit/editions-and-features.jsp - порівняння версій metasploit
www.exploit-db.com - Найбільша в мережі база паблік експлоїтів
www.offensive-security.com/metasploit-unleashed/Meterpreter_Basics - Документація Meterpreter
github.com/darkoperator/MSF-Installer - Скрипт автоматичного встановлення metasploit
community.rapid7.com/docs/DOC-2100 - Докладніші параметри metasploit (linux)
Original: Pentest Magazine Journal.
