Разбор полетов: Взлом Metasploitble3

51a3fd4fb2075ddc982ff036b3316b56.jpg

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, можно увидеть список каталогов и файлов, но вернемся к нему позже.

e0a435895e4f6784a3438b833ec989b6.png

Работа с Metasploit

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

1. ProFTPD

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

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

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

77b8ff06e27a73b028425d4630cd4b2e.png

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

09ba8be006f10f451025a5ed3879d05b.png

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

0366104d3f3d88aee42268cc70103e26.png

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

2eae00271fb4e375f64bf7da87692f1a.png

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

ba7008d346b204653d92450cd665444c.png

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

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

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

bad0c6c2ed7614a93aedcafdb1d701c8.png

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

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

5b57ac323d8344cf151c428123b3dc7c.png

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

ea89087665dd1b498c8c6468061ca555.png

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

308756f864dca27ac056f4b5cd9c0ca4.png

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

d080ff0f31e252425db8046e0c852590.png

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

2. OpenSSH

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

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

56e47f8fc803960cec89da3e0a28a50c.png

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

63c2f9be92ab14331d92b0fdfef120ca.png

3. Drupal

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

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

4f2783b27f7b295044a503b5f0e3b3d1.pngeda22c8a1e2863c0448f567bc84bc2b9.png

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

cb0e1164393f33744fd9bc28935f5fba.png3a5cb06bd43df40d53242b8d73dbde63.png

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

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

d734995558dd7f91f2c85f7a75b39f2b.png

Альтернативный способ найти файлы и папки, воспользоваться веб-фаззингом 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

944229dc30c9324a43afa35684a5dcf6.png

4. Apache_continuum

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

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

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

nmap –sV –sC –p 0–65535 192.168.56.102

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

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

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

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

29d0222c4771db37519873da348673e7.png

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

4c205f2bc0dbf427af60c312720d7705.png

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

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

9391dead01c55d74d85a5004cea3fcfd.png

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

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

91266e52df3019b9cd0d909b07a9a1fb.png

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

4965e81c06ff38a373a54479ba31d49f.png

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

b94957fe14191246460a0261a0ef17d0.png

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

735b3abb9e29778a4a5ccaaf8a0a0037.pngf1c24e7a033fca3f3acfa43a811f956d.png

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

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

e588e8b92ea40d05cc39a578f5047f07.png

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

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

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

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

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

9c99f633c490f2b4984c8d85d1fe5f13.png

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

cfbb467b116ee3a5043f146c4aa8afd9.png

SQL-injection.

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

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

5663df1918d7fe09feea3de5c6072586.png

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

108f97c332e39eb7bbf273440ff7caac.png637f5c006ee7240576622fbf4c47b71f.png

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

92c7be8d6e0ad5697823a2e3718c5601.png

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

d5f646c93628472477b41f6544dda2a6.png

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

2b3a503220e1d44f5c7fbae3daf1f266.png

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

2ca11625638037e654c88f58efe8c919.png

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

sqlmap -r /tmp/metasploit_mysql --dump

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

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

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

Заключение

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

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

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

© Habrahabr.ru