уязвимость удаленного выполнения кода
Удаленное выполнение произвольного кода в протоколе RDP
Стало известно об опасной уязвимости в протоколе RDP: корпорация Microsoft подготовила экстренный патч для уязвимости с идентификатором CVE-2019-0708, позволяющей выполнить произвольный код на целевой системе.
Уязвимость удаленного выполнения кода существует в службах удаленных рабочих столов (ранее они назывались службами терминалов), когда злоумышленник, не прошедший проверку подлинности, подключается к целевой системе с помощью RDP и отправляет специально созданные запросы. Эта уязвимость использует предаутентификацию и не требует взаимодействия с пользователем. Злоумышленник, успешно воспользовавшийся данной уязвимостью, может выполнить произвольный код в целевой системе.
The vulnerability (CVE-2019-0708) resides in the “remote desktop services” component built into supported versions of Windows, including Windows 7, Windows Server 2008 R2, and Windows Server 2008. It also is present in computers powered by Windows XP and Windows 2003, operating systems for which Microsoft long ago stopped shipping security updates.
Чтобы воспользоваться уязвимостью, злоумышленнику необходимо отправить специально созданный запрос службе удаленных рабочих столов целевых систем через RDP.
Интересным является тот факт, что эту или схожую уязвимость продавали в «даркнете» как минимум с сентября прошлого года:
description:
This is a bug in RDP protocol.
That means you may exploit any Windows remotely who enables RDP.
vulnerability type:
Heap overflow
affected versions:
Windows 2000/XP/2003/Vista/7/2008(R2)
privilege level obtained:
SYSTEM privilege
reliability:
90% for one core / 30% for multiple core
exploitation length:
around 10 seconds
Possible buyer, [30.09.18 12:58]
affected versions:
Windows 2000/XP/2003/Vista/7/2008(R2)
LOL
Possible buyer, [30.09.18 12:58]
is it pre-auth or post-auth vuln?
SELLER, [30.09.18 12:59]
Pre
Possible buyer, [30.09.18 12:59]
for how much they/he/she sells it?
SELLER, [30.09.18 12:59]
500
SELLER, [30.09.18 12:59]
Shared
Possible buyer, [30.09.18 12:59]
500k USD?
SELLER, [30.09.18 13:00]
So u can guess it was sold few times
This vulnerability is pre-authentication and requires no user interaction. In other words, the vulnerability is ‘wormable’, meaning that any future malware that exploits this vulnerability could propagate from vulnerable computer to vulnerable computer in a similar way as the WannaCry malware spread across the globe in 2017.
Рекомендации клиентов для CVE-2019-0708 | Уязвимость выполнения удаленного кода служб удаленных рабочих столов: 14 мая 2019 г.
Корпорации Майкрософт известно, что некоторые клиенты под управлением версий Windows, которые больше не получают основной фазы поддержки. Это означает, что пользователям не имеют полученных обновлений для системы безопасности для защиты систем от CVE-2019-0708, который является критической уязвимости удаленного выполнения кода.
Учитывая потенциальное воздействие на клиентов и их бизнеса, мы принял решение выпустить обновления безопасности для платформ, которые больше не в обычных поддержки (см. Загрузка ссылок в таблице ниже). Эти обновления доступны из каталога Центра обновления Майкрософт только. Корпорация Майкрософт рекомендует под управлением одной из этих операционных систем загрузить и установить обновление как можно быстрее.
Windows XP SP3 x86
Удаленное выполнение кода
Windows XP Professional x64 Edition SP2
Удаленное выполнение кода
Windows XP Embedded с пакетом обновления 3 x86
Удаленное выполнение кода
Windows Server 2003 SP2 x86
Удаленное выполнение кода
Windows Server 2003 x64 Edition с пакетом обновления 2
Удаленное выполнение кода
Windows Server 2003 R2 с пакетом обновления 2
Удаленное выполнение кода
Windows Server 2003 R2 x64 Edition с пакетом обновления 2
Удаленное выполнение кода
Windows Vista с пакетом обновления 2 (SP2)
Rизобразить эмоции выполнение кода
Windows Vista x64 Edition с пакетом обновления 2
Rизобразить эмоции выполнение кода
Для получения дополнительных сведений об уязвимости, перейдите к CVE-2019-0708.
Сведения о безопасности и защиты
Узнайте, как мы защита от атак через Интернет: Корпорации Майкрософт по безопасности
Что такое удаленное выполнение кода. Уроки хакинга — глава 12.
Удаленное выполнение кода возникает из-за внедренного кода, который интерпретируется и выполняется уязвимым приложением. Причиной данной уязвимости является пользовательский ввод, который приложение использует без надлежащей фильтрации и обработки.
Это может выглядить следующим образом:
Здесь уязвимое приложение может использовать url index.php?page=1, однако, если пользователь введёт index.php?page=1;phpinfo(), приложение выполнит функцию phpinfo() и вернёт приложению её результат.
Также RCE иногда используется для обозначения Command Injection, которые OWASP различает. С помощью Command Injection, в соответствии с OWASP, уязвимое приложение выполняет произвольные команды в принимающей их операционной системе. Опять же, это становится возможным благодаря недостаточной обработке и проверки пользовательского ввода, что приводит к тому, что пользовательский ввод выпоняется операционной системой, как команда.
В PHP, к примеру, это может быть из-за того, что пользовательский ввод будет вставлен в функцию system().
Примеры удаленного выполнения кода.
1. Polyvore ImageMagick
Сложность: Высокая
Ссылка на отчёт: http://nahamsec.com/exploiting-imagemagick-on-yahoo/46
Дата отчёта: Май 5, 2016
Описание:
ImageMagick представляет собой программный пакет, обычно используемый для обработки изображений, например кадрирование, масштабирование, и так далее. Imagick в PHP, rmagick и paperclip в Ruby, а также imagemagick в NodeJS используют этот пакет, и в апреле 2016 в нем было обнаружено множество уязвимостей, одна из которых могла быть использована атакующими, чтобы выполнить удаленный код, на чём я и сосредоточился.
В двух словах, ImageMagick не фильтровал надлежащим образом получаемые имена файлов и в результате использовался для выполнения системного вызова system(). В итоге атакующий мог вставлять команды вроде https://example.com”|ls “-la, и при получении они были исполнены. Пример с ImageMagick будет выглядеть так:
Что интересно, ImageMagick определяет свой собственный синтаксис для файлов Magick Vector Graphics (MVG), а значит, атакующий мог создать файл exploit.mvg со следующим кодом:
Потом это будет передано библиотеке и, если сайт уязвим, код выполнится и отобразит перечень файлов в директории.
Зная это, Бен Садежепур протестировал купленный Yahoo сервис Polyvore на эту уязвимость. Как сказано в его блоге, Бен сначала протестировал уязвимость на локальной машине к которой он имел доступ, чтобы подтвердить, что mvg файл работает правильно. Вот код, который он использовал:
Здесь вы можете видеть, что он использовал библиотеку cURL, чтобы сделать обратиться к SOMEIPADDRESS (измените это на IP адрес уязвимого сервера). В случае успеха, вы должны получить следующий ответ:
Далее Бен посетил Polyvore, загрузил изображение в качестве аватара и получил следующий ответ от сервера:
Ben Sadeghipour Polyvore ImageMagick response
Выводы
Итоги
Удаленное выполнение кода, как и остальные уязвимости, возникает в результате неправильной фильтрации и обработки пользовательского ввода. В предоставленом примере ImageMagick неправильно обрабатывал контент, который мог быть зловредным. Это, вместе с знанием Бена о уязвимости, позволило ему найти и протестировать те зоны, которые могли быть уязвимыми. Что касается поиска подобных уязвимостей, быстрого ответа не существует. Будьте в курсе вышедших CVE и следите за ПО, которое используется сайтами и которое может быть устаревшим, т.к. скорее всего оно может быть уязвимым.
В ОС Windows обнаружена критическая RCE-уязвимость уровня EternalBlue
Стало известно о критичной RCE-уязвимости в Службах Удаленных рабочих столов RDS (на более ранних ОС – Служба Терминалов TS ) в ОС Windows (CVE-2019-0708), которая при успешной эксплуатации позволяет злоумышленнику, не прошедшему проверку подлинности, осуществить удаленное выполнение произвольного кода на атакуемой системе.
Cогласно информации, предоставленной компанией Microsoft, для успешной эксплуатации необходимо лишь иметь сетевой доступ к хосту или серверу с уязвимой версией операционной системы Windows. Таким образом, в случае если системная служба опубликована на периметре, уязвимость можно проэксплуатировать непосредственно из сети интернет, без дополнительного способа доставки. Рекомендации по мерам защиты под катом.
На данный момент уязвимость актуальна для нескольких десятков организаций в России и более 2 млн организаций в мире, а потенциальный ущерб от промедления в оперативном реагировании и принятии защитных мер будет сравним с ущербом, нанесённым уязвимостью в протоколе SMB CVE-2017-0144 (EternalBlue).
Для эксплуатации этой уязвимости, злоумышленнику достаточно отправить специально сформированный запрос службе удаленных рабочих столов целевых систем, используя RDP (сам протокол RDP при этом не является уязвимым).
Важно отметить, что любое вредоносное ПО, использующее эту уязвимость, может распространяться с одного уязвимого компьютера на другой аналогично шифровальщику WannaCry, распространившемуся по всему миру в 2017 году.
Версии ОС Windows, подверженные уязвимости:
Windows 7 for 32-bit Systems Service Pack 1
Windows 7 for x64-based Systems Service Pack 1
Windows Server 2008 for 32-bit Systems Service Pack 2
Windows Server 2008 for 32-bit Systems Service Pack 2 (Server Core installation)
Windows Server 2008 for Itanium-Based Systems Service Pack 2
Windows Server 2008 for x64-based Systems Service Pack 2
Windows Server 2008 for x64-based Systems Service Pack 2 (Server Core installation)
Windows Server 2008 R2 for Itanium-Based Systems Service Pack 1
Windows Server 2008 R2 for x64-based Systems Service Pack 1
Windows Server 2008 R2 for x64-based Systems Service Pack 1 (Server Core installation
Windows XP SP3 x86
Windows XP Professional x64 Edition SP2
Windows XP Embedded SP3 x86
Windows Server 2003 SP2 x86
Windows Server 2003 x64 Edition SP2
Remote Desktop глазами атакующего
Компании, у которых не были организованы системы удалённого доступа, в экстренном порядке разворачивали их пару месяцев назад. Не все администраторы были готовы к такой “жаре”, как следствие — упущения в безопасности: некорректная конфигурация сервисов или даже установка устаревших версий ПО с обнаруженными ранее уязвимостями. Одним эти упущения уже вернулись бумерангом, другим повезло больше, но выводы уж точно стоит сделать всем. Лояльность к дистанционной работе кратно возросла, и всё больше компаний принимают удалёнку как допустимый формат на постоянной основе.
Итак, вариантов обеспечения удалённого доступа множество: различные VPN, RDS и VNC, TeamViewer и другие. Администраторам есть из чего выбрать, основываясь на специфике построения корпоративной сети и устройств в ней. Самыми популярными остаются VPN решения, однако, многие небольшие компании выбирают RDS (Remote Desktop Services), они проще и быстрее в развёртывании.
В этой статье мы подробнее поговорим о безопасности RDS. Сделаем краткий обзор известных уязвимостей, а также рассмотрим несколько сценариев старта атаки на сетевую инфраструктуру, основанную на Active Directory. Надеемся, кому-то наша статья поможет провести работу над ошибками и повысить безопасность.
2. Недавние уязвимости RDS/RDP
Любое ПО содержит ошибки и уязвимости, которые эксплуатируются злоумышленниками, и RDS не является исключением. В последнее время Microsoft часто сообщал о новых уязвимостях, мы решили сделать их краткий обзор:
ПО для удалённого доступа получило повышенное внимание как исследователей, так и злоумышленников, поэтому вскоре мы, возможно, услышим о новых подобных уязвимостях.
Хорошая новость в том, что не для всех уязвимостей доступны публичные эксплоиты. Плохая — злоумышленнику, обладающему экспертизой, не составит труда написать эксплоит для уязвимости по описанию, либо используя такие приемы как Patch Diffing (о нём писали наши коллеги в статье). Потому рекомендуем регулярно обновлять ПО и следить за появлением новых сообщений об обнаруженных уязвимостях.
3. Атаки
Мы переходим ко второй части статьи, где покажем, как начинаются атаки на сетевую инфраструктуру, основанную на Active Directory.
Описанные методы применимы для следующей модели нарушителя: злоумышленник, обладающий учётной записью пользователя и имеющий доступ к Remote Desktop Gateway — терминальному серверу (зачастую он доступен, например, из внешней сети). Применив эти методы, злоумышленник сможет продолжить атаку на инфраструктуру, и закрепить свое присутствие в сети.
Конфигурация сети в каждом конкретном случае может отличаться, но описанные приемы довольно универсальны.
Примеры выхода из ограниченного окружения и повышения привилегий
При доступе к Remote Desktop Gateway злоумышленник, скорее всего, столкнется с некоторой ограниченной средой. При подключении к терминальному серверу на нём запускается приложение: окно для подключения по протоколу Remote Desktop для внутренних ресурсов, проводник, офисные пакеты либо любое другое ПО.
Целью атакующего будет получение доступа к исполнению команд, то есть к запуску cmd или powershell. В этом могут помочь несколько классических техник побега из “песочницы” для Windows. Рассмотрим их далее.
Вариант 1. Злоумышленник имеет доступ к окну подключения Remote Desktop в рамках Remote Desktop Gateway:
Раскрывается меню “Show Options”. Появляются опции для манипуляции файлами конфигурации подключения:
Из этого окна возможно беспрепятственно попасть в Проводник, нажав любую из кнопок “Open” или “Save”:
Открывается Проводник. Его “адресная строка” даёт возможность запуска разрешённых исполняемых файлов, а также листинга файловой системы. Это может быть полезно атакующему в случае, когда системные диски скрыты и доступ к ним напрямую невозможен:
Подобный сценарий можно воспроизвести, например, при использовании в качестве удаленного ПО Excel из пакета Microsoft Office.
Кроме того, не стоит забывать про макросы, используемые в данном офисном пакете. Наши коллеги рассматривали проблему безопасности макросов в этой статье.
Вариант 2. Используя те же вводные, что и в прошлом варианте, атакующий запускает несколько подключений к удалённому рабочему столу под одним и тем же аккаунтом. При повторном подключении первое будет закрыто, а на экране появится окно с уведомлением об ошибке. Кнопка помощи в этом окне вызовет на сервере Internet Explorer, после чего атакующий может перейти в Проводник.
Вариант 3. При настроенных ограничениях на запуск исполняемых файлов, атакующий может столкнуться с ситуацией, когда групповые политики запрещают запуск cmd.exe администратором.
Вариант 4. Запрет запуска приложений при помощи чёрных списков по названию исполняемых файлов не панацея, их можно обойти.
Рассмотрим следующий сценарий: мы запретили доступ к командной строке, запретили запуск Internet Explorer и PowerShell при помощи групповых политик. Атакующий пытается вызвать справку — никакого отклика. Пытается запустить powershell через контекстное меню модального окна, вызванное с нажатой клавишей Shift — сообщение о запрете запуска администратором. Пытается запустить powershell через адресную строку — снова никакого отклика. Как же обойти ограничение?
Достаточно скопировать powershell.exe из папки C:\Windows\System32\WindowsPowerShell\v1.0 в пользовательскую папку, изменить имя на отличное от powershell.exe, и возможность запуска появится.
По умолчанию при подключении к удалённому рабочему столу предоставляется доступ к локальным дискам клиента, откуда атакующий может скопировать powershell.exe и после переименования запустить.
Мы привели лишь несколько способов обхода ограничений, сценариев можно придумать ещё очень много, но все их объединяет выход в Проводник Windows. Приложений, использующих стандартные средства Windows для работы с файлами, множество, и при помещении их в ограниченную среду, можно применять похожие техники.
4. Рекомендации и заключение
Как мы видим, даже в ограниченной среде есть пространство для развития атаки. Однако можно усложнить жизнь атакующему. Приводим общие рекомендации, которые пригодятся как в рассмотренных нами вариантах, так и в других случаях.
Надеемся, вам было как минимум интересно, а как максимум — это статья поможет сделать удалённую работу вашей компании безопаснее.