В браузерном дополнении Cisco WebEx выявлен URL, позволяющий выполнить код в системе
24 января 2017 года
В браузерном дополнении, устанавливаемом при использовании платформы для проведения web-конференций Cisco WebEx, выявлена показательная уязвимость, позволяющая при открытии в браузере специально оформленной страницы выполнить код на уровне операционной системы с правами текущего пользователя. Платформа WebEx получила большое распространение в корпоративной среде и насчитывает более 20 млн пользователей.
Уязвимость вызвана наличием предопределённого идентификатора, позволяющего передать дополнению команды (возможность используется для встраивания на сайты виджетов WebEx). В частности, команды можно передать через запрос со специально оформленной страницы, обращение с которой может быть скрыто от пользователя путем применения блоков iframe. Так как дополнение реализовано в виде надстройки над нативным кодом, вызываемым при помощи API nativeMessaging, атакующие могут добиться выполнения вызовов nativeMessaging от имени дополнения и организовать выполнение произвольного кода на уровне системы.
Эксплоит достаточно прост и сводится к передаче сообщения WebEx с любой страницы, названной "cwcsf-nativemsg-iframe-43c85c0d-d633-af5e-c056-32dc7efc570b.html" (название принципиально, так как является идентификатором, позволяющим выполнить действия на стороне дополнения). Для выполнения кода используется команда GpcInitCall, позволяющая вызвать функцию из нативного компонента. Например, в подготовленном для платформы Windows эксплоите осуществляется обращение к библиотеке "MSVCR100.DLL" и вызов функции "_wsystem()". В качестве примера приведён запуск калькулятора после открытия в браузере подготовленной атакующими web-страницы.
В дополнении подобная функциональность используется для передачи события "launch_meeting", в результате которого управление передаётся установленному в систему коммуникационному клиенту WebEx (разделяемая библиотека "atmccli"). Передаваемые в составе события "launch_meeting" команды вызывают обработчики, реализованные в виде функций, экспортируемых библиотекой "atmccli". Так как имя библиотеки и команда передаётся в составе запроса, атакующий имеет возможность вместо "atmccli" указать любую системную библиотеку, а вместо команды - любую экспортируемую этой библиотекой функцию. Подобные возможности оставались бы особенностью внутреннего кода дополнения, если бы не наличие скрытого идентификатора, позволяющего передавать команды с внешних ресурсов.
var msg = {... GpcComponentName: btoa("MSVCR100.DLL"), GpcInitCall: btoa("_wsystem(ExploitShellCommand);"), ExploitShellCommand: btoa("calc.exe"), } document.dispatchEvent(new CustomEvent("connect", { detail: { token: "token" }})); document.dispatchEvent(new CustomEvent("message", { detail: { message: JSON.stringify(msg), message_type: "launch_meeting", timestamp: (new Date()).toUTCString(), token: "token" } }));
Разработчики Firefox уже добавили дополнение WebEx Extension в черный список. Дополнение также временно заблокировано в Chrome web store. Компания Cisco подготовила исправление (1.0.3), но оно не блокирует скрытый идентификатор, а ограничивает возможность выполнения запросов с сайтов *.webex.com и *.webex.com.cn при обязательном применении HTTPS. Ряд разработчиков Chromium не согласились с таким исправлением, так как по сути владельцам поддоменов webex.com, среди которых корпоративные клиенты, оставлена возможность выполнения любого кода на стороне системы пользователя и возникают вопросы о возможности осуществления XSS-атак.
Источники
править
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.
Комментарии
Если вы хотите сообщить о проблеме в статье (например, фактическая ошибка и т. д.), пожалуйста, используйте обычную страницу обсуждения.
Комментарии на этой странице могут не соответствовать политике нейтральной точки зрения, однако, пожалуйста, придерживайтесь темы и попытайтесь избежать брани, оскорбительных или подстрекательных комментариев. Попробуйте написать такие комментарии, которые заставят задуматься, будут проницательными или спорными. Цивилизованная дискуссия и вежливый спор делают страницу комментариев дружелюбным местом. Пожалуйста, подумайте об этом.
Несколько советов по оформлению реплик:
- Новые темы начинайте, пожалуйста, снизу.
- Используйте символ звёздочки «*» в начале строки для начала новой темы. Далее пишите свой текст.
- Для ответа в начале строки укажите на одну звёздочку больше, чем в предыдущей реплике.
- Пожалуйста, подписывайте все свои сообщения, используя четыре тильды (~~~~). При предварительном просмотре и сохранении они будут автоматически заменены на ваше имя и дату.
Обращаем ваше внимание, что комментарии не предназначены для размещения ссылок на внешние ресурсы не по теме статьи, которые могут быть удалены или скрыты любым участником. Тем не менее, на странице комментариев вы можете сообщить о статьях в СМИ, которые ссылаются на эту заметку, а также о её обсуждении на сторонних ресурсах.