Internet Explorer давно умер, но дело его живет. И помогает хакерам захватывать ваши компьютеры
NewsMakerInternet Explorer мертв, но продолжает ломать компьютеры пользователей.
Internet Explorer формально ушёл в прошлое, но старые механизмы браузера всё ещё могут влиять на безопасность Windows-приложений. Исследователь показал цепочки атак, в которых WebBrowser, ActiveX, локальные веб-приложения и особенности обработки файлов превращают обычный клик или перетаскивание файла в удалённое выполнение кода.
Проблема связана с компонентом WebBrowser, который использует движок Internet Explorer и до сих пор встречается в приложениях на Visual Basic, .NET и C#. Разработчики встраивали WebBrowser для показа веб-страниц внутри настольных программ, а вместе с компонентом в систему попадали старые правила безопасности Internet Explorer, ActiveX и зон доступа.
Исследователь начал с поиска XSS в настольных приложениях и заметил странное поведение при выполнении JavaScript с адреса http://localhost . Страница с локального хоста получила больше прав, чем обычный сайт из интернета, и смогла открывать файлы через SMB и локальные пути. В результате http://localhost фактически работал как промежуточное звено между веб-страницей и файлами на компьютере пользователя.
Дальше цепочка стала опаснее. Internet Explorer не должен сохранять файл на диск без участия пользователя, но старый браузер мог открыть страницу в Microsoft Edge через ссылку вида microsoft-edge: http://site . Современный Edge автоматически сохранял файл в папку загрузок, а при загрузке через http://localhost файл не получал метку Mark of the Web. Windows использует такую метку для предупреждений о файлах из интернета, поэтому отсутствие MOTW снижало число защитных проверок.
Одна из цепочек позволяла добиться удалённого выполнения кода через WScript.Shell. Для атаки требовалось уязвимое локальное веб-приложение с XSS, запуск вредоносного JavaScript через http://localhost и загрузка HTML-файла без MOTW. После открытия сохранённого файла злоумышленник мог запустить команду, например calc.exe, после подтверждения предупреждений безопасности.
Исследователь нашёл и другие варианты эксплуатации. Internet Explorer мог запускать связанные с файлами приложения, например Блокнот, Windows Media Player, Visio, Java, Acrobat или обработчики XAML и ClickOnce. Через плейлисты Windows Media Player можно было спровоцировать утечку NTLM, если файл указывал на удалённый SMB-сервер. В другом случае локальный MHT-файл без MOTW позволял обойти Same Origin Policy и выполнить JavaScript от имени произвольного сайта.
Самая необычная часть исследования связана с кликджекингом и перетаскиванием файлов. Internet Explorer мог показать содержимое локальной папки, SMB-каталога или ZIP-архива внутри iframe. Вредоносная страница делала фрейм почти невидимым и перемещала под курсор, поэтому пользователь кликал по странице, а на деле попадал по файлу внутри скрытого окна. В одном варианте для выполнения команды хватало двойного клика в любом месте страницы.
Отдельная цепочка использовала перетаскивание файла на специально подготовленный ярлык .lnk. При таком запуске проверка MOTW не срабатывала, а предупреждение безопасности не появлялось. Другой вариант позволял создать на рабочем столе вредоносный ярлык с правдоподобным названием и значком, например под видом папки или системного объекта.
Главную проблему, которая позволяла открывать локальные файлы через JavaScript с http://localhost , Microsoft исправила в сентябре 2024 года. Автор подчёркивает, что часть описанных механизмов относится к особенностям старой платформы, а не к одной конкретной ошибке. При наличии XSS в настольном приложении старые возможности Internet Explorer и WebBrowser всё ещё могут помогать злоумышленникам поднимать атаку до выполнения кода.
Internet Explorer формально ушёл в прошлое, но старые механизмы браузера всё ещё могут влиять на безопасность Windows-приложений. Исследователь показал цепочки атак, в которых WebBrowser, ActiveX, локальные веб-приложения и особенности обработки файлов превращают обычный клик или перетаскивание файла в удалённое выполнение кода.
Проблема связана с компонентом WebBrowser, который использует движок Internet Explorer и до сих пор встречается в приложениях на Visual Basic, .NET и C#. Разработчики встраивали WebBrowser для показа веб-страниц внутри настольных программ, а вместе с компонентом в систему попадали старые правила безопасности Internet Explorer, ActiveX и зон доступа.
Исследователь начал с поиска XSS в настольных приложениях и заметил странное поведение при выполнении JavaScript с адреса http://localhost . Страница с локального хоста получила больше прав, чем обычный сайт из интернета, и смогла открывать файлы через SMB и локальные пути. В результате http://localhost фактически работал как промежуточное звено между веб-страницей и файлами на компьютере пользователя.
Дальше цепочка стала опаснее. Internet Explorer не должен сохранять файл на диск без участия пользователя, но старый браузер мог открыть страницу в Microsoft Edge через ссылку вида microsoft-edge: http://site . Современный Edge автоматически сохранял файл в папку загрузок, а при загрузке через http://localhost файл не получал метку Mark of the Web. Windows использует такую метку для предупреждений о файлах из интернета, поэтому отсутствие MOTW снижало число защитных проверок.
Одна из цепочек позволяла добиться удалённого выполнения кода через WScript.Shell. Для атаки требовалось уязвимое локальное веб-приложение с XSS, запуск вредоносного JavaScript через http://localhost и загрузка HTML-файла без MOTW. После открытия сохранённого файла злоумышленник мог запустить команду, например calc.exe, после подтверждения предупреждений безопасности.
Исследователь нашёл и другие варианты эксплуатации. Internet Explorer мог запускать связанные с файлами приложения, например Блокнот, Windows Media Player, Visio, Java, Acrobat или обработчики XAML и ClickOnce. Через плейлисты Windows Media Player можно было спровоцировать утечку NTLM, если файл указывал на удалённый SMB-сервер. В другом случае локальный MHT-файл без MOTW позволял обойти Same Origin Policy и выполнить JavaScript от имени произвольного сайта.
Самая необычная часть исследования связана с кликджекингом и перетаскиванием файлов. Internet Explorer мог показать содержимое локальной папки, SMB-каталога или ZIP-архива внутри iframe. Вредоносная страница делала фрейм почти невидимым и перемещала под курсор, поэтому пользователь кликал по странице, а на деле попадал по файлу внутри скрытого окна. В одном варианте для выполнения команды хватало двойного клика в любом месте страницы.
Отдельная цепочка использовала перетаскивание файла на специально подготовленный ярлык .lnk. При таком запуске проверка MOTW не срабатывала, а предупреждение безопасности не появлялось. Другой вариант позволял создать на рабочем столе вредоносный ярлык с правдоподобным названием и значком, например под видом папки или системного объекта.
Главную проблему, которая позволяла открывать локальные файлы через JavaScript с http://localhost , Microsoft исправила в сентябре 2024 года. Автор подчёркивает, что часть описанных механизмов относится к особенностям старой платформы, а не к одной конкретной ошибке. При наличии XSS в настольном приложении старые возможности Internet Explorer и WebBrowser всё ещё могут помогать злоумышленникам поднимать атаку до выполнения кода.