Специалисты компании Check Point выявили 25 уязвимостей в популярных RDP-клиентах для Windows и Linux. Исследователи провели аудит FreeRDP, rdesktop и встроенного в Windows RDP-клиента и предупреждают, что более десятка обнаруженных в этих решениях проблем могут использоваться для удаленного исполнения кода. Стоит отметить, что специалисты в основном концентрировались на векторах атак, исходящих со стороны вредоносного сервера. К примеру, такие атаки могут быть направлены на ничего не подозревающего администратора или сотрудника поддержки, не ожидающих «подвоха» от RDP.
Исследователи обнаружили, что RDP-сервер может использоваться для самых разных атак на удаленного клиента. Так, выяснилось, что во многих случаях не производится должная проверка длины пакетов, из-за чего сервер может направлять клиенту вредоносные пакеты, провоцируя на его стороне возникновение ошибок out-of-bounds чтения, переполнение целочисленного значения и подготавливая почту для RCE-атак.
Еще одной проблемой исследователи называют использование сервером и клиентом общего буфера обмена. Так как трафик не «очищается» должным образом, в буфер могут попадать данные, которые пригодятся злоумышленнику для атак на обход каталога, а также могут быть чреваты утечками информации, так как сервер может «подсматривать» за активностью в буфере клиента. Например, клиент локально копирует пароль администратора, и сервер «узнает» его тоже.
Также вредоносный сервер может модифицировать любые данные в буфере, которым пользуется клиент, даже если последний не осуществлял операцию «Копировать». Достаточно лишь кликнуть «Вставить», когда RDP-соединение активно, и клиент уже будет уязвим перед подобной атакой.
«Например, вы копируете файл, и сервер может модифицировать ваш (исполняемый?) файл/использовать вашу копию для добавления дополнительных файлов/реализовать обход каталога, используя представленный нами PoC-эксплоит», — пишут исследователи и предупреждают, что таким способом злоумышленник может, к примеру, поместить любые файлы в директорию Startup, и те будут выполняться при каждом запуске системы. Демонстрацию такой атаки эксперты показывают в этом видео.
Наибольшее количество проблем было найдено в rdesktop: 19 уязвимостей, 11 из которых оцениваются как «крупные» (major), могут вести к исполнению произвольного кода или отказу в обслуживании. В составе FreeRDP (одного из самых популярных и старых RPD-клиентов на GitHub) были обнаружены 6 уязвимостей, 5 из которых так же имеют RCE- и DoS-потенциал. Видео ниже показывает атаку на FreeRDP с использованием бага CVE 2018-8786.
В итоге наиболее безопасным был признан встроенный в Windows клиент RPD, однако и здесь не обошлось без проблем. Именно к этому клиенту относится вышеупомянутая проблема использования общего буфера обмена, причем эта функциональность включена по умолчанию.
Эксперты с сожалением констатируют, что хотя представители Microsoft подтвердили все выводы, сделанные Check Point, разработчики отказались признавать обнаруженные проблемы уязвимостями и присваивать им идентификатор CVE. Фактически в Microsoft заявили, что это не баг, а легитимная функциональность, а значит, никаких пачтей можно не ждать.
В свою очередь, разработчики FreeRDP и rdesktop уже выпустили обновления для своих продуктов, исправив найденные специалистами бреши: версии v2.0.0-rc4 и 1.8.4, соответственно.
Фото: Check Point