На сегодняшний день JBoss очень широко используется в организациях по всему миру. И как любое популярное приложение, он является целью хакерских атак. За время использования JBoss в нем было найдено много уязвимостей, но в данной статье речь пойдет об одной из самых критичных.
Web сервер JBoss предоставляет единую платформу для размещения Java Server Pages (JSP), Java-сервлетов, PHP и CGI. Он использует высокопроизводительные гибридные технологии, основанные на лучших средствах операционных систем для обработки больших объемов данных, и в то же время остается полностью Java-программой.
Рисунок 1. «Jmx-консоль по умолчанию»
При некорректном конфигурировании нарушители могут создать хаос. Так как доступ к jmx консоли можно осуществить удаленно, нарушители могут опубликовать свои war-файлы или шелл на сервере, используя функцию DeploymentScanner. В следующем разделе мы рассмотрим пример эксплуатации данной уязвимости.
У большинства JBoss серверов используется аутентификация по умолчанию. Стандартные настройки не ограничивают доступ к консоли и web-интерфейсу администрирования, что позволяет нарушителям пройти аутентификацию и получить права администратора. Выбираем любую из найденных ссылок и бинго! Получаем доступ к jmx-консоли.
Для дальнейших действий нам необходим JSP шелл, который можно легко скачать в интернете. Что ж, можно двигаться дальше.
Для размещения нашего шелла воспользуемся функцией DeploymentScanner в jmx консоли, с помощью команды addURL() добавим новый URL с нашим шеллом. В дальнейшем JBoss будет использовать приложение, расположенное по данному адресу. Далее необходимо подождать, пока DeploymentScanner опубликует файл, и затем мы получим доступ к нему. Представим, что мы залили шелл на сайт abc.com/attack/cmd.jsp, теперь необходимо его опубликовать. Заходим в DeploymentScanner в консоли.
Добавляем URL с шеллом в jmx консоли.
После того как URL добавлен, вызываем функцию. Как видно на предыдущем рисунке, на странице есть кнопка для вызова функции. После выполнения приложение выводит сообщение об успешном запуске.
После минутного ожидания мы получили доступ! Теперь на сервере у нас есть свой шелл =)
Какой сюрприз! У нашего шелла права root’а!
И это еще не полный список!
Что же нужно сделать администраторам?
Небольшая осторожность поможет сохранить закрытые данные вашей организации. На этом все. Благодарю на внимание.