Shift Happens: как контекстное меню Windows превратилось в PowerShell command injection
Shift Happens: как контекстное меню Windows превратилось в PowerShell command injection #Windows #CommandInjection #OffensiveSecurity #WindowsInternals Исследователь SpecterOps Remi Gascou (Podalirius) обнаружил две встроенные command injection-уязвимости в Windows Explorer, связанные с пунктами extended context menu — Open PowerShell window here и Open command window here. Проблема существует по меньшей мере с Windows 10 build 1703 (2017 года) и затрагивает актуальные сборки Windows 11. Технические нюансы Уязвимость связана с механизмом extended context menu Windows Explorer, которое вызывается через Shift + Right Click. При выборе Open PowerShell window here Explorer формирует команду вида: powershell.exe -noexit -command Set-Location -literalPath "C:\Path\With Spaces" При этом путь подставляется в шаблон команды без достаточного экранирования специально для PowerShell-контекста. В результате ;, &, $(), backtick-конструкции и другие специальные PowerShell-символы интерпретируются как команды или токены PowerShell. Исследователь показал две разные injection-цепочки: одна актуальна в современных Windows 11 (включая Canary), вторая существует почти девять лет — начиная с Windows 10 build 1703. Шаблоны команд (shell command templates) для контекстного меню хранятся в реестре (HKCR\Directory\shell, HKCR\Directory\Background\shell и др.) и используются Explorer при запуске PowerShell или cmd.exe. Эксплуатация Атакующему достаточно создать папку со специально сформированным именем, например: folder; calc.exe или более сложным PowerShell-пейлоадом. После этого жертва должна открыть Explorer, перейти в директорию с malicious-папкой (или на уровень выше), нажать Shift + Right Click и выбрать Open PowerShell window here. В этот момент Explorer передает неэкранированный путь в PowerShell, и injected-команда выполняется в контексте текущего пользователя. Исследователь также продемонстрировал дополнительные варианты эксплуатации: через shortcut (.lnk), parent directory injection, пейлоад в имени пользователя и запуск собственных EXE/PS1-файлов. Импакт Уязвимость превращает обычное действие в Explorer во встроенный PowerShell execution primitive. При этом не нужно заставлять пользователя запускать отдельный EXE, макрос или LNK-файл. Особенно опасно то, что техника использует полностью легитимные механизмы Windows и выглядит как обычная активность пользователя. По словам исследователя, Microsoft не присвоила CVE и не выплатила bounty, посчитав проблему недостаточно критичной. Тем не менее, баг был тихо исправлен в Windows 11 Canary build 10.0.27902.1000 спустя месяц после раскрытия. Источник @poxek | MAX | Блог | YT | RT | VK