Как удалить metasploit framework
This is a guide for setting up a developer environment to contribute modules, documentation, and fixes to the Metasploit Framework. If you just want to use Metasploit for legal, authorized hacking, we recommend instead you:
- Install the open-source Omnibus installer, or
- Use the pre-installed Metasploit on Kali Linux or Parrot Linux.
If you want to contribute to Metasploit, start by reading our CONTRIBUTING.md, then follow the rest of this guide.
- You have installed an apt-based Linux environment, such as Ubuntu or Kali.
- You have created a GitHub account and associated an public ssh key with it.
- You have familiarity with Git and Github, or have completed the Github bootcamp.
- For optional database and REST API functionality, you will need regular user account that is not root .
This guide has details for setting up both Linux and Windows.
- Open a terminal on your Linux host and set up Git, build tools, and Ruby dependencies:
If you are running a Windows machine
- Install chocolatey
- Install Ruby x64 with DevKit
- Install pcaprub dependencies from your cmd.exe terminal:
Set up your local copy of the repository
You will need to use Github to create a fork for your contributions and receive the latest updates from our repository.
Login to Github and click the "Fork" button in the top-right corner of the metasploit-framework repository.
Create a git directory in your home folder and clone your fork to your local machine:
If you encounter a "permission denied" error on the above command, research the error message. If there isn't an explicit reason given, confirm that your Github SSH key is configured correctly. You will need to associate your public SSH key with your GitHub account, otherwise if you set up a SSH key and don't associate it with your GitHub account, you will receive this "permission denied" error.
To receive updates, you will create an upstream-master branch to track the Rapid7 remote repository, alongside your master branch which will point to your personal repository's fork:
- Configure your Github username, email address, and username. Ensure your user.email matches the email address you registered with your Github account.
- Set up msftidy to run before each git commit and after each git merge to quickly identify potential issues with your contributions:
Linux distributions do not ship with the latest Ruby, nor are package managers routinely updated. Additionally, if you are working with multiple Ruby projects, each one has dependencies and Ruby versions which can start to conflict. For these reasons, it is advisable to use a Ruby manager.
You could just install Ruby directly (eg. sudo apt install ruby-dev ), but you may likely end up with the incorrect version and no way to update. Instead, consider using one of the many different Ruby environment managers available. The Metasploit team prefers rbenv and rvm (note that rvm does require a re-login to complete).
Regardless of your choice, you'll want to make sure that, when inside the ~/git/metasploit-framework directory, you are running the correct version of Ruby:
If the two versions don't match, restart your terminal. If that does not work, consult the troubleshooting documentation for your Ruby environment manager. Unfortunately, troubleshooting the Ruby environment is beyond the scope of this document, but feel free to reach out for community support using the links at the bottom of this document.
Before you run Metasploit, you will need to update the gems (Ruby libraries) that Metasploit depends on:
If you encounter an error with the above command, refer to the bundle output and search for the error message along with the name of the gem that failed. Likely, you'll need to apt get install a dependency that is required by that particular gem.
Congratulations! You have now set up a development environment and the latest version of the Metasploit Framework. If you followed this guide step-by-step, and you ran into any problems, it would be super great if you could open a new issue so we can either help you, or, more likely, update the docs.
Optional: Set up the REST API and PostgreSQL database
The following optional section describes how to manually install PostgreSQL and set up the Metasploit database. Alternatively, use our Omnibus installer which handles this more reliably.
- Confirm that the PostgreSQL server and client are installed:
Ensure that you are not running as the root user.
Initialize the Metasploit database:
If you receive an error about a component not being installed, confirm that the binaries shown are in your path using the which and find commands, then modifying your $PATH environment variable. If it was something else, open a new issue to let us know what happened.
If the msfdb init command succeeds, then confirm that the database is accessible to Metasploit:
Congratulations! You have now set up the Metasploit Web Service (REST API) and the backend database.
Optional: Tips to speed up common workflows
The following section is optional but may improve your efficiency.
Making sure you're in the right directory to run msfconsole can become tedious, so consider using the following Bash alias:
Consider generating a GPG key to sign your commits. Read about why and how. Once you have done this, consider enabling automatic signing of all your commits with the following command:
Developers tend to customize their own git aliases to speed up common commands, but here are a few common ones:
If you plan on working with other contributor's pull requests, you may run the following script which makes it easier to do so:
After running the above script, you can checkout other pull requests more easily:
If you're writing test cases (which you should), then make sure rspec works:
You should see over 9000 tests run, mostly resulting in green dots, a few in yellow stars, and no red errors.
We're excited to see your upcoming contributions of new modules, documentation, and fixes! Check out our wiki documentation and, if you're looking for inspiration, keep an eye out for newbie-friendly pull requests and issues. Please submit your new pull requests and reach out to us on Slack for community help.
Finally, we welcome your feedback on this guide, so feel free to reach out to us on Slack or open a new issue. For their significant contributions to this guide, we would like to thank @kernelsmith, @corelanc0d3r, and @ffmike.
This is a list of common Pro Console commands that you can use as a quick reference. If something is not listed here, type help in the console for a list of all options.
Launch Metasploit
The following commands launch and quit Metasploit.
Launch on Windows
Launch on Linux
See Available Commands
You can prepend help to any command to see a list of options available.
Pro Help Page
These are all the options available from $ msf > help .
The following commands allow you to control the logging from Metasploit Pro.
Logging Input and Output from the Console
Use the ConsoleLogging option to store information that the Pro Console inputs and outputs into a log.
Changing the Log Verbosity
Use the LogLevel option to set the verbosity of the logs. Set the value between 1 and 5.
Logging Input and Output for a Session
Use the SessionLogging option to store information that msfconsole inputs and outputs about a session into a log.
Users
The following commands relate to user management.
Change the Current User
Use the pro_user command and supply the user name as the argument to change the current user.
View a List of Users
Use the pro_user command and the -l option to view a list of users.
Running Services
To start Metasploit:
To start a specific service:
/opt/metasploit/ctlscript.sh start worker
Chain Commands
Use the argument -- -x to chain commands together. This works only when launching Metasploit Pro. The argument will not work in an existing Metasploit Pro session. Use ; to chain the commands together.
If you are missing the extra two dashes, -- -x , the command fails with the error invalid option: -x (OptionParser::InvalidOption) .
Exploits
These commands are related to automated exploits and manual exploits.
Automated Exploits
Automated exploits choose the exploit based on host and vulnerability data.
Run an automated exploit Pass in the host IP address as the option.
Define a Host Blacklist for an Automated Exploit Use the -b option to define a blacklist.
Define a Port Blacklist for an Automated Exploit Use the pb option to specify a list of ports to exclude.
Perform a Dry Run of an Automated Exploit Use the -d option to perform a dry run of the automated exploit.
Set the Application Evasion Level for an Automated Exploit Use the -ea option to set the evasion level for an automated exploit. You can assign an evasion level of 'none', 'low', 'medium', and 'high'.
Set the TCP Evasion Level
Use the -et option to set the TCP evasion level. You can assign an evasion level of 'none', 'low', 'medium', and 'high'.
Set the Payload Connection Type
Use the -m option to set the payload type for an automated exploit. The payload types are auto, bind, and reverse
Set the Minimum Rank
Use the -r option to set the payload type for an automated exploit. The minimum rank settings are 'low', 'average', 'normal', 'good', 'great', and 'excellent'.
Manual Exploits
Manual exploits are exploits that you configure to run against a target.
Search Use the search command along with the search operator to search for a module
Show All Exploit Modules
Use the show command to view a list of the exploits that are available. This command will take a long time since there are thousands of exploit modules available.
Load a Module Use the use command to load an exploit module.
Reset the command prompt Use the back command to reset the prompt and to remove the module that is currently loaded.
Show Module Options Use the show command to view a list of options that are available for a particular module.
Show Required Options To find out what options are required, you can use the show missing command.
Show Advanced Options
Use the show command to view a list of advanced options that are available for an exploit module.
Set Options Use the set command to configure options for a module. You need to specify the option name and the option value, as shown below:
Show Module Targets Use the show targets command to view a list of potentially vulnerable targets.
Check Target Vulnerability Use the check command to determine if a target is vulnerable to a particular exploit.
Set the Exploit Target
Use the set target command to specify a target for the exploit.
Run an Exploit Use the exploit or run command to run an exploit module.
Reload an Exploit
Use the reload command to refresh the metadata and methods for an exploit.
The following commands are related to hosts.
Discovery Scan
Use the pro_discover command to perform a discovery scan.
Run a Credentialed Scan
Use the following command if you have SMB credentials that you want to specify for Windows hosts.
- -sd option defines the SMB domain.
- -su option specifies the user name.
- -sp option specifies the password.
View Hosts
Use the hosts command to view a list of hosts that the database contains.
Add a Host
Use the hosts command and the -a option to add a host to the current workspace.
Delete a Host
Use the hosts command and the -d option to delete a host from the current workspace:
Connect to a Host
Use the connect command to communicate with a host. You must supply the host address and port that you want to connect to.
View Hosts That Are Up
Use the hosts command and the -u option to view a list of hosts that are up.
Projects
The following commands are related to managing projects in Metasploit Pro.
Create a Project
Use the pro_project command and the -a option to create a project. The project that you create becomes the current project.
View the Current Project
Use the pro_project command to view the current project.
Change Project
Use the pro_project command to change the current project
If you need to specify a project that contains spaces, you must enclose the project name in quotes. For example, use pro_project “IT Dept” .
Delete a Project
Use the -d option to delete a project. This deletes the project, which includes the hosts, credentials, evidence, and any other data related to the project.
Rapid7 provides open source installers for the Metasploit Framework on Linux, Windows, and OS X operating systems. The Metasploit installer ships with all the necessary dependencies to run the Metasploit Framework. It includes msfconsole and installs associated tools like John the Ripper and Nmap.
Prerequisites and Requirements
The following sections provide information on the prerequisites and requirements that the system must meet before you can install the Metasploit Framework.
Supported Operating Systems and Minimum System Requirements
Disable Anti-virus Software
Anti-virus software detects the Metasploit Framework as malicious and may cause problems with the installation and runtime of Metasploit Framework. The Metasploit Framework exploits the same vulnerabilities that the anti-virus software detects. Therefore, when you install the Metasploit Framework, the anti-virus software interrupts the installation process and alerts you of the security risks that may infect the system.
If you intend to use the Metasploit Framework, you should disable any anti-virus software before you install Metasploit Framework. If you cannot disable the anti-virus software, you must exclude the Metasploit directory from the scan.
Disable Firewalls
Local firewalls, including Windows Firewall, interfere with the operation of exploits and payloads. If you install the Metasploit Framework from behind a firewall, the firewall may detect the Metasploit Framework as malware and interrupt the download.
Please disable the local firewalls before you install or run Metasploit Framework. If you must operate from behind a firewall, you should download the Metasploit Framework from outside the network.
Obtain Administrator Privileges
To install the Metasploit Framework, you must have administrator privileges on the system that you want to use to run the framework.
Installation
When you launch the installer file, the installer prompts you to enter the following configuration options:
- The destination folder on the hard drive or external disk where you want to install the Metasploit Framework.
If you are a Kali Linux 2.0 user, Metasploit Framework is already pre-installed and updated monthly. You can use this installer if you want to receive updates more frequently.
Rapid7 no longer supports the pre-installed Metasploit Community edition on Kali Linux 1.0.
Installing the Metasploit Framework on Windows
The installation process can take 5-10 minutes to complete. When the installation completes, click the Finish button.
To launch msfconsole after the installation completes, run the following from the command line:
Installing the Metasploit Framework on Linux
- Open the terminal.
- Enter the following command to add the build repository and install the Metasploit Framework package:
After the installation completes, open a terminal window and type the following to start msfconsole:
The prompt asks you if you want to use and set up a new database. Type y or yes to run the initial configuration script to create the initial database.
If all goes well, the console starts and displays the following:
To check to see if the database was set up, run the following command:
If the Metasploit Framework successfully connected to the database, the following status displays:
Installing Metasploit Framework on OSX
Managing the Database
If you did not opt to create a database when msfconsole loaded for the first time, you can use the msfdb script to configure postgresql to run as your local user and store the database in ~/.msf4/db/ .
To enable and start the database, run the following command:
After the database starts, you can use any of the following commands to manage the database:
Тестирование на проникновение позволяет ответить на вопрос, как кто-то со злым умыслом может вмешаться в вашу сеть. Используя инструменты пентеста, «белые хакеры» и профессионалы в области безопасности могут на любом этапе разработки или развертывания исследовать сети и приложения на предмет недостатков и уязвимостей путем взлома системы.
Одним из таких средств пентеста является проект Metasploit. Этот фреймворк с открытым исходным кодом, созданный на Ruby, позволяет проводить тестирование с помощью командной строки или графического интерфейса. Его можно расширить, создавая собственные надстройки с поддержкой нескольких языков.
Что такое Metasploit Framework и как он используется?
Metasploit Framework — это мощнейший инструмент, который могут использовать как киберпреступники, так и «белые хакеры» и специалисты по проникновению для исследования уязвимостей в сетях и на серверах. Поскольку это фреймворк с открытым исходным кодом, его можно легко настроить и использовать на большинстве операционных систем.
С помощью Metasploit пентестеры могут использовать готовый или создать пользовательский код и вводить его в сеть для поиска слабых мест. В качестве еще одного способа поиска угроз, после идентификации и документирования недостатков, эту информацию можно использовать для устранения системных недостатков и определения приоритетности решений.
Краткая история Metasploit
Проект Metasploit был создан на языке Perl в 2003 году Эйч Ди Муром (H.D. Moore) при содействии основного разработчика Мэтта Миллера для использования в качестве портативного сетевого инструмента. Он был полностью переведен на язык Ruby к 2007 году, а в 2009 году лицензию приобрела Rapid7, и теперь этот инструмент остается частью ассортимента этой бостонской компании, специализирующейся на разработке систем обнаружения вторжений и инструментов эксплуатации уязвимостей систем удаленного доступа.
Этот фреймворк стал основным инструментом разработки эксплойтов и устранения уязвимостей. До Metasploit пентестерам приходилось выполнять все проверки вручную, используя различные инструменты, которые могли поддерживать или не поддерживать тестируемую платформу, а также вручную писать собственный код и внедрять его в сети. Дистанционное тестирование было чем-то экстраординарным, и это ограничивало работу специалиста по безопасности собственным регионом и местными компаниями, а организациям приходилось тратить целые состояния на собственных ИТ-консультантов или специалистов по безопасности.
Кто использует Metasploit?
Благодаря широкому спектру применений и доступному открытому исходному коду Metasploit используется самыми разными людьми, от профессионалов кибербезопасности до хакеров. Metasploit полезен для всех, кому нужен простой в установке и надежный инструмент, выполняющий свою работу независимо от платформы или языка. Это программное обеспечение пользуется популярностью у хакеров и широко доступно, что мотивирует специалистов по безопасности изучать платформу Metasploit, даже если сами они ей не пользуются.
Современная версия Metasploit содержит свыше 1677 эксплойтов для более 25 платформ, включая Android, PHP, Python, Java, Cisco и другие. Фреймворк также содержит около 500 единиц информационного наполнения («пейлоад»), среди которых вы найдёте:
- Пейлоады для командной оболочки — позволяют пользователям запускать сценарии или случайные команды на хосте.
- Динамические пейлады — позволяют тестировщикам генерировать уникальные пейлоады для обхода антивирусного программного обеспечения.
- Пейлоады Meterpreter — позволяют пользователям перехватывать управление монитором устройства с помощью контроллера видеопамяти, захватывать сеансы, а также скачивать или загружать файлы.
- Статические пейлоады — позволяют устанавливать переадресацию портов и обмен данными между сетями.
Сфера применения и преимущества Metasploit
Все, что вам нужно для использования Metasploit после его установки, — это получить информацию о цели либо путем сканирования портов, либо путем получения цифрового отпечатка операционной системы, либо с помощью сканера уязвимостей, чтобы найти способ проникнуть в сеть. Затем остается просто выбрать эксплойт и полезную нагрузку. В этом контексте эксплойт — это средство для выявления слабости в вашей сети или системе и использования этой уязвимости для получения доступа.
Платформа состоит из различных моделей и интерфейсов, которые включают: msfconsole на базе библиотеки curses, msfcli для всех функций msf из терминала или командной строки, Armitag — инструмент с графическим интерфейсом на Java, который используется для интеграции с MSF, а также веб-интерфейс сообщества Metasploit, поддерживающий удаленный пентест.
«Белые хакеры» и специалисты по пентесту, пытающиеся определить уязвимости или извлечь уроки из атак киберпреступников, должны понимать, что последние не афишируют своих действий. Киберпреступники отличаются скрытностью и любят работать через VPN-туннели, таким образом маскируя свой IP-адрес, а многие из них используют выделенный виртуальный сервер, чтобы избежать прерываний, которыми обычно страдают многие провайдеры виртуального хостинга. Эти два инструмента конфиденциальности также будут полезны для «белых хакеров», которые намереваются вступить в мир эксплойтов и пентеста с помощью Metasploit.
Как упоминалось выше, Metasploit предоставляет вам эксплойты, пейлоады, вспомогательные функции, кодировщики, перехватчики, шелл-код, а также послеэксплойтный код и NOP.
Вы можете получить сертификат специалиста Metasploit Pro онлайн, чтобы стать сертифицированным пентестером. Проходной балл для получения сертификата — 80%, а экзамен занимает около двух часов и разрешается пользоваться справочной литературой. Его стоимость составляет 195$, и после успешного прохождения вы сможете распечатать свой сертификат.
Перед экзаменом рекомендуется пройти учебный курс Metasploit и иметь профессиональные или рабочие знания в следующих областях:
- ОС Windows и Linux;
- сетевые протоколы;
- системы управления уязвимостями;
- основные концепции пентеста.
Как установить Metasploit
Metasploit доступен в виде программы установки с открытым исходным кодом, которую можно скачать с сайта Rapid7. Минимальные системные требования включают наличие последней версии браузера Chrome, Firefox или Explorer, а также
Операционная система:
- Ubuntu Linux 14.04 или 16.04 LTS (рекомендуется) ;
- Windows Server 2008 или 2012 R2;
- Windows 7 SP1+, 8.1 или 10;
- Red Hat Enterprise Linux Server 5.10, 6.5, 7.1 или новее.
Оборудование
- процессор 2 ГГц;
- минимум 4 ГБ ОЗУ (рекомендуется 8ГБ);
- минимум 1 ГБ дискового пространства (рекомендуется 50ГБ).
После установки при запуске вы столкнетесь со следующими вариантами:
- создание базы данных в /Users/joesmith/.msf4/db;
- запуск Postgresql;
- создание пользователей базы данных;
- создание исходной схемы базы данных.
Учимся использовать Metasploit: советы
Легкость изучения Metasploit зависит от вашего знания Ruby. Однако, если вы знакомы с другими скриптовыми языками и языками программирования, например Python, перейти к работе с Metasploit не составит большого труда. В остальном это интуитивно понятный язык, который легко выучить на практике.
Поскольку этот инструмент требует от вас отключения вашей собственной системы защиты и позволяет генерировать вредоносный код, вы должны знать о потенциальных рисках. Если возможно, установите эту программу в отдельной системе, а не на вашем личном устройстве или компьютере, содержащем потенциально конфиденциальную информацию или имеющем доступ к такой информации. При пентесте с Metasploit вам следует использовать отдельное рабочее устройство.
Зачем нужно изучать Metasploit
Эта платформа необходима всем аналитикам безопасности или пентестерам. Это важное средство для обнаружения скрытых уязвимостей с помощью различных инструментов и утилит. Metasploit позволяет поставить себя на место хакера и использовать те же методы для разведки и проникновения в сети и серверы.
Вот схема типичной архитектуры Metasploit:
Пошаговая инструкция по Metasploit
Мы начнем краткое руководство по эксплойтам, предполагая, что ваша система и ОС соответствуют базовым требованиям. Чтобы настроить среду тестирования, понадобится скачать и установить Virtualbox , Kali и Metasploitable для создания виртуализированной хакерской машины. Вы можете загрузить и установить Windows XP или выше, чтобы создать третью виртуальную машину для этого эксплойта.
После установки инструментов для тестирования откройте консоль Metasploit. Она выглядит так:
Проще всего ввести в консоли команду help, чтобы отобразился список команд Metasploit и их описания. Это выглядит так:
Первый мощный и полезный инструмент, который вам нужен, — это графический интерфейс Armitage, который позволяет визуализировать цели и рекомендовать наиболее подходящие эксплойты для доступа к ним. Этот инструмент также показывает расширенные функции для более глубокого проникновения и дальнейшего тестирования после того, как было выполнено начальное проникновение с помощью эксплойта. Чтобы выбрать его в консоли, перейдите в Applications — Exploit Tools — Armitage («Приложения» — «Инструменты для эксплойтов» — Armitage).
После того, как на экране появится поле формы, введите хост, номер порта, идентификатор пользователя и пароль. Нажмите Enter после заполнения всех полей, и вы будете готовы к запуску эксплойта.
Ресурсы для изучения Metasploit
Одно из основных достоинств сообщества программного обеспечения с открытым кодом заключается в объединении ресурсов и обмене информацией. Это современное воплощение того, почему был создан интернет. Это средство, способствующее гибкости и дающее безграничные возможности для сотрудничества.
В связи с этим мы предлагаем список ресурсов, которые позволят вам в полной мере реализовать потенциал Matspoit.
Один из лучших ресурсов и первое место, которое вам следует посетить, — это собственная обширная база знаний Metasploit. Там вы найдете руководства для начинающих, метамодули, эксплойты, а также обнаруженные уязвимости и исправления для них. Вы также сможете узнать о различных типах сертификатов Metasploit и о том, как их получить.
Еще один полезный ресурс — Varonis Cyber Workshop. Он предлагает ряд учебных пособий и занятий с экспертами в области кибербезопасности.
Редко кто из экспертов, специализирующихся на тестировании защищенности, сталкивался с ситуацией, когда не смог полностью скомпрометировать сеть в ходе внутреннего тестирования на проникновение. Причем причины успехов этичных хакеров банальны: слабые пароли, отсутствие критичных обновлений безопасности, ошибки конфигурации. Возникает вопрос: если причины незащищенности такие тривиальные, можно ли разработать перечень ключевых проверок, которые мог бы провести системный администратор самостоятельно и есть ли единый инструмент, позволяющий это реализовать? Попробуем разобраться.
В качестве инструмента мы выберем популярный у этичных хакеров Metasploit Framework, который можно установить самостоятельно, а можно уже воспользоваться тем, что есть в составе комплекса «Сканер-ВС» или Kali Linux. Сразу отметим, что в данной статье мы не будем фокусироваться на тестировании безопасности веб-приложений, так как это является отдельным направлением тестирования.
Прежде чем погружаться в решение технических задач, надо разобраться, а что может заинтересовать потенциальных злоумышленников, и как они будут этого добиваться.
Информация, интересующая злоумышленников
Киберзлоумышленники, как правило, руководствуются такими мотивами как непосредственный заработок на успешном взломе (кража финансовых средств, вымогательство, выполнения заказа для заинтересованной стороны) либо собственное любопытство и проверка своих возможностей. Целью может быть все, что позволит либо украсть, либо заработать. Помимо любой системы, используемой организацией, целью могут быть папки на файловых серверах, а также документы на рабочих станциях пользователей.
Зоны повышенного риска
Основными причинами того, что кто-то не поставил обновление безопасности или оставил пароль по умолчанию, является отсутствие ответственного сотрудника и/или надлежащего контроля со стороны руководства.
Исходя из этих причин, можно обозначить следующие болевые точки, которые подтверждаются нашей практикой проведения тестов на проникновение.
- Системы, отданные на поддержку сторонним организациям. Как правило, это бухгалтерские, охранные, технологические системы. Подрядчики не заботятся об их безопасности, так как это не их сфера ответственности, а заказчика. Специалисты заказчика в свою очередь любят самоустраняться ввиду слабого понимания технологического процесса.
- Среды для тестирования и разработки. Так как данные системы не боевые, то их администрирование часто отдают на откуп разработчикам, которые могут внести уязвимости.
- Условно изолированные системы. Если сеть физически изолирована и не имеет выхода в интернет, то «ответственные» специалисты могут решить, что не имеет смысла устанавливать антивирусное ПО и другие средства защиты, ну и конечно, обновлять тоже ничего не стоит.
- Общие сетевые папки. Файловые серверы, «расшаренные» папки на серверах и рабочих станциях. В таких местах легко найти файлы резервных копий, скрипты с учетными записями и паролями, журналы систем.
- Критичные элементы ИТ-инфраструктуры. Контроллер домена содержит базу учетных записей, а многие системы поддерживают авторизацию по доменной учетной записи. Соответственно, контроллер домена – цель номер один для любого злоумышленника в Windows-сети. Серверы баз данных также являются первоочередными целями хакеров.
- Устаревшее оборудование. Отношение ИТ-специалистов к нему выражается фразой: "Работает и лучше его не трогать". Соответственно, вероятность встретить в нем интересные уязвимости довольно высока.
Базовый алгоритм работы с Metasploit Framework
Так как в качестве инструмента для проведения тестирования защищенности мы выбрали Metasploit Framework, то необходимо привести базовый алгоритм работы с модулями, входящими в его состав.
Работа с модулем состоит из следующих шагов:
- Поиск подходящего модуля с помощью команды search или Google.
- Выбор модуля с помощью команды use.
- Просмотр настроек выбранного модуля с помощью команд show options (продвинутые настройки — show advanced).
- Установка конкретной опции с помощью команды set. Самыми часто задаваемыми опциями являются RHOST и RHOSTS. В первом случае можно задать только один адрес цели, а во втором – множество.
- Установка подробного вывода с помощью команды set verbose true (если любопытно знать, что происходит).
- Запуск модуля с помощью команды run.
Методология тестирования защищенности
Тестирование защищенности информационных систем зачастую представляет собой творческий процесс, который тем не менее можно и нужно структурировать, чтобы получать сопоставимые и полные результаты тестирования.
Неплохое описание методологий тестирования защищенности приводится в следующих источниках:
Рассмотрим следующие этапы тестирования защищенности, присутствующие в практически любом проекте по тестированию на проникновение:
- Постановка задачи
- Сбор информации и поиск целей
- Поиск уязвимостей
- Эксплуатация и проведение атак
- Расширение зоны влияния и эскалация привилегий
- Разработка отчета
Этап 1. Постановка задачи
Тестирование защищенности любой ИТ-инфраструктуры начинается с постановки задачи. В нашем случае мы ограничимся поиском максимального количества реальных уязвимостей, которые могут быть проэксплуатированы потенциальными злоумышленниками, имеющими физический доступ к компьютерной сети организации.
Для демонстрации работы некоторых модулей в статье будут приводиться результаты их запуска против такой учебной цели, как Metasploitable 2. Metasploitable 2 представляет собой виртуальную Linux-машину, содержащую массу уязвимых сервисов. Является стандартом де-факто для обучения начинающих специалистов по тестированию защищенности.
Этап 2. Сбор информации и поиск целей
Для проведения тестирования защищенности специалистам предоставляют доступ в сеть предприятия. В ходе предварительного сбора проводится сканирование узлов, определяются имена компьютеров, обнаруживаются общедоступные сетевые папки, критичные ресурсы.
Сканирование портов можно провести с помощью команды db_nmap – утилиты-«обертки» для nmap в Metasploit Framework, которая позволяет сохранять результаты сканирования в базу данных.
Необходимо помнить, что если мы явно не задаем диапазон портов, то будет просканировано 1000 самых распространенных портов, если укажем ключ -F, то 100, а если -p-, то все 65535.
Из результатов сканирования портов мы можем узнать не только какие сетевые порты открыты, но и версии служб, если использовали ключ -sV, а также предположительную версию операционной систем (ключ -О).
После завершения сканирования сети имеет смысл выгрузить данные из базы Metasploit с помощью команды db_export и импортировать получившийся xml-файл в MS Excel или LibreOffice Calc. В дальнейшем данный файл можно использовать для поиска узлов с определенными портами и вести рабочие заметки с результатами тестирования каждого узла.
Поиск общедоступных сетевых папок
Как мы уже рассмотрели выше, в общедоступных сетевых папках может быть масса полезной для злоумышленника информации. Имеет смысл искать данные папки как с анонимной учетной записью (пустой логин/пустой пароль), так и с учетной записью обычного пользователя.
Для поиска SMB-ресурсов необходимо воспользоваться модулем auxiliary/scanner/smb/smb_enumshares, а для NFS: auxiliary/scanner/nfs/nfsmount.
Поиск СУБД
Для поиска СУБД MS SQL имеет смысл использовать модуль auxiliary/scanner/mssql/mssql_ping, так как он позволяет не только обнаружить серверы СУБД по открытому UDP порту 1434, но и определить TCP-порт, по которому база данных ждет подключения.
Определение имен NetBIOS
Зачастую полезно определить имена NetBIOS, так как в них тоже может содержаться полезная информация (например, к какой системе относится тот или иной узел). Для этого можно воспользоваться модулем auxiliary/scanner/netbios/nbname.
Этап 3. Поиск уязвимостей
Сначала рассмотрим основные методы выявления уязвимостей, которые представлены в следующей таблице:
Запуск эксплойта против сетевого сервиса без предварительного анализа его соответствия данной службе.
Из данного перечня в Metasploit Framework имеются модули для реализации методов «Попытка эксплуатации», «Фаззинг» и частично «Определение уязвимостей по версии продукта».
«Определение уязвимостей по версии продукта» полноценно не реализовано в Metasploit Framework, так как для автоматизированного выявления потенциальных уязвимостей в первую очередь используются сканеры уязвимостей. Тем не менее стоит отметить, что некоторые модули эксплуатации в Metasploit Framework поддерживают метод check, который можно использовать для определения наличия уязвимости до ее эксплуатации.
В случае, если под рукой нет сканера уязвимостей наподобие того, что есть в составе «Сканер-ВС», который может за десятки минут прогнать около 60 тыс. проверок, в том числе и для отечественных решений и средств защиты информации, то придется проводить анализ вручную.
Для ручного анализа уязвимостей подойдут данные о версиях сетевых сервисов, полученные на предыдущем этапе в ходе сканирования портов. Специалист по тестированию защищенности, формируя поисковые запросы Google вида «сервис версия» +vulnerability +exploit, находит страницы с описанием уязвимостей и эксплойтов.
Известные базы данных уязвимостей:
Отдельно необходимо отметить, что ФСТЭК России ведет регулярно пополняемый банк данных угроз безопасности информации.
Например, проведя анализ результаты сканирования портов Metasploitable 2, мы можем обнаружить, что на 21-м порту ждет подключений Very Secure FTP Daemon (VSFTPD) версии 2.3.4. Простой поиск в Google информации о наличии уязвимостей в данной версии FTP-сервера приведет к тому, что мы узнаем, что какой-то весельчак внедрил закладку, получившую название «smiley face backdoor». Принцип использования программной закладки прост: в ходе авторизации в имени пользователя нужно использовать смайлик ":)", после чего на удаленной машине откроется порт 6200 с командной оболочкой с правами администратора. Вводимые имя пользователя и пароль могут быть любыми.
Этап 4. Эксплуатация и проведение атак
Для эксплуатации уязвимостей в сетевых сервисах и прикладном ПО используются эксплойты из раздела exploit Metasploit Framework. На текущий момент в Metasploit Framework количество готовых к использованию эксплойтов уже приближается к двум тысячам.
Подходящие эксплойты можно найти с помощью команды search по коду CVE, названию или версии сервиса (например, search vsftpd).
При эксплуатации уязвимости задается так называемая полезная нагрузка (payload). Полезной нагрузкой называется код, который запускается на скомпрометированной машине. В Metasploit Framework имеются различные полезные нагрузки: удаленная командная строка, создание учетной записи, загрузка системы удаленного администрирования и т.п. Зачастую удобнее всего пользоваться именно командной строкой. Причем в Metasploit Framework имеется динамически расширяемая полезная нагрузка – Meterpreter, но она заслуживает отдельной статьи.
Продолжая разбор примера с vsftpd, запустим найденный эксплойт и получим удаленный доступ к командной строке с правами администратора.
Для данного эксплойта только один вариант полезной нагрузки, который и используется по умолчанию:
Самой опасной атакой на протяжении десятилетий остается подбор паролей. Metasploit Framework содержит множество модулей, предназначенных для проведения подобных атак. В следующей таблице представлены модули, с которыми чаще всего приходится сталкиваться в ходе тестирования защищенности.
Полный список аналогичных модулей Metasploit Framework можно получить, набрав команду search login.
Необходимо отметить, что большинство модулей требует задания списка учетных записей и проверяемых паролей, но некоторые уже содержат готовые списки значений по умолчанию, которыми целесообразно воспользоваться.
Давайте подберем пароли по умолчанию к СУБД PostgreSQL и сервер приложений Apache Tomcat, установленным на Metasploitable 2:
В Metasploit Framework имеются модули для проведения специфических компьютерных атак. В настоящей статье ограничимся рассмотрением нескольких самых распространенных.
В ходе данной атаки злоумышленник пытается «испортить» (to poison — отравить) ARP-таблицы двух узлов, трафик между которыми он хочет перехватывать. Зачастую атака проводится против рабочей станции определенного пользователя (системного администратора, главного бухгалтера и т.п.) и контроллера домена или маршрутизатора. После «порчи» ARP-таблиц оба узла-жертвы направляют сетевые пакеты друг другу через компьютер злоумышленника. Злоумышленник, запустив сниффер, перехватывает интересующие его данные, например, сессии аутентификации с хешами паролей.
Для осуществления атаки arp-poisoning в Metasploit Framework можно воспользоваться модулем:
auxiliary/spoof/arp/arp_poisoning.
Особенностью реализации протокола NTLM является то, что для успешной авторизации не требуется знать пароль, а достаточно лишь иметь хеш пароля и имя учетной записи. Данной уязвимости может быть подвержена любая операционная система, в которой используется протокол NTLM.
Атаку pass-the-hash можно провести с помощью модуля exploit/windows/smb/psexec.
В результате данной фазы тестирования защищенности мы имеем перечень уязвимостей, которые реально могут быть проэксплуатированы злоумышленниками, причем удаленно. В качестве результата запуска эксплойтов и проведения атак у нас имеется доступ к различным системам, а также информация о скомпрометированных учетных записях.
Важное примечание.
Запуск эксплойтов легко может привести к недоступности сервиса или целого сетевого узла. Для минимизации негативных последствий подобных тестов специалисты по тестированию защищенности:
- проводят тестирование в нерабочее время;
- проводят тестирование на идентичных тестовых серверах;
- согласовывают выбор целей с заказчиком (например, выбираются рабочие станции некритичных сотрудников);
- запускают опасные проверки, предупредив ответственных администраторов.
В качестве доказательств успешного проникновения специалисты по тестированию защищенности собирают скриншоты, подтверждающие наличие доступа.
Этап 5. Расширение зоны влияния и эскалация привилегий
Зачастую наличие доступа к какой-либо системе позволяет расширить его на другие системы. Иногда возможна и эскалация привилегий, позволяющая обычному пользователю стать администратором.
Рассмотрим две типовые ситуации, знание которых облегчает проведение тестирования защищенности.
Пользователи, использующие одинаковые пароли
Пользователи любят использовать одинаковые пароли в различных системах, поэтому целесообразно проверять однажды подобранные пары логин: пароль во всех доступных системах.
ИТ-специалисты, забывающие удалить из тестовой среды критичные данные
В крупных организациях у серьезных систем, как правило, имеется тестовая среда, на которой отрабатываются изменения, обучаются пользователи и т.п. Тестовые среды очень часто создаются путем восстановления из резервных копий боевых сред, при этом, так как они являются тестовыми, то не всегда уделяется должное внимание вопросам информационной безопасности. Так, например, могут создать учетную запись администратора с легко угадываемым паролем либо не установить критичные обновления операционной системы. Специалисты по тестированию защищенности, получив доступ к тестовой среде, выгружают данные пользователей (логины/хеши паролей), которые в основной своей массе соответствуют тем, что используются в боевой системе.
Модули постэксплуатации в Metasploit Framework
В Metasploit Framework имеется набор так называемых постэксплуатационных модулей, позволяющих решать следующие задачи для расширения доступа и повышения привилегий:
- поиск подходящих локальных эксплойтов (post/multi/recon/local_exploit_suggester);
- запуск кейлоггера (post/windows/capture/keylog_recorder);
- сбор учетных записей и хешей (post/windows/gather/credentials/credential_collector) и др.
В результате после выполнения данного шага специалисты по тестированию защищенности получают максимальный доступ, а также выявляют реальные локальные уязвимости.
Этап 6. Разработка отчета
Если результаты тестирования защищенности интересуют не только самого системного администратора, то имеет смысл подготовить качественный отчет.
Основной составляющей отчета является информация об уязвимостях, которая, как правило, представляется в следующем структурированном виде:
- обнаружение – информация о названии уязвимости, ее кодах, перечень узлов, подверженных ей.
- эксплуатация – скриншоты и журналы, демонстрирующие эксплуатацию уязвимости;
- риск – к чему может привести эксплуатация уязвимости;
- рекомендации – рекомендации технического и организационного характера по устранению уязвимости.
В Metasploit Framework отсутствует функционал по генерации отчетов по тестированию защищенности, и отчет придется разрабатывать самостоятельно.
С шаблоном отчета и нюансами его разработки можно познакомиться в статье Отчет по пентесту: краткое руководство и шаблон.
Заключение
Мы рассмотрели применение Metasploit Framework для возможности самостоятельного применения администраторами для тестирования защищенности и убедились в доступности и эффективности данного инструмента. Большинство «болевых точек» могут быть с легкостью проверены благодаря широкому набору модулей данного фреймворка. Единственной проблемной областью применения для тестирования защищенности исключительно Metasploit Framework является необходимость проводить трудоемкий ручной поиск уязвимостей, но данная проблема может быть устранена применением сканера уязвимостей, например, из состава «Сканер-ВС».
Читайте также: