Статья Metasploit Exploitation Framework и searchsploit — как искать и как использовать эксплойты
Metasploit Exploitation Framework — это инструмент для тестирования на проникновение. Он содержит большую базу эксплойтов, позволяет использовать их прямо из Metasploit. Существует две версии Metasploit, в этом уроке я рассматриваю бесплатную версию.
searchsploit — это инструмент для поиска эксплойтов. Содержит базу, по моим наблюдениям, более обширную, чем Metasploit. Но не содержит функции использования эксплойтов.
На всякий случай, разберёмся с терминологией. Эксплойт – это готовая программа, которая, используя конкретную уязвимость, автоматизирует процесс проникновения или повышения прав или другое несанкционированное действие, которое является следствием уязвимости.
Обе программы не сложны, но нужно знать, что и как там делать. Обе эти программы включены в Kali Linux «из коробки». Поэтому, возможно, вас также заинтересуют статьи:
- Как запустить Metasploit Framework в Kali Linux
- Как установить Kali Linux: подробная инструкция для установки на компьютер и в виртуальную машину
Я буду рассматривать работу с этими программами в Kali Linux, но на самом деле, эти утилиты можно установить на любой Linux.
Это программа только для поиска известных эксплойтов. Чтобы вывести справку по ней, наберите в командной строке:
Всё просто как 5 копеек:
Ключ -c для выполнения чувствительного к регистру поиска.
Ключ -v для подробного вывода, линии с описанием могут переполнять их колонки.
На мой взгляд, обе опции не несут ничего интересного. Для поиска просто набираете searchsploit и ключевые слова (можно несколько), разделённые пробелом:
Думаю, идея понятна. Можете искать по конкретным приложениям (и их версиям), операционным системам, плагинам и т. д.
Давайте посмотрим внимательно на вывод: есть файлы следующих типов: .c, .pl, .txt, .sh, .php, .rb, .py, .zip, .java, .asm, .htm и др.
Файлы с расширением .txt можно только читать — открывайте его любым блокнотом и читай об уязвимости. Содержимое этих файлов, обычно, следующее: описание уязвимости, пример использования, источник, информация о подверженных уязвимости версиях и т. д.
Файлы с расширением .rb написаны на языке Ruby, запускать их нужно так:
ruby + пробел + расположение файла.
Некоторые файлы .rb выдернуты из Metasploit. Если при обычном запуске программа жалуется на отсутствие чего-то, а в коде программы встречается строка
то самый простой способ запуска — найти этот же плагин в Metasploit и запустить его оттуда
Файлы .c нужно компилировать.
Файлы .php запускать из командной строки. При чём если Ruby может выводить диалоговые окна для ввода данных, то в PHP нужно сразу задавать необходимые аргументы в командной строке через пробелы после имени файла (ну или прописывать в коде скрипта, если это предусмотрено).
Файлы .pl написаны на языке Perl, перед именем файла, для запуска, нужно ставить perl. Аргументы передаются в командной строке (или вписываются в исходный код) как и с PHP.
Думаю, с поиском всё предельно просто. С конкретным применением — зависит от конкретного эксплойта. Переходим к Metasploit.
Программа Metasploit расположена в меню в двух местах. Самый быстрый способ — это найти её среди 10 самых популярных приложений. Там она называется Metasploit Framework. Запуск каждый раз занимает какое-то время, поэтому просто ждём:
Если программа пишет вам что-то про базу данных и про медленный поиск, то воспользуйтесь этой инструкцией. А также можете вручную пересобрать кэш:
Расширьте окно терминала, как это сделал я, иначе ничего непонятно.
В выводе должно быть всё понятно: первый столбец — расположение эксплойта, второй — дата, третий — ранг (насколько хороший среднестатистический результат), четвёртый — краткое описание.
Думаю, хакеры не любят WordPress за его автообновления, т. к. все известные уязвимости протухают в первый же день.
Я выбрал, например, этот:
Нужно скопировать его расположение — exploit/unix/webapp/wp_downloadmanager_upload
И теперь набираем команду use и после пробела расположение эксплойта.
(работает для всех эксплойтов — отображает варианты настойки).
Как минимум, нам нужно задать удалённый хост. Все настройки делаются через команду set
В данном эксплойте можно больше ничего не менять. Но обратите внимание на TARGETURI. В отдельных эксплоитах, например, для phpMyAdmin, этот параметр изначально задан как phpmyadmin и если целевой скрипт находится в другом каталоге, то эксплойт просто не найдёт адрес.
Для начала выполнения эксплойта наберите
Думаю, общие принципы работы понятны.
Порекомендую ещё одну команду, чтобы было понятно, в какую сторону нужно копать, для чего искать эксплойты, какие порты открыты и для каких служб и т. д. Это команда nmap. Применять так:
Ну и, конечно, для того чтобы знать, какие эксплойты использовать, нужно знать работающие на целевой машине программы и их версии. Определённую помощь в этом может оказать вам статья “Обзор разделов инструментов Kali Linux 1.0.9a. Часть 2. Инструменты для сбора информации“.
Скажу честно, базы эксплойтов меня разочаровали: я слежу за обновлениями самых популярных веб-приложений (phpMyAdmin, WordPress, Drupal и т. д.) и за последние месяцы в списках изменений мелькало достаточно много закрытых уязвимостей. Под большинство из них я не нашёл эксплойтов. Возможно, это касается только эксплойтов для веб-приложений. Вполне возможно, что для операционных систем и программ всё намного интереснее. Отсутствие в паблике эксплойтов на свежие версии популярных веб-приложений я связываю с тем, что: а) не так уж и просто потенциальную уязвимость раскрутить, хотя бы, до работающего концепта; б) самые интересные эксплойты собраны в закрытых базах, возможно, доступных за плату или только для определённого круга лиц.
Источник
Сканируем сеть на предмет наличия уязвимости CVE-2019-0708 (BlueKeep) с помощью модуля Metasploit и утилиты rdpscan в ОС Kali Linux 2019.2
Ранее мы писали о выпущенных обновлениях для закрытия уязвимости CVE-2019-0708 Remote Desktop Services Remote Code Execution Vulnerability. Развёртывание этих обновлений не вызывает само по себе какой-то сложности. Однако, учитывая серьёзность уязвимости, будет совсем не лишним провести дополнительное сканирование всех своих сетей на предмет выявления всё ещё уязвимых хостов. Для проведения подобных проверок есть разные методики и инструменты. В этой заметке мы рассмотрим то, как выполнить сканирование сетей с помощью scanner-модуля из состава комплекса Metasploit, поставляемого в специальном дистрибутиве ОС Kali Linux 2019.2. Помимо этого, в этой же ОС, мы выполним сборку и использование дополнительной утилиты сканирования rdpscan.
Разворачиваем Kali Linux
Те, кто до сих пор не знаком со специализированным дистрибутивом ОС Kali Linux, могут получить базовую информацию об этой сборке из статьи Википедии. Для проведения разовых проверок уровня информационной безопасности сетей или отдельной взятых хостов или сервисов с помощью ПО, входящего в состав Kali Linux, можно воспользоваться Live-Boot режимом без установки этой ОС на диск какого-либо компьютера.
В нашем случае для задач тестирования развёрнута выделенная виртуальная машина Hyper-V Gen2 на хосте виртуализации с ОС Windows Server 2012 R2.
Скачать загружаемый образ актуальной версии Kali Linux «без СМС и регистраций» можно с официального сайта проекта: Kali Linux Downloads
Установка Kali Linux на диск виртуальной машины не составит никакого труда для администратора, который уже имел дело с программой установки Linux Debian.
Сразу после установки нам потребуется выпустить систему в Интернет для возможности обновления всех предустановленных пакетов, в число которых входит и интересующий нас комплекс Metasploit. Обновление выполняется стандартным для APT-систем способом:
Разумеется, чтобы обновление пакетов работало, в систему должны быть подключены репозитории Kali Linux:
Возможно также и полное обновление Kali Linux с предыдущих версий, как это описано, например, здесь:
Убедившись в том, что пакетная база системы обновлена, можем переходить к использованию предустановленных в Kali инструментов, например, к интересующему нас комплексу Metasploit.
Используем модуль Metasploit
Входим в интерактивный режим работы со специальной консолью Metasploit:
Данная консоль имеет собственный набор команд и опций. Проверим, какие глобальные опции используются в консоли:
Среди имеющихся опций нас могут заинтересовать опции логирования, выполняемых в консоли действий — ConsoleLogging и SessionLogging. Как видим, в конфигурации по умолчанию эти опции выключены. Включаем логирование консоли и каждой сессий и сохраняем настройки:
Логи консоли по умолчанию сохраняются в домашнем каталоге текущего пользователя в расположении:
/.msf4/logs/console.log . Логи сессий в подкаталоге
После установки глобальных опций логирования лучше завершить сессию командой exit и запустить новую сессию, так как настройки логирования сессий должны начать действовать только для последующих сессий.
После повторного входа проверяем то, что заданные нами ранее настройки логирования включены:
Справедливости ради стоит отметить тот факт, что мой небольшой опыт использования этой консоли в Kali Linux так и не позволил воспользоваться логами сессий. Сессионные логи, не смотря на выставленные опции логирования, так ни разу и не создались. Возможно, это какое-то ограничение данной свободно распространяемой версии Metasploit, а возможно для включения сессионного логирования требуется какое-то дополнительное «шаманство», о котором я просто не знаю.
Как бы там ни было, получить лог работы консоли можно и сторонними средствами. Например, можно использовать логирование SSH-сессии, имеющееся в клиенте PuTTY для Windows, открыв свойства текущего подключения и указав опции логирования сессии.
Логирование процесса сканирования сетей может быть важным для последующей обработки результатов в том случае, если объём сканирования существенен и занимает немало времени. Ведь у администратора не всегда есть возможность наблюдать за длительным процессом сканирования.
Вернёмся к консоли Metasploit и с помощью команды search выполним поиск модуля сканирования уязвимости BlueKeep по её названию командой вида:
В ответ мы получим имя модуля сканирования, который нас интересует.
Чтобы переключиться на этот модуль, выполнима команду use с указанием имени модуля:
Модуль имеет собственный набор опций, получить значение которых можно командой show, находясь на уровне этого модуля:
Как видим, модуль имеет три обязательных опции, две из которых уже определены в конфигурации по умолчанию. Чтобы изменить эти опции, используем команду set. Например, зададим сегмент сети, которую нужно сканировать, и количество потоков сканирования:
Теперь только остаётся запустить процесс сканирования с помощью простой команды:
На консоль будет ведена информация о результатах сканирования и обнаруженных уязвимых хостах:
По окончании процесса сканирования завершаем работу с консолью командой exit, анализируем лог сканирования и принимаем меры по устранению уязвимости обнаруженных хостов.
На этом заметку об описании метода выявления уязвимых хостов можно было бы считать законченной, однако от некоторых коллег поступила информация о том, что были замечены случаи, когда метод выявлял не все уязвимые хосты. Поэтому в контексте нашей задачи мы рассмотрим ещё один инструмент для сканирования сетей на выявление уязвимости BlueKeep — утилиту rdpscan.
Собираем и используем утилиту rdpscan
Загрузить актуальную версию уже скомпилированной утилиты rdpscan под операционные системы Windows и macOS можно по ссылке: Github — robertdavidgraham — rdpscan – releases. Однако в нашем случае для задачи сканирования используется выделенная система на базе Kali Linux, поэтому нам потребуется выполнить загрузку и самостоятельную сборку этой утилиты из исходных колов под Linux.
Выполним установку пакетов, необходимых для загрузки исходных кодом и сборки:
В Kali Linux актуальной версии пакеты git и build-essential уже предустановлены, поэтому в нашем случае в систему будет доустановлен только пакет libssl-dev.
Создадим в домашнем каталоге текущего пользователя отдельный подкаталог и загрузим в него исходные коды утилиты rdpscan:
Перейдём в каталог с исходными кодами и вызовем процедуру сборки утилиты:
В нашем случае в процессе сборки появилось предупреждение, однако на конечный результат это не повлияло, и в каталоге сборки появился исполняемый файл утилиты rdpscan.
Посмотрим то, какие опции умеет для работы принимать эта утилита:
Как видим, здесь, также как и в случае с модулем Metasploit, доступна возможность указания TCP-порта, работающего с RDP-протоколом. Также есть возможность загрузки списка сканируемых хостов из файла, и имеются разны варианты полноты вывода информации.
Выполним простой запуск сканирования небольшой сети, выполняемый в 10 потоков:
В результате работы утилиты мы увидим уязвимые хосты, а также хосты, отвечающие на запрос в безопасном режиме.
Чтобы сократить вывод, отображая только хосты с обнаруженной уязвимостью, можем использовать вызов следующего вида:
Если требуется сохранить результаты работы утилиты в лог-файл для последующего анализа, то можем просто перенаправить вывод утилиты в файл:
Ну и опять же, анализируем лог сканирования и безотлагательно принимаем меры по устранению уязвимости обнаруженных хостов.
В качестве заключения могу отметить, что из моего скромного опыта использования выше обозначенного модуля сканирования BlueKeep в Metasploit и утилиты rdpscan, оба инструмента выполнили свою задачу с одинаковым результатом. Поэтому выбор инструмента сканирования в данном случае — дело сугубо субъективное.
Источник