18.04.2025, 09:14
Количество просмотров 7189

Разбор уязвимости CVE-2020-1938 (Ghostcat) Apache Tomcat

Проблема информационной безопасности сейчас стоит достаточно остро перед целым рядом компаний и организаций. При использовании инновационных технологий крайне важно сохранить инфраструктуру в безопасности. Apache Tomcat — это популярный открытый сервер и мощный инструмент для разработчиков Java-приложений, который предоставляет все необходимое для создания, развертывания и управления веб-приложениями. Подробнее о работе данной уязвимости порталу PLUSworld рассказывает специалист по тестированию на проникновение, Compliance Control, Александр Ястремской.
Разбор уязвимости CVE-2020-1938 (Ghostcat) Apache Tomcat

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

Это мощный инструмент для разработчиков Java-приложений, который предоставляет все необходимое для создания, развертывания и управления веб-приложениями. Если ваше приложение написано на Java и использует сервлеты или JSP, то Tomcat может стать отличным выбором для развертывания вашего приложения в продакшн-среде.

Apache Tomcat используется для развертывания и управления веб-приложениями на платформе Java. В реальных проектах Tomcat применяется для различных задач. Например, его часто используют для разработки веб-приложений, основанных на технологиях Java Servlet и JSP. В таких случаях Tomcat выполняет роль сервера приложений, который обрабатывает запросы от пользователей, управляет сессиями и генерирует динамические веб-страницы.

Еще одно распространенное применение — это тестирование и локальное развертывание приложений. Разработчики часто используют Tomcat на своих рабочих станциях для проверки работы веб-приложений перед тем, как развернуть их в продакшн-среде. Этот процесс помогает убедиться, что приложение работает корректно, и устранять ошибки в процессе разработки.

Tomcat также используется в связке с другими веб-серверами, такими как Apache HTTP Server. В этом случае Apache HTTP Server может обрабатывать статические файлы (изображения, CSS, JavaScript), а Tomcat — динамическую часть веб-приложения, используя Java-сервлеты для обработки запросов пользователей.

Кроме того, Tomcat активно используется для создания и развертывания корпоративных приложений, которые требуют обработки больших объемов данных и взаимодействия с базами данных. Его можно настроить для обеспечения высокой доступности и отказоустойчивости через кластеризацию, что важно для приложений, работающих в режиме 24/7.

Суть уязвимости

CVE-2020-1938 — это уязвимость чтения/включения файлов в соединителе AJP в Apache Tomcat. Она включена с портом конфигурации по умолчанию 8009. Удаленный злоумышленник, не прошедший аутентификацию, может воспользоваться этой уязвимостью для чтения файлов веб-приложения с уязвимого сервера.

В современных Tomcat используется AJP 1.3 (AJP13). Поскольку это двоичный протокол, браузер напрямую не может отправлять запросы AJP13. Поэтому в качестве фронтенда выступает любой популярный веб-сервер — Nginx, Apache, IIS.

Уязвимость Ghostcat опасна тем, что злоумышленник может просмотреть конфигурационные файлы, не проходя при этом авторизацию, что приведёт к раскрытию конфиденциальной информации (логины и пароли к БД, токены и настройки сервисов).

Учитывая то, что данная уязвимость исправлена только в версиях 9.0.31, 8.5.51, 7.0.100 Apache Tomcat, вероятнее всего во всех других версиях такой недочёт будет валиден и сработает.

Уязвимые версии по официальным данным:

Рисунок1.jpg

Порядок действий

Сканируем цель на наличие порта по умолчанию с сервисом AJP:

Рисунок2.jpg

Клонируем репозиторий Github с необходимым инструментом:

git clonehttps://github.com/Hancheng-Lei/Hacking-Vulnerability-CVE-2020-1938-Ghostcat.git
cd Hacking-Vulnerability-CVE-2020-1938-Ghostcat

Запуск эксплойта:
python2 192.168.0.106 -p 8009 -f WEB-INF/web.xml

-p: укажите порт

-f: укажите расположение файла для чтения

Вместо адреса на примере вставьте своей тестируемой цели.

Примечание:

Помимо WEB-INF/web.xml можно поэкспериментировать ещё со следующими путями с хранящимися критичными данными:

META-INF/context.xml - Учетные данные для подключения к базе данных
WEB-INF/web.xml - Настройки безопасности, ограничения доступа, роли пользователей и конфигурации
conf/server.xml - Настройки SSL, пути к хранилищам ключей и пароли для доступа к ним. Также может содержать информацию о подключениях к другим сервисам.
conf/catalina.properties - Пути к важным библиотекам
WEB-INF/log4j.properties - Настройки для логирования, включая пути к файлам логов

Рисунок3.jpg 

Рекомендации по защите

·                  Обновить версию Apache Tomcat до актуальной

·                  Атрибут requiredSecret необходимо настроить для установки учётных данных для аутентификации по протоколу AJP следующим образом:

·                  Отредактируйте /conf/server.xml и найдите следующую строку ( - это рабочий каталог Tomcat):

Закомментируйте (или просто удалите):
->

Сохраните изменения и перезапустите Tomcat.

Вывод

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

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

Рубрика:
{}Безопасность
Новости в вашей почте
mail

PLUSworld в соцсетях:
telegram
vk
dzen
youtube
ЕЩЁ НОВОСТИ