Специалисты VulnCheck предупредили, что более 3000 серверов Openfire все еще уязвимы перед проблемой CVE-2023-32315, обнаруженной в мае текущего года. Эксплуатация этой уязвимости типа path traversal позволяет неаутентифицированному пользователю создавать новые учетные записи администратора.
Еще в конце мая стало известно, что уязвимость влияет на все версии Openfire, начиная с версии 3.10.0, выпущенной в апреле 2015 года, и заканчивая новейшими версиями. Проблему исправили в Openfire 4.7.5 и 4.6.8.
Невзирая на выход патчей, уже в июне ИБ-специалисты сообщали (1, 2), что уязвимость массово используется для атак и загрузки вредоносных плагинов на непропатченные серверы.
Как теперь объясняют специалисты VulnCheck, проблема в том, что сообщество OpenFire не спешит устанавливать вышедшие обновления, и более 3000 серверов все еще остаются уязвимыми.
По информации экспертов, поиск с помощью Shodan выявил 6324 сервера Openfire, доступных через интернет, из которых около 50% (3162 сервера) по-прежнему остаются уязвимыми перед CVE-2023-32315 из-за использования устаревших версий ПО.
Лишь 20% пользователей установили вышедшие патчи, 25% используют совсем старые версии, предшествующие версии 3.10.0, когда в ПО появилась уязвимость, и еще 5% используют опенсорсные версии проекта, которые не обязательно уязвимы перед этой проблемой.
Исследователи отмечают, что доступные в настоящее время эксплоиты для CVE-2023-32315 основаны на создании пользователя с правами администратора, что позволяет злоумышленникам загружать вредоносные Java JAR плагины, создавать реверс-шеллы и выполнять команды на взломанных серверах.
В качестве реального примера эксплуатации проблемы приводится майнинговый ботнет Kinsing, который использует уязвимость для установки кастомного плагина Openfire и создания реверс-шеллов.
Однако существующие эксплоиты для создания новых пользователей с правами администратора являются весьма заметными, то есть такие атаки легко обнаружить в логах и не только. Но в отчете VulnCheck показан и другой, более скрытный метод использования бага, который не требует создания новых учетных записей и не оставляет следов в логах.
В своем примере аналитики демонстрируют способ извлечения токена JSESSIONID и CSRF путем прямого доступа к plugin-admin.jsp и последующую загрузку плагина JAR через POST-запрос.
В результате плагин устанавливается на уязвимый сервер, а доступ к его веб-шеллу можно получить без учетной записи администратора.