Уязвимости в приложении Empirum могут быть использованы в атаках на корпоративные сети.
Автор: Matthias Deeg
Уязвимости в приложении Empirum могут быть использованы в атаках на корпоративные сети.
Введение
В первой части данного цикла было рассказано об уязвимостях, касающихся управления учетными записями в приложении FrontRange DSM [1]. Эксплуатируя найденные бреши, злоумышленник может получить административные права ко всему домену в ОС Windows.
В еще одном приложении, предназначенном для управления клиентами, под названием Empirum от компании Matrix42 [3] и в особенности в компоненте Empirum Inventory злоумышленникам тоже есть чем поживиться, поскольку учетные записи пользователей защищаются неудовлетворительным образом.
Бреши, касающиеся управления учетными записи, не являются чем-то новым и регулярно эксплуатируются специалистами компании SySS, начиная с 2009 года, во время множества пентестов. Весьма вероятно, что злоумышленники тоже в курсе дела и успешно проводят атаки, которые зачастую приводят к получению административных прав к целым Windows-доменам. Насколько известно, в компании Matrix42 знают об этой проблеме, начиная с конца 2009 года. Кроме того, 14 февраля 2013 года информация о данных уязвимостях была обнародована независимым исследователем под именем otr в рассылке Full Disclosure [4]. Несмотря на это, бреши до сих пор не исправлены.
Оценка уровня угрозы
Во время оценки уровня безопасности клиента под управлением Empirum специалисты компании SySS выяснили, что компонент Empirum Inventory хранит и использует конфиденциальную информацию (учетные записи пользователей) небезопасным образом. Сей факт позволяет злоумышленникам или вредоносам, имеющим доступ к файловой системе клиента или общим сетевым каталогам с ограниченными привилегиями, извлекать незашифрованные пароли к учетным записям, которые используются в приложении Empirum.
Полученные пароли можно использовать для повышения привилегий и неправомерного доступа к другим клиентам и/или серверам корпоративной сети, поскольку для корректной работы Empirum требуется как минимум один аккаунт с правами локального администратора.
Empirum поддерживает следующие 4 формата для хранения информации о паролях в зашифрованном виде в различных конфигурационных файлах и реестре:
При хранении паролей в форматах SETUP, SYNC и EIS используется обратимое шифрование с использованием утилиты EmpCrypt.exe. Обычно, только администраторы имеют доступ к этому приложению, которое, к тому же, не устанавливается в управляемых системах. Однако в некоторых компонентах (например, Empirum Inventory) и модулях (например, EmpInventory.exe, ShowInventory.exe), которые устанавливаются на управляемых системах, есть функции для дешифровки паролей, хранящихся в вышеупомянутых форматах. При хранении паролей в формате MD5 используются несоленые голые MD5-хеши.
Конфигурационные файлы, содержащие зашифрованные пароли в форматах SETUP, SYNC, EIS или MD5, хранятся либо локально в управляемых системах (например, файл AgentConfig.xml), либо в общих сетевых каталогах (INI-файлы).
Пользователь с ограниченными правами имеет доступ на чтение к локальным XML-файлам и к INI-файлам, которые обычно хранятся в следующих каталогах:
Анализ показал, что для форматов SETUP, SYNC и EIS используются различные алгоритмы шифрования. В каждом случае предусмотрен свой жестко заданный криптографический ключ или шифровальная таблица (permutation table).
Затем специалисты компании SySS выяснили, что процесс EmpInventory.exe, запускаемый от имени пользователя с ограниченными привилегиями, дешифрует и использует учетные записи, которые хранятся в конфигурационных файлах. Следовательно, злоумышленник или вредонос тоже может получить доступ к этим паролям, если получит контроль над процессом EmpInventory.exe.
Так же как и в случае с FrontRange DSM (см. первую часть) доступ к паролям через процесс EmpInventory.exe можно получить в режиме реального времени при помощи отладчика OllyDbg [5].
Другой способ – расшифровать пароли, хранимые в конфигурационных файлах. Для этого необходимо разобраться с алгоритмами шифрования форматов SETUP, SYNC и EIS. Злоумышленник может проанализировать компоненты на стороне клиента, например, файл EmpInventory.exe или библиотеку Cryptography.dll, и использовать полученные знания для расшифровки.
Специалисты компании SySS разработали утилиту Empirum Password Decryptor под Windows и Linux, способную расшифровывать пароли, хранимые в форматах SETUP, SYNC и EIS. Ниже показано три примера работы утилиты под различные форматы паролей.
$ ./epd ‚*SKZjk`&gp2‘
____ ___ ___
|___ |__] | \
|___ | |__/
Empirum Password Decryptor v2.0 by Matthias Deeg - SySS GmbH (c) 2009-2015
[*] Read Empirum SETUP password
[+] The decrypted password is: P@ssw0rd!
$ ./epd 12B65B9A30D4237D0A5F8D50341581B64207CE74CDE2ED7632D8
D55EDE775EF4A71631812F2E4E39BD951E26991F307F
____ ___ ___
|___ |__] | \
|___ | |__/
Empirum Password Decryptor v2.0 by Matthias Deeg - SySS GmbH (c) 2009-2015
[*] Read Empirum SYNC password
[+] The decrypted password is: P@ssw0rd!
E:\>epd.exe „A\“z!‘ ^|-%-*),$ \“!&(xiYJ|+./‘(=&)+#$,#%./*X“
____ ___ ___
|___ |__] | \
|___ | |__/
Empirum Password Decryptor v2.0 by Matthias Deeg - SySS GmbH (c) 2009-2015
[*] Read Empirum EIS password
[+] The decrypted password is: P@ssw0rd!
Найденные уязвимости присутствуют в следующих версиях Empirum:
Как описано в бюллетене по безопасности Empirum Password Obfuscation Design Flaw [4], утилиту EmpCrypt.exe можно легко пропатчить посредством модификации инструкции условного перехода для того, чтобы расшифровать пароли в форматах SETUP, SYNC и EIS. Следовательно, злоумышленник легко сможет расшифровать пароли, не прикладывая особых усилий, если получит доступ к файлу EmpCrypt.exe, либо приложениям наподобие Empirum Password Decryptor. Впрочем, Empirum Password Decryptor не будет выкладываться во всеобщий доступ.
Заключение
Приложение Empirum защищает учетные записи пользователей неудовлетворительным образом. Пользователь с ограниченными привилегиями имеет доступ к зашифрованным паролям. Получив доступ к криптографическому ключу или шифровальной таблице, злоумышленник легко может расшифровать пароли, хранимые в форматах SETUP, SYNC и EIS. Кроме того, процесс EmpInventory.exe работает от имени пользователя с ограниченными привилегиями, что является еще одной брешью. Кроме того, злоумышленник легко может получить доступ к паролям посредством отладчика.
Специалисты компании SySS оценивают уровень угрозы как высокий, поскольку посредством найденных уязвимостей легко можно расширить привилегии вплоть до получения административных прав ко всему домену.
Разработчикам Matrix42 рекомендуется изменить архитектуру в части защиты учетных записей и разрешить доступ к этой информации только от имени пользователей с расширенными привилегиями. В этом случае злоумышленник или вредонос не сможет получить доступ к расшифрованным паролям.
На данный момент специалисты компании SySS не знают, исправлены ли найденные уязвимости. Если вы используете Empirum для управления клиентами, и эти бреши у вас присутствуют, свяжитесь с компанией Matrix42.
Ссылки
[1] SySS Security Advisory SYSS-2014-007, https://www.syss.de/fileadmin/dokumente/Publikationen/Advisories/SYSS-2014-007.txt
[2] Matthias Deeg, Privilege Escalation via Client Management Software, https://www.syss.de/filead min/dokumente/Publikationen/2015/Privilege_Esca lation_via_Client_Management_Software.pdf
[3] Matrix42 Website, https://www.matrix42.com/en/
[4] Full Disclosure Mailing List, Empirum Password Obfuscation Design Flaw, http://seclists.org/fulldis closure/2013/Feb/71
[5] OllyDbg Website, http://www.ollydbg.de/
[6] 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