Взаимодействие сканеров уязвимостей с Metasploit. Часть 1
Мы начинаем цикл обучающих статей, посвященных взаимодействию сканеров уязвимостей с Метасплоитом.
Требуемое программное обеспечение: Kali Linux.
Необходимые знания: опыт работы с консолью Linux-систем (в частности, дистрибутивом Kali Linux) и консолью Метасплойта.
Большинство атак основано на уязвимостях в программном обеспечении или ошибках конфигурации. В связи с этим рекомендуемыми мерами для обеспечения информационной безопасности организации являются регулярное сканирование системы на наличие уязвимостей и тестирование на проникновение.
Сканирование на наличие уязвимостей позволяет проверить диапазон указанных IP-адресов на возможные проблемы в системе безопасности, предоставляя пентестерам информацию о вероятных векторах атак. При работе со сканерами уязвимостей нужно помнить, что они могут ошибаться и выдавать ложную или неправильную информацию.
Как известно, Metasploit Framework – это инструмент для создания, тестирования и использования эксплойтов. Но, благодаря поддержки модулей и плагинов, он вполне может сгодиться и для поиска уязвимостей.
В первой части мы рассмотрим модули, встроенные в Metasploit, которые позволяют выявить наиболее распространенные бреши в системах безопасности.
SMB Login Check
Модуль SMB Login Check подключается по протоколу SMB к заданному диапазону ip-адресов и определяет, можно ли по связке имя пользователя / пароль получить доступ к цели.
Подгружаем модуль
use auxiliary/scanner/smb/smb_login
задаем необходимые настройки и запускаем его
Следует иметь ввиду, что такое сканирование не останется незамеченным, т.к. при каждой неудачной попытке аутентификации создается соответствующая запись в журнале Windows. В дальнейшем успешные результаты сканирования могут быть использованы в модуле эксплойта windows/smb/psexec для создания Meterpreter-сессии.
VNC-аутентификация
VNC-сканер будет искать VNC-сервера без парольной аутентификации. Некоторые сисадмины пренебрегают требованиями по обеспечению информационной безопасности и не устанавливают пароли для установки соединения, что обнаруживается в процессе сканирования. Для использования VNC-сканера сначала нужно выбрать модуль auxiliary/scanner/vnc/vnc_none_auth
задать настройки, а затем его запустить
По окончанию сканирования выведется результат со списком уязвимых VNC-серверов.
Веб-сканер WMAP
WMAP — многофункциональный веб-сканер по поиску уязвимостей, созданный на основе SQLMap. Благодаря взаимодействию с Metasploit, мы можем проводить сканирование веб-приложений прямо из фреймворка.
Для начала воспользуемся встроенным модулем Metasploit Web Crawler – поисковым роботом, который позволяет определить структуру сайта и работает вкупе с wmap’ом.
use auxiliary/scanner/http/crawler
укажем адрес сайта и его стартовую страницу (оставил значение по умолчанию). Теперь модуль готов к работе.
Далее загрузим плагин wmap
load wmap
На этом этапе сканирования у нас уже имеется информация о структуре сайта, которая сохранилась в нашей базе данных. Просмотреть её можно с помощью команды wmap_site –s [id], где id – номер цели в списке wmap_sites –l
wmap_site –s 0
Теперь определимся с целью
wmap_targets -t 192.168.42.129
Здесь можно задать как диапазон ip-адресов, так и указать url, ведущий на определенный раздел сайта.
Автоматический поиск уязвимостей запускается командой wmap_run
Посмотрим список модулей, которые доступны для сканирования нашей цели
wmap_run –t
Можно запустить как конкретный модуль, указав к нему путь, например, wmap_run -e auxiliary/scanner/http/robots_txt, так и запустить все перечисленные модули сразу (что мы и сделаем)
wmap_run -e
После завершения сканирования, информация об обнаруженных уязвимостях сохранятся в базе данных WMAP’а, Посмотрим, что же он там нашел
wmap_vulns –l
Источник
Сканируем сеть на предмет наличия уязвимости 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, оба инструмента выполнили свою задачу с одинаковым результатом. Поэтому выбор инструмента сканирования в данном случае — дело сугубо субъективное.
Источник