Инструменты, встроенные в операционные системы и изначально предназначенные для легитимных задач, всё чаще становятся оружием в арсенале киберпреступников. Эта тенденция, известная как Living off the Land, позволяет обходить традиционные средства защиты, так как атаки используют доверенные компоненты системы, не оставляя явных вредоносных файлов. Одним из таких инструментов, привлекающих внимание злоумышленников, стал MSBuild.exe - официальное средство сборки проектов от Microsoft, подписанное цифровой подписью компании. Его эксплуатация открывает путь для скрытого выполнения произвольного кода, что представляет серьёзную угрозу для корпоративных сетей и конечных пользователей.
Описание
MSBuild.exe является неотъемлемой частью среды разработки .NET и предназначен для компиляции и выполнения C# кода через XML-файлы проектов. Однако с точки зрения злоумышленника этот инструмент обладает рядом критически важных преимуществ. Во-первых, он позволяет внедрять и исполнять C# код непосредственно внутри файла проекта, что делает ненужным распространение отдельного скомпилированного вредоносного исполняемого файла. Это основа для гибкой настройки полезной нагрузки и реализации атак без использования файлов. Во-вторых, MSBuild обладает высокой расширяемостью и включает функции для работы с файлами, сетевого взаимодействия и сборки, что позволяет использовать его для различных целей. В-третьих, и это ключевой момент, будучи подписанным Microsoft, этот файл воспринимается системами безопасности как абсолютно доверенный компонент, что затрудняет его обнаружение на основе простой проверки подписи или репутации.
Техника атаки достаточно проста. Для её осуществления злоумышленнику необходимы лишь два файла: XML-файл проекта и C# исходный код. В файл проекта можно внедрить обфусцированную полезную нагрузку или шелл-код. Когда пользователь или система запускает MSBuild с указанием такого файла проекта, инструмент компилирует и выполняет внедрённый код. Ярким примером работоспособности этого метода стал эксперимент, описанный в январе 2025 года. Исследователям удалось успешно использовать MSBuild для установки обратного TCP-шелла с заражённой системы на сервер злоумышленника. Примечательно, что это соединение было установлено без каких-либо блокировок или предупреждений со стороны встроенного антивируса Windows 11 Defender при активном режиме реального времени, что продемонстрировало эффективность данного подхода для обхода защитных решений.
Реальные инциденты демонстрируют ещё более изощрённые сценарии. В феврале 2026 года была раскрыта кампания, в которой MSBuild.exe использовался не для прямой компиляции вредоносного кода, а в роли загрузчика. Атака начиналась с фишингового письма, во вложении которого находился архив. Внутри архива злоумышленники размещали переименованный MSBuild.exe, маскируя его под документ, и файл проекта. При запуске исполняемого файла MSBuild автоматически загружал и исполнял проект из той же директории. Встроенный в проект C# скрипт отвечал за связь с командным сервером злоумышленника и загрузку дополнительных файлов в временные каталоги системы, используя случайно сгенерированные имена для усложнения анализа.
После загрузки MSBuild автоматически запускал первый из загруженных исполняемых файлов, который также имел легитимную цифровую подпись. Ключевым моментом атаки стало использование техники подмены динамических библиотек. Этот легитимный файл по своему обычному алгоритму работы пытался загрузить DLL из текущей директории. Злоумышленники подсовывали ему вместе с архивом вредоносную DLL с нужным именем, которая и загружалась в память, обеспечивая выполнение конечного вредоносного кода. Таким образом, вся цепочка - от пользовательского клика до выполнения шелл-кода - выглядела как последовательность действий доверенных, подписанных компонентов, что крайне затрудняло обнаружение.
Этот случай наглядно иллюстрирует, почему простой вопрос "является ли файл легитимным?" больше не работает как эффективный критерий безопасности. Обнаружение подобных атак требует комплексного анализа отношений между процессами, контекста выполнения, а также потоков создания и загрузки файлов. Поскольку атаки на основе MSBuild сложно выявить по единичным индикаторам компрометации, необходима многоуровневая стратегия обнаружения, сфокусированная на поведении и контексте. Критически важно отслеживать поведение процессов: выполнение MSBuild.exe в нетипичных для среды разработки местах, например, из папок загрузок браузера или временных каталогов, а также его порождение таких подпроцессов, как PowerShell или cmd.
Также необходима видимость за выполнением файлов проектов. Запуск файлов с расширениями .csproj или .xml в стандартной пользовательской среде - большая редкость и имеет высокую корреляцию с атакующими сценариями, особенно если это происходит сразу после распаковки архива. На сетевом уровне следует анализировать внешние соединения, инициируемые MSBuild.exe, загрузку нескольких файлов за короткий промежуток времени и создание файлов со случайными именами. Кроме того, ключевой точкой обнаружения остаются паттерны подмены DLL, когда подписанный исполняемый файл загружает вредоносную библиотеку из своего каталога.
Использование MSBuild злоумышленниками является закономерным этапом эволюции скрытых атак. Это сигнал для специалистов по информационной безопасности о необходимости сдвига парадигмы от мышления "доверенные процессы безопасны" к усилению поведенческих стратегий обнаружения. LOL-атаки, включающие эксплуатацию таких инструментов, как MSBuild, будут продолжать развиваться, что требует внедрения активного поиска угроз, строгого контроля политик выполнения и постоянного мониторинга аномальной активности даже со стороны самых невинных, на первый взгляд, системных компонентов.
Индикаторы компрометации
URLs
- https://onedown.gesecole.net/download/a3693kfa836
- https://onedown.gesecole.net/download/a3696kfa836
- https://onedown.gesecole.net/download/a3699kfa836
MD5
- 769687f93869a70511aac1ef7c752455
- 7a75e713db41c28378e823322fdea0fd