28.09.2015

Повышение привилегий через приложения, предназначенные для управления клиентами. Часть 1

image

Уязвимости в приложении FrontRange DSM могут быть использованы в атаках на корпоративные сети.

Автор: Matthias Deeg

Уязвимости в приложении FrontRange DSM могут быть использованы в атаках на корпоративные сети.

Введение

Управление клиентами – чрезвычайно важная задача, встречающаяся на каждом шагу в жизненном цикле современной IT-среды (да и вообще любой компьютерной системы).

Существует множество приложений, предназначенных для управления клиентами, от различных производителей. Подобное программное обеспечение помогает IT-менеджерам и IT-администраторам решать различные задачи. Например:

  • Проводить инвентаризацию.
  • Управлять патчами.
  • Внедрять новое ПО.
  • Управлять лицензиями.

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

Во время пентестов на клиентах и серверах специалисты компании SySS смогли найти множество уязвимостей, напрямую влияющих на уровень безопасности, в приложении FrontRange Desk­top & Server Management (DSM) v7.2.1.2020 [1]. Найденные бреши легко можно использовать для повышения привилегий (читай, получения административных прав) в домене на базе ОС Windows.

Оценка уровня угрозы

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

Полученные пароли можно использовать для повышения привилегий и получения неправомерного доступа к другим клиентам или серверам внутри корпоративной сети, поскольку для корректной работы FrontRange DSM необходима как минимум одна учетная запись локального администратора.

FrontRange DSM хранит пароли различных пользователей зашифрованными в двух конфигурационных файлах NiCfgLcl.ncp и NiCfgSrv.ncp.

Эти конфигурационные файлы содержат зашифрованные пароли для различных учетных записей (см. [2]). Например:

  • DSM Runtime Service
  • DSM Distribution Service
  • Business Logic Server (BLS) Authentication
  • Database account

Количество учетных записей, необходимых для корректной работы FrontRange DSM, зависит от уровня безопасности, выбираемого во время установки (см. Рисунок 1).

Рисунок 1: Настройка уровня безопасности во время установки FrontRange DSM, который влияет на количество используемых учетных записей (одна, две или три)

Пользователь с ограниченными правами в Windows-домене имеет доступ на чтение к этим конфигурационным файлам, находящимся обычно здесь:

  • %PROGRAMFILES(X86)\NetInst\NiCfgLcl.ncp (локально на управляемом клиенте)
  • %PROGRAMFILES(X86)\NetInst\NiCfgSrv.ncp (локально на управляемом клиенте)
  • \\<FRONTRANGE SERVER>\DSM$\NiCfgLcl.ncp (удаленно в общем сетевом каталоге)
  • \\<FRONTRANGE SERVER>\DSM$\NiCfgSrv.ncp (удаленно в общем сетевом каталоге)

Анализ показал, что пароли шифруются при помощи жестко заданного криптографического ключа, находящегося внутри исполняемого файла NiInst32.exe.

Затем специалисты компании SySS выяснили, что процесс NiInst32.exe, запущенный от имени пользователя с ограниченными привилегиями, дешифрует и использует учетные записи, находящиеся в конфигурационных файлах. Следовательно, злоумышленник или вредонос, работающий в том же контексте, может получить контроль над этим процессом и доступ к расшифрованным паролям.

Например, подобная атака может быть проведена в режиме реального времени от имени пользователя с ограниченными привилегиями при помощи отладчика OllyDbg [3], работающего на уровне приложения.

На рисунке ниже показан пример успешного получения расшифрованного пароля у пользователя DSM Dis­tribution Service. Чтобы получить пароль, достаточно поставить точку останова на API-функцию LogonUserW в модуле ADVAPI32.DLL.

Рисунок 2: Извлечение расшифрованного пароля, принадлежащего пользователя DSM Distribution Service, из памяти процесса NiInst32.exe при помощи OllyDbg

Еще один способ – расшифровка паролей из конфигурационных файлов. Для этого нужно знать алгоритм шифрования. Имея доступ к файловой системе жертвы, злоумышленник может проанализировать компоненты, используемые приложением FrontRange DSM на стороне клиента (например, исполняемый файл NiInst32.exe или динамическую библиотеку icdbclnt.dll). После выяснения алгоритма шифрования, расшифровать пароли не составит особого труда.

Специалисты компании SySS разработали программу, которая расшифровывает пароли, хранящиеся в конфигурационных файлах NiCfgLcl.ncp и NiCfgSrv.ncp. На рисунке ниже показан пример успешной расшифровки пароля.

Рисунок 3: Расшифровка пароля прошла успешно

Найденные уязвимости могут быть успешно проэксплуатированы в следующих версиях:

  • FrontRange DSM v7.2.1.2020
  • FrontRange DSM v7.2.2.2331

Заключение

В приложении FrontRange DSM неудачно реализована защита учетных записей. Пользователь, имеющий доступ к файловой системе только на чтение, может скопировать конфигурационные файлы к себе в систему и расшифровать пароли при помощи криптографического ключа, который находится в исполняемом файле. Кроме того, пароли могут быть получены в режиме реального времени из памяти процесса NiInst32.exe. При этом злоумышленнику или вредоносу также не требуется расширенных привилегий.

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

В общем, доступ как зашифрованным, так и незашифрованным паролям должен быть ограничен настолько, насколько это возможно. Конфигурационные файлы, к которым есть доступ у непривилегированных пользователей – не лучшее место для хранения подобной информации. Кроме того, не следует разрешать процессам с низким уровнем привилегий использовать эти файлы.

Схожая уязвимость была найдена в компоненте McAfee Security Agent, являющимся часть антивируса McAfee VirusScan Enterprise. С более подробной информацией можно ознакомиться в статье Privilege Escalation via Antivirus Software [4], написанной в 2011 году. Еще одна популярная уязвимость, схожая с той, что описана в этой статье, связана с установкой паролей через Group Policy Preferences (GPP) в операционных системах семейства Microsoft Windows Server. Ту брешь также можно использовать для расширения привилегий [5].

Специалисты компании SySS рекомендуют так изменить архитектуру FrontRange DSM в той части, которая связана с управлением клиентами, чтобы доступ к конфиденциальной информации был только от имени учетных записей с высокими привилегиями (например, только от имени системных учетных записей ОС Windows). В этом случае злоумышленник или вредонос с низкими привилегиями не сможет получить доступ к паролям.

Специалисты компании SySS связались с представителями FrontRange USA Inc. и проинформировали их о найденной уязвимости (см. бюллетень SYSS-2014-007 [6]). В новой версии приложения, начиная от 30 апреля 2015 года, брешь была исправлена. За более подробной информацией обращайтесь к разработчикам FrontRange.

Ссылки

[1] FrontRange DSM Web site, http://www.frontrange.com/heat/products/client-management

[2] FrontRange DSM Getting Started Guide

[3] OllyDbg Web site, http://www.ollydbg.de/

[4] Matthias Deeg and Sebastian Schreiber, Privilege Escalation via Antivirus Software, https://www.syss.de/fileadmin/dokumente/Publikationen/2011/SySS_2011_Deeg_Privilege_Escalation_via_Antivirus_Software.pdf

[5] Microsoft Security Bulletin MS14-025, Vulnerability in Group Policy Preferences Could Allow Elevation of Privilege (2962486), https://technet.microsoft.com/en-us/library/security/ms14-025.aspx

[6] SySS Security Advisory SYSS-2014-007, https://www.syss.de/fileadmin/dokumente/Publikationen/Advisories/SYSS-2014-007.txt