Kali Linux, Kali Linux для продвинутого тестирования на проникновение, Metasploit

#87 Kali Linux для продвинутого тестирования на проникновение. Эксплуатация. Metasploit Framework. Часть 2.

Здравствуйте, дорогие друзья.

Это вторая часть по инструменту Metasploit Framework.

Модули

MSF состоит из модулей, объединенных для воздействия на эксплойт. Модули и их специфические функции следующие:

• Эксплойты: фрагменты кода, нацеленные на определенные уязвимости. Активные эксплойты будут использовать конкретную цель, выполнять до завершения, а затем выходить (например, при переполнении буфера). Пассивные эксплойты ждут входящих хостов, таких как веб-браузеры или FTP-клиенты, и используют их, когда они подключаются.

• Полезные нагрузки: это вредоносный код, который реализует команды сразу после удачной эксплуатации.

• Вспомогательные модули: эти модули не устанавливают и не поддерживают напрямую доступ между тестером и целевой системой; вместо этого они выполняют связанные функции, такие как сканирование, фаззинг или сниффинг, которые поддерживают фазу эксплуатации.

• Почтовые модули: после успешной атаки эти модули запускаются на скомпрометированных целях, для сбора полезных данных и более глубокого проникновения злоумышленника в целевую сеть. Мы узнаем больше о пост-модулях в следующем разделе: «Действие на Цель и боковое перемещение.»

• Кодировщики: когда эксплойты должны обходить антивирусную защиту, эти модули кодируют полезную нагрузку, чтобы ее нельзя было обнаружить с помощью методов сопоставления сигнатур.

• Нет операций (NOP): они используются для облегчения переполнения буфера во время атак.

Эти модули используются совместно для ведения разведки и нанесения ударов по целям.

Шаги по эксплуатации целевой системы с помощью MSF можно резюмировать следующим образом:

1. Выбрать и настроить эксплойт (код, компрометирующий конкретную уязвимость на целевой системе).

2. Проверить целевую систему, чтобы определить, подвержена ли она атаке с помощью эксплойта. Этот шаг является необязательным и обычно опускается, чтобы свести к минимуму обнаружение.

3. Выбрать и настроить полезную нагрузку (код, который будет выполняться в целевой системе, после успешной эксплуатации; например, реверс шелл от скомпрометированной системы, и обратно к источнику).

4. Выбрать метод кодирования, чтобы обойти средства обнаружения (идентификаторы/IP-адреса или антивирусное программное обеспечение).

5. Выполнить эксплойт.

Установка и настройка базы данных

Установить новую версию Metasploit довольно просто, так как Metasploit не работает больше как сервис, начиная с версии msf3:

1. Запустите PostgreSQL, набрав команду sudo systemctl start postgresql.service в терминале.

2. Инициализируйте базу данных Metasploit, запустив sudo msfdb init. Если это не ваш первый запуск, то инструмент создаст базу данных msf, создаст роль и добавит базы данных msf_test и msf в /usr/share/metasploit-framework/config/ в файл конфигурации database.yml; иначе по умолчанию будет создана база данных msf в предварительной сборке Kali Linux, как показано на рисунке ниже:

Initializing the Metasploit database

3. Теперь Вы готовы получить доступ к msfconsole.

4. В консоли Вы можете проверить состояние базы данных, набрав db_status. Вы должны увидеть следующее:

msf6 > db_status

[*] Connected to msf. Connection type: postgresql.

5. В случае наличия нескольких целей, все из которых являются разными подразделениями компании, или, может быть, две разные компании, рекомендуется создать рабочее пространство внутри Metasploit. Этого можно добиться, запустив команду рабочей области в msfconsole.

В следующем отрывке показано меню справки, где Вы можете добавлять/удалять рабочие пространства, и организовать эти эксплойты для достижения своей цели:

msf6 > workspace -h

Usage:

workspace List workspaces

workspace -v List workspaces verbosely

workspace [name] Switch workspace

workspace -a [name] … Add workspace(s)

workspace -d [name] … Delete workspace(s)

workspace -D Delete all workspaces

workspace -r <old> <new> Rename workspace

workspace -h Show this help information

msf6 > workspace -a Fourthedition

[*] Added workspace: Fourthedition

[*] Workspace: Fourthedition

msf6 > workspace

default

* Fourthedition

