Взлом Tomcat эксплуатируя уязвимость загрузки файлов

Взлом Tomcat

Apache Tomcat, разработанный Apache Software Foundation, — это популярный веб-сервер и контейнер сервлетов. Первоначально он выступал в качестве демонстрационной платформы для технологий Java Servlet и JavaServer Pages (JSP), которые используются в веб-приложениях Java. В статье покажу, как установить и настроить Tomcat на Ubuntu и как эту машину взломать с помощью уязвимости в загрузке файлов.

Еще по теме: Взлом веб-сервера Windows Apache через SSRF

Как взломать Tomcat

Со временем возможности Tomcat расширились, и он стал поддерживать дополнительные веб-технологии Java. Примечательной особенностью сервера — поддержка развертывания веб-приложений с помощью файлов WAR (Web Application Archive). В этих файлах собраны все компоненты веб-приложения, включая код, страницы и файлы, что упрощает развертывание. Tomcat дает возможность загружать и запускать эти WAR-файлы, позволяя им размещать свои приложения в Интернете.

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

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

Стенд для взлома Tomcat

Ниже перечислены машины:

  • Целевая машина — Ubuntu (192.168.1.5)
  • Атакующая машина — Kali Linux (192.168.1.7)

Установка Tomcat на Ubuntu

Apache Tomcat работает на Java, поэтому на вашем сервере должен быть установлен Java JDK. Его можно установить, выполнив команду:

Установка Tomcat на Ubuntu

Добавьте нового пользователя tomcat с помощью команды:

Установить Tomcat на Ubuntu

Скачайте файл Tomcat tar.gz с официального сайта.

Скачать Tomcat tar.gz с официального сайта

Скачайте последнюю версию с сайта на машину Ubuntu и распакуйте скачанные файлы:

wget https://dlcdn.apache.org/tomcat/tomcat-10/v10.1.20/bin/apache-tomcat-10.1.20.tar.gz

Переместите извлеченную папку в каталог /opt/tomcat, дайте права на владение пользователю tomcat и установите разрешение на выполнение файлов.

/opt/tomcat

Создайте файл tomcat.service в каталоге /etc/system/system/ и добавьте в него следующее:

Apache Tomcat установка Ubuntu

Перезапустите демон systemd, чтобы применить изменения:

Также включите службу tomcat, чтобы она запускалась при перезагрузке системы:

Проверьте состояние сервера:

Создание стенда для взлома Tomcat

Конфигурация сервера

После завершения установки пришло время настроить сервер.

Чтобы создать пароль пользователя admin, измените файл:

Добавьте следующий код:

Конфигурация сервера

Чтобы включить удаленный доступ для Томкэт Manager, внесите следующие изменения в файл context.xml, находящийся в директории manager и host-manager.

Удалите следующую строку из обоих файлов:

Конфигурация сервера Томкэт Убунту

Конфигурация сервера Томкэт Убунту

После внесения изменений перезапустите службу tomcat в Ubuntu.

Рестарт Tomcat Ubuntu

Убедитесь, что на машине Ubuntu запущен и работает сервер Томкэт на порту 8080.

Работа сервера Apache Tomcat Ubuntu

Перечисление используя Nmap

После завершения установки и настройки, приступаем к этапу энумерации (перечисления).

Итак, Kali Linux выступает в качестве атакующей машины, и теперь можно выполнить начальное перечисление с использование Nmap (см. Скрытое сканирование с Nmap):

Перечисление используя Nmap

Взлом с помощью Metasploit Framework

Сначала попробуем использовать Metasploit (см. Как пользоваться Metasploit Framework), так как для уязвимости загрузки файлов в Томкэт уже есть готовый эксплойт. Используемый эксплоит:

Чтобы запустить эксплойт в Metasploit, выполните команды:

Взлом Tomcat используя Metasploit Framework

Из вышеприведенного видно, что обратная оболочка (реверс шелл / обратный шелл) получена и команды могут быть выполнены с помощью оболочки Meterpreter (см. Список команд Meterpreter).

Взлом вручную (обратный шелл)

Описанный выше процесс эксплуатации можно выполнить и вручную. Для этого сначала нужно создать .war-файл с помощью MSFVenom (см. Как использовать MSFVenom).

Взлом вручную (обратный шелл)

После создания файла shell.war нужно загрузить его в приложение tomcat manager.

Для доступа к приложению Manager App потребуется базовая аутентификация. Чтобы получить доступ к приложению Manager, в качестве имени пользователя можно указать admin, а в качестве пароля — password.

Взлом вручную (реверс шелл)

После входа в приложение Manager App загрузите созданный выше файл shell.war.

Manager App Tomcat

После загрузки файла его можно увидеть в разделе загруженных файлов.

Manager App Tomcat shell

Прежде чем получить доступ к загруженному файлу, запустите листенер на порту 1234.

Нажмите на /shell для доступа к файлу обратного шелла.

Manager App Tomcat реверс шелл

Обратная оболочка будет получена на порту 1234.

Manager App Tomcat реверс шелл порт 1234

Взлом вручную (веб-оболочка)

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

Для создания .war, содержащего .jsp-файлы, потребуется установить Java на Kali Linux:

Взлом Tomcat вручную (веб-оболочка)

Теперь создайте каталог webshell, внутри которого будет файл index.jsp:

Взломать Tomcat вручную (веб-оболочка)

Вставьте следующий код в файл index.jsp:

index.jsp

После создания файла index.jsp можно приступить к созданию пакета, преобразовав каталог в файл .war:

webshell.war

После того как файл webshell.war создан, загрузите его в функцию развертывания.

webshell Tomcat

В загруженном каталоге webshell можно открыть страницу index.jsp и получить веб-оболочку.

tomcat hack

tomcat hack

Альтернативным способом выполнения описанной выше ручной эксплуатации может быть загрузка файла cmd.jsp и создание файла webshell.war с помощью zip.

Файл webshell jsp можно скачать отсюда https://github.com/tennc/webshell/tree/master/fuzzdb-webshell/jsp.

tomcat hacking

После загрузки файла cmd.jsp, нужно создать файл revshell.war:

revshell.war

Снова повторите ту же процедуру, о которой говорилось ранее, после загрузки файла revshell.war в функцию развертывания. Веб-шелл будет получен после доступа к файлу:

Tomcat Kali Linux

Заключение

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

Спасибо Raj за интересную статью!

ПОЛЕЗНЫЕ ССЫЛКИ:

QUASAR

Этичный хакер и компьютерный ниндзя. Новые статьи в нашей Телеге!

Добавить комментарий