Взлом JBoss

Взлом JBoss

На сегодняшний день JBoss очень широко используется в организациях по всему миру. И как любое популярное приложение, он является целью хакерских атак. За время использования JBoss в нем было найдено много уязвимостей, но в данной статье речь пойдет об одной из самых критичных.

Автор: Прашант Уньял
prashant.u@secfence.com
Secfence technologies
www.secfence.com

Введение

Сервер приложений JBoss – свободно распространяемый сервер приложений на основе Java EE. Важным отличием JBoss среди данного класса программного обеспечения заключается в том, что это не только сервер, работающий на Java, но и реализация части Java EE. Так как JBoss использует Java, он является платформонезависимым, то есть его можно использовать в любой операционной системе, поддерживающей Java. Данный сервер приложений был разработан компанией JBoss, ныне – отделом Red Hat.

Web сервер JBoss предоставляет единую платформу для размещения Java Server Pages (JSP), Java-сервлетов, PHP и CGI. Он использует высокопроизводительные гибридные технологии, основанные на лучших средствах операционных систем для обработки больших объемов данных, и в то же время остается полностью Java-программой.

Уязвимости

На сегодняшний день JBoss очень широко используется в организациях по всему миру. И как любое популярное приложение, он является целью хакерских атак. За время использования JBoss в нем было найдено много уязвимостей, но в данной статье речь пойдет об одной из самых критичных. Давайте рассмотрим JBoss с настройками по умолчанию.


Рисунок 1. «Jmx-консоль по умолчанию»

При некорректном конфигурировании нарушители могут создать хаос. Так как доступ к jmx консоли можно осуществить удаленно, нарушители могут опубликовать свои war-файлы или шелл на сервере, используя функцию DeploymentScanner. В следующем разделе мы рассмотрим пример эксплуатации данной уязвимости.

Эксплуатация уязвимости в действии.

Первым делом для осуществления взлома большинство начнет искать программы вроде metasploit, nmap, nessus и т.д. Они нам не понадобятся! Так и есть, вы прочитали все правильно. Для взлома JBoss сервера вам нет необходимости использовать какие-либо специализированные приложения, все, что вам нужно – jsp shell и браузер. С помощью запроса inurl:jmx-console/HtmlAdaptor в Google мы найдем используемые jmx консоли. Результат представлен на следующем рисунке:

У большинства JBoss серверов используется аутентификация по умолчанию. Стандартные настройки не ограничивают доступ к консоли и web-интерфейсу администрирования, что позволяет нарушителям пройти аутентификацию и получить права администратора. Выбираем любую из найденных ссылок и бинго! Получаем доступ к jmx-консоли.

Для дальнейших действий нам необходим JSP шелл, который можно легко скачать в интернете. Что ж, можно двигаться дальше.

Для размещения нашего шелла воспользуемся функцией DeploymentScanner в jmx консоли, с помощью команды addURL() добавим новый URL с нашим шеллом. В дальнейшем JBoss будет использовать приложение, расположенное по данному адресу. Далее необходимо подождать, пока DeploymentScanner опубликует файл, и затем мы получим доступ к нему. Представим, что мы залили шелл на сайт abc.com/attack/cmd.jsp, теперь необходимо его опубликовать. Заходим в DeploymentScanner в консоли.

Добавляем URL с шеллом в jmx консоли.

После того как URL добавлен, вызываем функцию. Как видно на предыдущем рисунке, на странице есть кнопка для вызова функции. После выполнения приложение выводит сообщение об успешном запуске.

После минутного ожидания мы получили доступ! Теперь на сервере у нас есть свой шелл =)

Какой сюрприз! У нашего шелла права root’а!

Заключение

Можно сказать, что аутентификация с помощью настроек по умолчанию – рождественский подарок нарушителям. Администраторы, как правило, не придают этому особого значения, но последствия могут быть катастрофическими. Нарушитель может получить контроль над сервером, а также:
  • Получить права root
  • Получить доступ к закрытой информации
  • Использовать сервер для размещения вредоносного ПО
  • Использовать сервер в ходе массированных атак
  • Заражать компьютеры, обращающиеся к данному серверу

И это еще не полный список!

Что же нужно сделать администраторам?

  • Закрыть удаленный доступ
  • Если это невозможно сделать, необходимо использовать надежный пароль

Небольшая осторожность поможет сохранить закрытые данные вашей организации. На этом все. Благодарю на внимание.

Ссылки:

http://en.wikipedia.org/wiki/JBoss_application_server
http://community.jboss.org/wiki/SecureTheJmxConsole

Устали от того, что Интернет знает о вас все?

Присоединяйтесь к нам и станьте невидимыми!