Страницы

понедельник, 20 июня 2011 г.

Безопасность ServiceDesk или пентесты на скорость

При проведении тестирований на проникновение эксперты компании Positive Technologies часто сталкиваются с веб-based решениями уровня Enterprise, расположенными как внутри корпоративной сети, так и на ее периметре. Примером подобных систем могут быть приложения типа ServiceDesk, ERP, биллинг и пр. Тенденция «все через 80й порт» зачастую приводит к тому, что в Интернет публикуются приложения, разработанные для внутренних сетей и слабо готовые к выживанию в агрессивной среде Всемирной Паутины.

Сегодня мы заострим внимание на приложении поддержки пользователей ManageEngine ServiceDesk, которая впервые попала в поле зрения позитивной команды пентестеров в ноябре 2010 года при проведении работ по оценке защищенности для одной крупной организации.

Система ManageEngine ServiceDesk представляет собой коммерческий программный комплекс на языке Java, предназначенный для автоматизации работы службы технической поддержки в соответствии с рекомендациями ITIL/ITSM.

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

Установив систему на тестовой площадке, с помощью фаззинга и поверхностного ручного анализа было обнаружено несколько уязвимостей, таких как: (http://www.ptsecurity.ru/advisory1.aspx):
- Исполнение произвольных команд в ManageEngine ServiceDesk Plus 8.0.0
- Раскрытие информации в ManageEngine ServiceDesk Plus 8.0.0
- Выход за корневой каталог в ManageEngine ServiceDesk Plus 8.0.0

Следуя политике разглашения информации об уязвимостях и взаимодействия с производителями ПО были подготовлены и отправлены производителю соответствующие уведомления. Поскольку одна из уязвимостей была раскрыта 23.06.2011 на популярном ресурсе exploit-db.com (ManageEngine Service Desk Plus 8.0 Directory Traversal Vulnerability http://www.exploit-db.com/exploits/17437/), команда Positive Research приняла решение опубликовать ее детальное описание.

Уязвимость, о которой пойдет речь, содержится в сценарии FileDownload.jsp, который предназначен для загрузки файлов с удаленного сервера. Уязвимость позволяет выйти за пределы корневого каталога и получить содержимое файла, расположенного за пределами каталога веб директории ServiceDesk. Данная уязвимость особенно опасна, поскольку доступ к функциям сценария FileDownload.jsp имеют неавторизованные пользователи. Уязвимость присутствует в дистрибутивах для различных ОС. В случае Windows атакующий может получить любой файл с логического диска, на который установлена система. Для систем unix-like атакующий может получить любой файл для чтения которого достаточно прав у пользователя, от имени которого запущен сервис приложения.

В ходе теста на проникновение данная уязвимость была использована для чтения файлов резервных копий системы ManageEngine ServiceDesk.

Как и в любом приложении Enterprise уровня, ManageEngine ServiceDesk обладает функционалом резервного копирования собственной базы данных (выполняет подходы, заложенные в ITIL;)).

Вспомнив об основном предназначении системы, можно понять, что в резервную копии базы приложения попадает множество чувствительных данных, например: идентификаторы и пароли пользователей LDAP/Active Directory/сетевых устройств, SNMP Community Strings и т.п.

После анализа архитектуры резервного копирования, реализованной в ManageEngine ServiceDesk, стало понятно, что файлы резервной копии содержатся в каталоге /backup/ и имеют имя вида 'database_DD_MM_YYYY_HH_MM.data' для резервной копии базы и его содержимого, и fullbackup_DD_MM_YYYY_HH_MM.data для резервной копии, содержащей также вложения файлов пользователей.

Для проведения атаки в самом простом сценарии может использоваться перебор, но это не наш метод. Для экономии электроэнергии (мы поклонники зеленых технологий) был выбран более эффективный способ - анализ системных журналов ManageEngine. В полученных файлах была быстро обнаружена информация о создании файлов резервной копии. Эксплоит реализующий данную атаку представлен ниже.

Наиболее ценные данные, такие, например, как пароли пользователей Active Directory, хранятся в базе приложения ManageEngine ServiceDesk в зашифрованном виде. Понятно, что шифрование обратимое. Но на то оно и называется обратимым, потому что существует способ получить исходные данные. Код, позволяющий восстановить пароли, приведен ниже.

Таким образом, если для синхронизации данных между ManageEngine ServiceDesk и Active Directory используется привилегированная учетная запись (информация хранится в таблицах domainlogininfo (имя доменного пользователя) и passwordinfo (пароль доменного пользователя)), а веб-интерфейс приложения доступен из Интернет, тестирование на проникновение занимает не более 5 минут с момента обнаружения приложения ManageEngine ServiceDesk.

Описанная уязвимость «Directory Traversal Vulnerability» была устранена в версии ManageEngine ServiceDesk 8_0_0_SP-0_12_0 и доступна на сайте производителя (http://www.manageengine.com/products/service-desk/). Другие уязвимости производитель планирует устранить в ближайшее время.

Комментариев нет:

Отправить комментарий