Metasploit Framework (MSF) – безкоштовне рішення для тестування можливості несанкціонованого проникнення в комп’ютерну систему з відкритим вихідним кодом Rapid7. Використання MSF варіюється від систем захисту від проникнення до вивчення вразливих точок, що представляють реальну загрозу. Metasploit усуває необхідність написання окремих експлойтів, тим самим заощаджуючи користувачам час і зусилля.
Програма представляє набір шелл-кодів, інструментів фаззинга, корисних навантажень і кодувальників, об’єднаних в єдину платформу. Вона доступна на платформах Linux, Windows, OS X. Її головна мета – перевірити комп’ютерну захист організації, створюючи штучні атаки, провокуючи систему, щось на кшталт «порушити, захищаючи». Metasploit пропонує широкий спектр інструментів і утиліт для таких атак на всі операційні системи, включаючи Android і iOS.
Історія захисту публічного коду
Metasploit був спочатку розроблений і задуманий HD Moore (Мур) – експертом з мережевої безпеки, програмістом з відкритим вихідним кодом і хакером. Він став розробником MSF, пакету програмного забезпечення для тестування на проникнення, а також засновником Metasploit Project.
Мур обіймав посаду головного наукового співробітника в охоронній фірмі Rapid7 в Бостоні, штат Массачусетс, постачальника програмного забезпечення для захисту даних і аналітики, а також хмарних рішень. Він випустив своє перше видання Msf на основі Perl в жовтні 2003 року з загальною кількістю 11 експлойтів і залишався головним архітектором Metasploit Framework аж до звільнення. Він оголосив про свій відхід з Rapid7 в 2016 році, перейшовши в фірму венчурного капіталу.
Багато користувачів внесли свій внесок у розвиток MSF. Основне інтелектуальне вливання було в 2006 році, після чого база поповнилася 150+ експлойта. Потім у 3 версії відбулися серйозні зміни. Вона була перепрограмована в Ruby, стала кроссплатформної й володіла унікальним властивістю – нові версії і модулі легко завантажувалися і додавалися в ПО. У 2009 році Rapid7 придбала весь проект, власником якого є досі. Базова архітектура Metasploit не змінилася, а версії так і залишилися безкоштовними.
Корисна термінологія
Початок роботи з Metasploit стартує після установки програми. ЗА легко допоможе встановити файлову систему і бібліотеки, так як воно інтуїтивно зрозуміло. Metasploit заснований на мові сценаріїв, тому має папку містять сценарії «meterpreter» та інші, необхідні платформою. MSF можна отримати через GUI, а також версію командного рядка.
Загальні терміни:
Є і інші мережеві і системні команди, які потрібно вивчити для успішної роботи з ПЗ. Захоплення натискання клавіш легко виконується за допомогою набору команд інтерфейсу «stdapi». Keyscan_start запускає службу, а keyscan_dump показує захоплені натисканням клавіші.
Графічні інтерфейси
Новий графічний інтерфейс для Metasploit був доданий ScriptJunkie в репозиторій SVN. Перша версія розроблена у таких рамках, що фреймворк – це функціональність і довговічність. Новий графічний інтерфейс є мультиплатформенним і заснований на Java. Проект Netbeans розміщений в каталозі external / source / gui / msfguijava / для тих, хто хоче зробити свій внесок і має навички роботи з Java і користувацькими інтерфейсами. GUI можна запустити, викликавши скрипт «msfgui» в базі каталогу MSF.
Metasploit поставляється в різних інтерфейсах:
Модулі Auxiliary, Encoders
Експлойт (Pws) – це метод, за допомогою якого зловмисник використовує уразливість в системі, службах, додатках і завжди супроводжуються корисними навантаженнями. Payload, корисна успішна навантаження – фрагмент коду, що виконується в експлуатованої системи. Після роботи експлойта платформа впроваджує корисну навантаження через вразливість і запускає її у цільовій системі. Таким чином, зловмисник потрапляє всередину системи або може отримати дані з скомпрометованої системи, перед тим як використовувати Metasploit корисну навантаження.
Auxiliary допоміжний модуль надає додаткові функціональні можливості, такі як фаззинг, сканування, реконт, дос-атака та інші. Допоміжне сканування банерів або операційних систем не виконує DOS-атаку на ціль. Він не вводить корисну навантаження, як експлойти, тому не зможе отримати доступ до системи за допомогою цього модуля.
Encoders – кодери використовуються для маскування модулів, щоб уникнути виявлення з допомогою механізму захисту, такого як антивірус, брандмауер або широко застосовується для створення чорного ходу.
Інструкції Shellcode і Listener
Shellcode – набір інструкцій, що використовуються в якості корисного навантаження при експлуатації, написана на асемблері. У більшості випадків командна оболонка або оболонка Meterpreter будуть надані після того, як серія команд буде виконана цільової машиною.
Інструкція «Слухач» прослуховує з’єднання з корисного навантаження, введеної в скомпрометовану систему. Модуль Post, як і випливає з назви, застосовуються для подальшої експлуатації. Після злому заглиблюються в систему або встановлюють в якості центру для атаки на інші системи.
Nop – No Operation, широко відома функція, завдяки процесорів x86, пов’язана з шелл-кодом та інструкціями на машинній мові, запобігає збій програми при використанні операторів переходу в шелл-коді. Nops зациклює інструкції машинного мови з самого початку, якщо вони потрапляють в неприпустиму область пам’яті після видачі оператора переходу і не допускає збій корисного навантаження. Це дуже просунута концепція, і розробник повинен розуміти кодування оболонки, перед тим як користуватися Metasploit з перевагами «nops».
Керівні принципи
Велика частина підтримки Metasploit в співтоваристві з відкритим вихідним кодом надається у вигляді модулів. Вони повинні проходити msftidy.rb і дотримуватися керівних принципів Contributing.md, обидва поширюються з MSF.
Модулі повинні мати чітку і очевидну мету: експлойти призводять до оболонці, поштові до підвищення привілеїв, допоміжні відносяться до категорії «Все інше», але навіть вони обмежені чітко визначеним завданням, наприклад, збиранням інформації для використання. Вони не повинні активувати інші, враховуючи складність настройки кількох корисних навантажень. Такі дії є задачами автоматизації для зовнішнього інтерфейсу, встановлених перед тим, як запустити Metasploit.
Модулі відмови в обслуговуванні повинні бути асиметричними і, принаймні, мати деякі цікаві особливості. Якщо це порівняти з синфлудом, то не повинно бути включено. Якщо це порівняти з Baliwicked, то, навпаки, повинно бути включено. Модулі, slowloris, включаються з певним обгрунтуванням.
Клієнтські експлойти Windows
MSF призначає кожному користувачеві унікальний SID – ідентифікатор безпеки. Кожен потік має пов’язаний первинний токен, що містить інформацію про таких аспектах, як привілеї і групи. Використовуючи маркер уособлення, процес або потік можуть тимчасово прийняти ідентичність будь-якого іншого юзера. Як тільки витрачений ресурс, потік знову приймає основний маркер.
Схеми атаки по жетонах:
Це може бути виконано інкогніто в консолі «meterpreter», яку встановлюють перед тим як користуватися Metasploit . Застосовують команди, такі як «list_tokens, steal_tokens» і «impersonate_token», для виконання операцій. Якщо мета знаходиться за брандмауером або NAT, зловмисник повинен надати жертві посилання, яка перенаправляє його на свій комп’ютер – примірник Metasploit. Це необхідно, оскільки безпосереднє зондування мети неможливо.
Клієнт і сервер на одній машині
Можна використовувати версію Metasploit російською для Windows, щоб виконувати всі тести на одній машині. Платформа MSF вимагає прав адміністратора для установки Windows. Вона буде встановлена за замовчуванням в папку c: metasploit. AV на комп’ютері буде генерувати попередження при установці MSF в Win, тому створюють правильні виключення.
Створення Windows повільніше, ніж в Linux. Для створення 32-бітних і 64-бітових виконуваних файлів для введення корисного навантаження Meterpreter застосовує MSFVenom (c:metasploitmsfvenom.bat).
Перелік команд:
- «msfvenom.bat –help» покаже параметри;
- «msfvenom.bat –list payloads» покаже корисні навантаження;
- «msfvenom.bat –help-format» покаже всі вихідні формати.
Виконувані формати будуть генерувати програми і сценарії, в той час як формати перетворення будуть просто створювати корисне навантаження. Використовують «msfvenom.bat» для створення 32-bit і 64-бітного виконуваного файлу з корисним навантаженням «meterpreter_reverse_http», який визначають перед тим як користуватися Metasploit. Якщо не вказана платформа і архітектура, «msfvenom» обере їх у залежності від корисного навантаження.
Обробник MSF тепер чекає підключення, запускають «meterpreter-64.exe» з правами адміністратора. Після запуску meterpreter-64.exe підключиться до обробника і буде чекати інструкцій.
Інструмент тестування безпеки
MSF є програмною платформою для розробки, тестування та виконання експлойтів. Вона може використовуватися для створення інструментів безпеки і застосування модулів, а також в якості системи на проникнення для Android.
Команди, необхідними для виконання:
У Metasploit команда use використовує конкретну модель фреймворка. У цьому випадку потрібен експлойт «multi / handler», який полегшує прослуховування вхідного символ узагальнення з’єднання. Команда «search» в «msfconsole» застосовується для пошуку за ключовим словом. У цій команді знаходять навантаження Android meterpreter.
Поряд з командами «use» і «search», «set» – ще одна команда, використовувана в MSF для встановлення конкретної корисної навантаження для експлойта – «show options», щоб побачити різні вхідні дані.
Установка програми для Android
Metasploit termux – це додаток для Android, що підтримує середовище Linux.
Щоб установити, виконують такі дії:
Огляд веб-інтерфейсу MSF
Веб-інтерфейс на основі браузера містить робочий простір, яке використовують для налаштування проектів та виконання завдань пентестирования і надає навігаційні меню для доступу до сторінок конфігурації модуля. Користувальницький інтерфейс працює в наступних браузерах.
З його допомогою виконується запуск сканування виявлення, запуск експлойта проти мети, створення звіту, настройка системних налаштувань та виконання адміністративних завдань. Кожна має свою власну сторінку конфігурації, яка відображає всі параметри і настройки. В інтерфейсі відображаються поля, необхідні для введення даних, параметри прапорців, які можна включити або відключити в залежності від вимог тесту, і спадні меню.
Сторінка огляду демонструє статистичну інформацію для проекту, таку як кількість виявлених хостів і служб, а також кількість отриманих сеансів і облікових даних. Проект не буде відображати статистику або панель інструментів, поки не буде відсканованим мета або імпортовані дані хоста, після чого відобразиться панель моніторингу, яка надає високорівневий графічну розбивку даних, що зберігаються в проекті і журнал останніх подій.
Обхід антивірусу
Для тестерів на проникнення, деякі антивірусні рішення за замовчуванням не налаштовані на сканування файлів MSI або TMP-файлів, які створюються при виконанні MSI-файли. Використовують «msfconsole» для створення файлу MSI, який буде виконувати корисну навантаження MSF.
Крім того, можна згенерувати MSI-файл за допомогою сценарію «msfvenom ruby», який поставляється разом з Metasploit: msfvenom -p windows/adduser USER=Attacker PASS=Attacker123! -f msi > evil.msi.
Копіюють файл «evil.msi» в цільову систему і запускають установку MSI з командного рядка, щоб виконати корисну навантаження Metasploit. З точки зору тесту на проникнення, використання параметра «/ quiet» зручно, оскільки воно пригнічує повідомлення, які звичайно відображаються користувачу.
Перевірте антивірусні журнали, щоб побачити, була визначена корисна навантаження. Можна також перевірити, чи була виконана корисне навантаження, і додати користувача «Атакуючий». Якщо інформація про нього повертається, то корисна навантаження виконана успішно.
Тестування уразливості
Сканер уразливості схожий на інші типи сканерів – наприклад, сканери портів допомагають захистити мережу і системи в ній. Метою таких перевірок є виявлення будь-яких слабких місць і використання результатів для вирішення проблем до того, як це зроблять зловмисники. Поширені проблеми в процесі сканування, включають виявлення переповнення буфера, непатентована програмне забезпечення, проблеми мови структурованих запитів (SQL) і інші. Те, скільки сканер виявляє, залежить від самого програмного забезпечення, деякі сканери набагато більш агресивні в скануванні, виявляючи відсутні виправлення або помилки конфігурації, в той час як інші просто вказують юзеру правильний напрямок.
Metasploit виходить за рамки звичайних сканерів вразливостей, він дає можливість розробляти власні експлойти і механізми доставки. Ідея полягає в тому, що в тих випадках, коли інші методи засновані на відомих проблеми, Msf дозволяє розробляти свої з метою забезпечення більшої гнучкості в скануванні, а також у дослідженнях.
Щоб запустити функцію сканера, виконують інструкцію по застосуванню Metasploit:
Таким чином, MSI пропонує безліч інформації про безпеку. Це не просто експлойти, це повна структура мережевої безпеки. В даний час в немає недоліку в інструментах. Розширені можливості Metasploit дозволяють адміністраторам сканувати широкий спектр мережевих пристроїв і повідомляти про знайдені вразливості або відповідним невірним налаштувань безпеки.