В следующем примере представлена простая атака Unreal IRCD, против целевого компьютера на базе ОС Linux, Metasploitable3 Ubuntu, работающего на 10.10.10.8, и машину можно сканировать с помощью команды db_nmap, которая идентифицирует открытые порты и связанные с ними приложения. Выдержка-скан из db_nmap показана на рисунке ниже:

msf6 > db_nmap -vv -sC -Pn -p- 10.10.10.8 –save

Running db_nmap scans within Metasploit

При использовании параметра —save все результаты сканирования будут сохранены в /root/.msf4/local/folder. Несколько приложений были идентифицированы nmap в предыдущем примере.

Если сканирование было завершено с помощью nmap отдельно, эти результаты также можно импортировать в Metasploit, с помощью команды db_import. Вывод nmap обычно выдает три типа вывода; то есть xml, nmap и gnmap.

Формат .xml можно импортировать в базу данных с помощью парсера Nmap nokogiri. Результаты будут импортированы в базу данных, в случае большого набора данных nmap:

Importing independent Nmap scans into Metasploit

Как тестеры, мы должны исследовать каждую из них на наличие известных уязвимостей. Если мы запустим службы в msfconsole, база данных должна включать хост и его перечисленные службы, как показано на рисунке ниже:

Listing all the services within Metasploit

Одним из первых мест, с которого стоит начать, является собственная коллекция эксплойтов Metasploit. Их можно поискать из командной строки с помощью следующей команды:

msf> search UnrealIRCd

Поиск выдал определенный эксплойт для службы UnrealIRCd. На рисунке ниже показан фрагмент доступного эксплойта. Если тестировщики решат использовать любой другой сервис из списка, они могут обратиться к поиску, по ключевым словам в Metasploit:

Keyword searching within the Metasploit console for exploits

Новая версия Metasploit индексирует модули и позволяет тестировщикам просто вводить номер в поле индекс, чтобы использовать его. Для использования выбран эксплойт

/unix/irc/unreal_ircd_3281_backdoor,и в остальной части этого примера, он оценивается как отличный. Этот рейтинг был определен командой разработчиков Metasploit и рассматривает, насколько надежно эксплойт работает для квалифицированного тестера, против стабильной целевой системы. В реальной жизни несколько переменных (навыки тестировщика, защитные устройства в сети, а также модификации операционной системы и размещенных приложений), могут работать вместе, чтобы значительно изменить надежность эксплойта. Дополнительная информация, относящаяся к этому эксплойту, была получена с помощью следующей команды: 

msf> info 0 

Возвращаемая информация включает в себя ссылки, а также информацию, показанную на рисунке ниже:

Detailed information about the exploit using the info command

Мы будем атаковать цель с помощью этого эксплойта, и набираем следующую команду:

Msf6> use exploit/unix/irc/unreal_ircd_3281_backdoor

Metasploit меняет командную строку с msf> на msfexploit(unix/irc/unreal_ircd_3281_backdoor) >.

Metasploit предлагает тестировщику выбрать полезную нагрузку (обратный шелл из скомпрометированной системы), и устанавливает другие переменные, перечисленные ниже:

• Удаленный хост (RHOST): это IP-адрес атакуемой системы.

• Удаленный порт (RPORT): это номер порта, который используется для эксплойта. В этом случае, мы видим, что служба была взломана на порту 6667 по умолчанию, но в нашем случае та же служба работает на порту 6697.

• Локальный хост (LHOST): это IP-адрес системы, которая используется для запуска атаки. Атака запускается вводом команды эксплойта в командной строке Metasploit.

Metasploit инициирует атаку и подтверждает, что обратная оболочка между Kali Linux и целевой системой открыты.

Чтобы убедиться, что оболочка присутствует, тестер может выдавать запросы на имя хоста, имя пользователя (uname -a) и whoami, чтобы подтвердить, что результаты относятся к целевой системе, расположенной в удаленном местоположении. Взгляните на рисунок ниже:

Successfully exploiting UnrealIRC using Metasploit with a reverse shell

Этот эксплойт можно дополнительно изучить с помощью модулей пост-эксплойта. Запустите Meterpreter в background, нажав Ctrl + Z. Вы должны получить фоновый сеанс 1? [y/N] y введите y.

Когда система скомпрометирована до такой степени, она готова к действиям после эксплуатации.

На этом все. Всем хорошего дня!

Полный цикл статей по Kali Linux для продвинутого тестирования на проникновение.