Microsoft описала новую цепочку атак TerminalFix, где жертву уговаривают собственноручно запустить вредоносную команду в PowerShell или Windows Terminal. Дальше все уже по-взрослому: закрепление в системе, разведка домена и обратные туннели во внутреннюю сеть компании. Для русскоязычных ИТ-команд это неприятный, но полезный сигнал: старая добрая социальная инженерия снова обходит защиту не сложностью эксплойта, а тем, что пользователь сам открывает злоумышленнику дверь.
О кампании сообщает Dark Reading со ссылкой на исследование Microsoft. Сценарий относится к семейству ClickFix-атак: пользователь попадает на скомпрометированный или специально подготовленный сайт, видит убедительную «техническую проблему» и получает инструкцию вставить готовую команду в системный интерфейс. В случае с TerminalFix в качестве приманки использовался фальшивый слой Cloudflare CAPTCHA. Пользователю предлагали открыть Windows Terminal или PowerShell и вставить команду, которая к тому моменту уже была незаметно скопирована в буфер обмена. Формально это выглядит как действие самого сотрудника, а на практике становится стартом многоэтапного вторжения.
Ключевая деталь здесь не в том, что атакующие используют PowerShell как таковой. Командная строка в корпоративной среде давно не экзотика, а нормальный рабочий инструмент для администраторов, разработчиков и инженеров поддержки. Microsoft обращает внимание на другое: PowerShell удобнее для длинных и более сложных сценариев, чем, например, запуск через окно Run. За счет этого злоумышленники могут не ограничиваться коротким загрузчиком, а сразу протащить более насыщенный скрипт, который аккуратно разворачивает следующую стадию атаки. Иными словами, пользователь видит «проверку» или «исправление ошибки», а внутри компании уже начинает раскручиваться полноценная цепочка вторжения.
Что происходит после одной вставленной команды
По данным Microsoft, первая команда скачивает и запускает ZIP-архив, внутри которого находится вредоносная DLL для sideloading-сценария. Дальше цепочка становится заметно интереснее обычного ClickFix. Атакующие подтягивают дополнительные полезные нагрузки, спрятанные внутри PNG-изображений, настраивают двойное закрепление через Registry Run keys и планировщик задач, а затем проводят разведку домена. Самая опасная часть, пожалуй, финальная: в инфраструктуру жертвы разворачивается reverse-tunnel C2 на базе Python, который проксирует произвольный TCP-трафик по зашифрованному WebSocket-каналу к инфраструктуре атакующих.
Для бизнеса это уже не история про единично зараженный ноутбук. Обратный туннель дает злоумышленнику прямой канал во внутреннюю сеть, а значит, дальше можно переходить к ручной работе: повышать привилегии, отключать защитные средства, вытаскивать чувствительные данные и разворачивать шифровальщик по организации. Microsoft прямо называет кампанию особенно опасной именно по этой причине. Набор техник тоже показательный: DLL sideloading, стеганографическое сокрытие полезных нагрузок в PNG, скрытые каталоги, устойчивое закрепление и скрытый сетевой доступ. Это уже не «скопировал что-то из браузера и поймал стилер», а вторжение, заточенное под корпоративную среду.
На этом фоне особенно любопытна реакция части исследовательского сообщества на само название TerminalFix. Старший исследователь угроз Proofpoint Томми Маджар заметил, что использование терминала в подобных сценариях не выглядит принципиально новой идеей: терминальные окна фигурировали еще в ранней активности ClickFix, задокументированной в 2024 году. Его аргумент простой и довольно трезвый: тот же многоэтапный взлом можно было бы начать и с короткой команды в Run, которая просто подтянет следующую стадию. То есть новизна здесь, вероятно, не в «новом классе атак», а в качественной сборке уже известных приемов в более удобную для атакующего схему. Для защитников это, если честно, даже хуже. Когда угроза не опирается на один редкий zero-day, а собирается из доступных компонентов, масштабировать ее обычно проще.
Почему это плохая новость для компаний и нормальная работа для защитников
Самая неудобная часть истории в том, что жестко запретить PowerShell, Terminal или даже окно Run в реальной компании часто нельзя. Dark Reading приводит позицию Маджара: тотальные ограничения редко практичны, потому что многие легитимные сценарии установки и администрирования требуют запуска команд пользователем. Это важный момент для ИТ-директоров и SecOps-команд: борьба с атаками TerminalFix не сводится к одному GPO и торжественному письму «всем запретить консоль». Microsoft рекомендует ограничивать запуск PowerShell и Run для стандартных пользователей там, где это возможно, применять Group Policy, Windows Application Control или AppLocker, а также следить за признаками DLL sideloading. Но технических ограничений самих по себе недостаточно.
Практический вывод для разработчиков, внутренних платформенных команд и бизнеса выглядит так. Во-первых, обучение пользователей снова становится не декоративной мерой, а реальным контролем безопасности: сотрудник должен считывать как красный флаг любую инструкцию с сайта, где ему предлагают открыть терминал и вставить команду из буфера. Во-вторых, веб-фильтрация и блокировка вредоносных сайтов нужны до точки исполнения, а не после. В-третьих, детектирование должно смотреть не только на сам факт запуска PowerShell, но и на поведение после него: загрузку архивов, создание заданий в планировщике, появление Run keys, подозрительные DLL и нестандартные исходящие WebSocket-соединения. Именно поведенческая связка, а не один отдельный индикатор, лучше всего описывает атаки TerminalFix.
История с TerminalFix неприятна тем, что она не обещает эффектной развязки в духе «вышел патч, все починили». Если ClickFix-стиль атак продолжит взрослеть, корпоративной защите придется внимательнее смотреть не на экзотические эксплойты, а на обыденные административные инструменты, которыми пользуются и сотрудники, и злоумышленники. Главный вопрос теперь не в том, можно ли совсем убрать PowerShell из компании, а в том, насколько быстро команда безопасности отличит нормальную рабочую команду от той, что открывает в сеть обратный туннель.