Вопрос или проблема
Я пытаюсь использовать уязвимость в Tomcat, основанную на CVE-2020-13935.
Я нашел в интернете этот интересный PoC https://blog.redteam-pentesting.de/2020/websocket-vulnerability-tomcat/. В моем случае сервер Tomcat подвергнут воздействию через обратный прокси (Apache httpd), и я не уверен, как могу запустить эксплойт. Должен ли я запускать PoC на открытом порту httpd? Или в этом случае я не смогу сделать эксплойт?
Эта конкретная уязвимость работает за счет эксплуатации неверной длины полезной нагрузки в кадрах Websocket. Кадры Websocket обмениваются после первоначального обновления Websocket.
Простой обратный прокси просто пропустит любые данные в обоих направлениях после первоначального обновления Websocket, поскольку никакой дополнительный анализ не требуется для выполнения его функции в качестве обратного прокси. В этом случае уязвимость не будет устранена обратным прокси.
Более ориентированный на безопасность обратный прокси поймет протокол кадров Websocket и обеспечит корректное выполнение Websocket. В этом случае уязвимость может быть устранена обратным прокси, так как он обнаружит неправильно сформированные кадры Websocket и закроет соединение из-за ошибки протокола.
Учитывая, что Apache не имеет специфической конфигурации для Websocket, я предположил бы, что это всего лишь простой прокси, т.е. он просто пропустит весь трафик после первоначального обновления Websocket. В этом случае эта конкретная уязвимость не будет устранена. Но это всего лишь предположение, необходимо, вероятно, взглянуть на код Apache, чтобы быть уверенным.
Ответ или решение
Вопрос о возможности эксплуатации приложения Tomcat, находящегося за обратным прокси-сервером, особенно в контексте уязвимости CVE-2020-13935, действительно заслуживает тщательного анализа.
Уязвимость CVE-2020-13935
Эта уязвимость связана с неправильной обработкой длины полезной нагрузки в кадрах WebSocket. Основная угроза заключается в том, что злоумышленник может отправить специально сформированные кадры, которые проведут атаку, зависящую от неверной обработки длины, что может привести к выполнению нежелательных действий на сервере приложения.
Обратный прокси как фактор безопасности
Обратный прокси-сервер, такой как Apache HTTPD, может выполнять две ключевых функции:
-
Передача трафика: При стандартной конфигурации обратный прокси просто передает трафик между клиентом и сервером Tomcat после начального обновления WebSocket. Это означает, что большинство пакетов, проходящих через прокси, не анализируются на предмет их соответствия WebSocket-протоколу. Таким образом, в случае CVE-2020-13935, если прокси не обрабатывает WebSocket-кадры на более глубоком уровне, уязвимость останется открытой.
-
Безопасность через анализ: Некоторые более сложные и ориентированные на безопасность прокси могут поддерживать анализ WebSocket-кадров и отслеживать их соответствие спецификациям. Если кадры не соответствуют, прокси может закрыть соединение, тем самым предотвращая эксплуатацию уязвимости.
Практическое применение уязвимости за прокси
С учетом вышесказанного, если ваш Apache HTTPD сконфигурирован как простой прокси без специфических правил для обработки WebSocket, то вы можете запустить эксплойт на порту, который открыт для доступа через прокси. Это объясняется тем, что обратный прокси не осуществляет никакого серьезного контроля над передаваемыми кадрами, и, следовательно, уязвимость может быть использована, если клиент напрямую обращается к прокси.
Рекомендации по тестированию
-
Проверка конфигурации прокси: Убедитесь, что ваш Apache HTTPD не содержит дополнительных модулей или конфигураций, которые могли бы обрабатывать WebSocket-кадры безопасно. Например, проверьте наличие модулей, которые специализируются на работе с WebSocket.
-
Использование PoC: Если вы уверены, что прокси работает в качестве простого ретранслятора, вы можете использовать предоставленный PoC-эксплойт, отправляя его на открытый порт, который прокси переадресует на сервер Tomcat.
-
Мониторинг и анализ: Обязательно следите за трафиком и логами как на стороне прокси, так и на стороне Tomcat, чтобы попытаться уловить нежелательную активность и потенциальные атаки.
Заключение
В случае обыкновенного обратного прокси-сервера, который просто передает кадры без анализа, уязвимость в приложении Tomcat может быть использована без дополнительных мер предосторожности. Однако важно следить за конфигурацией и учитывать уровень безопасности прокси, чтобы предположить возможность эксплуатации. Будьте внимательны при выполнении тестов на протоколах безопасности и всегда следуйте лучшим практикам в области кибербезопасности.