PowerShell — штатный инструмент автоматизации Windows, и именно поэтому злоумышленники его так любят. Скрипт запускается легитимной утилитой системы, не требует загрузки отдельного файла-«дроппера» и часто выглядит для антивируса как обычная административная задача. Вредоносный PowerShell-скрипт способен скачать и запустить любую программу, украсть пароли из браузеров, зашифровать файлы под выкуп или превратить компьютер в часть ботнета — причём всё это без единого исполняемого файла на диске.
Главный ориентир для понимания угрозы: PowerShell даёт атакующему почти полный программный доступ к системе Windows через командную строку. Ограничивает его только права учётной записи, с которой скрипт запущен. Поэтому вопрос «что может сделать такой скрипт» на практике сводится к вопросу «какие права он получил и успела ли система защиты отреагировать».
- Почему PowerShell стал любимым инструментом атакующих
- Что конкретно умеет вредоносный скрипт
- Скачивание и запуск полезной нагрузки
- Кража данных и учётных записей
- Шифровальщики
- Майнинг криптовалют
- Закрепление в системе
- Боковое перемещение по сети
- Обход защитных механизмов
- Как скрипты попадают на компьютер
- Признаки того, что скрипт уже отработал
- Как снизить риск: практические меры
- Ограничить сам PowerShell
- Урезать привилегии
- Закрыть каналы доставки
- Подстраховка на случай прорыва
- Если заражение уже произошло
- Типичные заблуждения
- Что делать прямо сейчас
Почему PowerShell стал любимым инструментом атакующих
У PowerShell есть три свойства, которые делают его удобным для вредоносного использования:
- Легитимность. Он предустановлен во всех современных версиях Windows и используется администраторами ежедневно. Блокировать его полностью нельзя — сломается обслуживание систем.
- Работа в памяти. Скрипт можно выполнить, вообще не сохраняя файл на диск (техника fileless-атак). Антивирусы, которые ищут подозрительные файлы, такую нагрузку могут пропустить.
- Доступ к API Windows. Через .NET-объекты скрипт обращается к тем же функциям, что и обычные программы: сеть, реестр, процессы, файлы, криптография.
Отдельный фактор — обфускация. Код легко замаскировать: разбить на фрагменты, закодировать в Base64, собрать строку по частям, использовать псевдонимы командлетов. Такой текст не читается человеком «с листа», а статические сигнатуры антивируса плохо цепляются за постоянно меняющийся код.
Что конкретно умеет вредоносный скрипт
Скачивание и запуск полезной нагрузки
Самый частый сценарий — скрипт выступает «загрузчиком». Однострочник вроде обращения к удалённому серверу через Invoke-Expression скачивает с контролируемого атакующим адреса исполняемый файл или другой скрипт и сразу выполняет его. Так на машину попадают трояны, шифровальщики, стилеры и бэкдоры. Сам PowerShell при этом остаётся лишь курьером.
Кража данных и учётных записей
Скрипты-стилеры собирают:
- сохранённые пароли и cookie из браузеров (Chrome, Edge, Firefox хранят их в локальных базах, которые читаются при наличии прав пользователя);
- файлы сессий мессенджеров и почтовых клиентов;
- содержимое буфера обмена, включая скопированные криптовалютные адреса;
- данные из конфигурационных файлов FTP-клиентов, VPN, игровых платформ;
- скриншоты экрана и список установленных программ для оценки «ценности» жертвы.
Собранное обычно архивируется и отправляется на удалённый сервер. Для пользователя это часто незаметно: процесс занимает секунды и не создаёт видимых окон.
Шифровальщики
Часть вымогательских атак начинается именно с PowerShell: скрипт удаляет теневые копии томов, останавливает службы резервного копирования и антивируса, отключает восстановление системы, а затем запускает основной модуль шифрования. Даже если сам шифровальщик написан не на PowerShell, подготовительная «зачистка» нередко выполняется его средствами.
Майнинг криптовалют
Скрипт может тихо запустить майнер, который потребляет процессор и видеокарту. Признаки: система греется и шумит в простое, отклик интерфейса падает, вентиляторы работают на максимум без нагрузки. Майнер снижает ресурс оборудования и увеличивает счёт за электричество, но главная проблема в другом — если майнер попал, значит, дыра в защите открыта и для более серьёзной нагрузки.
Закрепление в системе
Чтобы пережить перезагрузку, скрипт прописывает себя в механизмы автозапуска: задачи планировщика, ветки реестра Run, ярлыки в папке автозагрузки, WMI-подписки на события. Продвинутые варианты используют легитимные утилиты (например, планировщик или WMI) так, что след в привычных местах автозапуска отсутствует.
Боковое перемещение по сети
На корпоративной машине скрипт может опросить сетевое окружение, попытаться подключиться к другим компьютерам с украденными учётными данными и повторить там тот же сценарий. Именно так начинаются крупные инциденты: одна заражённая рабочая станция превращается в шифрование всего файлового сервера.
Обход защитных механизмов
Типичные действия вредоносных скриптов против защиты:
- отключение Defender через реестр или командлеты (при наличии прав администратора);
- добавление исключений сканирования для своих папок;
- удаление журналов событий, чтобы скрыть следы;
- изменение политики выполнения скриптов;
- остановка служб безопасности и резервного копирования.
Как скрипты попадают на компьютер
Понимание каналов доставки помогает оценить собственные риски. Основные пути:
- Фишинговые письма. Вложение-ярлык (.lnk), документ Office с макросом или HTML-приложение запускает скрытый PowerShell-процесс.
- Поддельные страницы и «крякнутый» софт. Инсталлятор пиратской программы или генератора ключей содержит загрузчик.
- Реклама и SEO-отравление. Пользователь ищет популярную программу, попадает на поддельный сайт и скачивает модифицированный установщик.
- Эксплуатация уязвимостей. Эксплойт в браузере или сетевой службе выполняет код в памяти, в том числе через PowerShell.
- Заражённые съёмные носители и общие папки. Актуально в офисах с настроенной сетью.
Общий знаменатель — запуск происходит от имени обычного пользователя, который что-то открыл, скачал или подтвердил. Поэтому права учётной записи напрямую определяют масштаб возможного ущерба.
Признаки того, что скрипт уже отработал
Полезно знать наблюдаемые симптомы, хотя отсутствие симптомов не означает безопасность:
- окно PowerShell мелькает на долю секунды при старте системы или открытии документа;
- в планировщике задач появились записи с непонятными именами и командами в поле действия;
- антивирус отключился сам или перестал обновляться;
- браузерные пароли «утекли»: входы в аккаунты с чужих устройств, письма о новых входах;
- резко выросла нагрузка на CPU/GPU в простое;
- исчезли точки восстановления и теневые копии;
- неизвестные исходящие соединения в мониторе ресурсов или файрволе.
Проверить журнал можно самостоятельно: в средстве просмотра событий Windows смотреть журналы «Windows PowerShell» и «Безопасность» на предмет неожиданных запусков powershell.exe с параметрами -enc, -w hidden, -nop — это типичные маркеры скрытого выполнения.
Как снизить риск: практические меры
Защита строится слоями, а не одним переключателем.
Ограничить сам PowerShell
- Перевести политику выполнения в режим AllSigned или RemoteSigned — это не панацея, но отсекает простейшие сценарии.
- Использовать AppLocker или WDAC, чтобы разрешить выполнение скриптов только из доверенных каталогов и только подписанным кодом.
- Включить журналирование скриптов (Script Block Logging) и защиту AMSI — это даст детектору и администратору видимую картину того, что реально исполнялось.
- Рассмотреть режим ограниченного языка (Constrained Language Mode) для пользователей, которым PowerShell для работы не нужен.
Урезать привилегии
Работать под обычным пользователем, а не администратором. Большинство стилеров и майнеров полноценно работают и без прав администратора, но отключение защиты, запись в системные службы и шифрование всей машины требуют повышения. Разделение прав заметно сокращает потолок ущерба.
Закрыть каналы доставки
- Не открывать вложения и ссылки из неожиданных писем, даже от знакомых отправителей — их ящик могли взломать.
- Отключить макросы в Office по умолчанию; включать только точечно для проверенных документов.
- Скачивать программы только с официальных сайтов разработчиков, а не по первым ссылкам из рекламы.
- Держать систему и браузер обновлёнными: значительная часть атак использует давно закрытые уязвимости.
Подстраховка на случай прорыва
Резервные копии критичных данных должны храниться офлайн или в облаке с версионированием — это единственная надёжная страховка от шифровальщика. Полезно периодически проверять, что восстановление действительно работает, а не существует только на бумаге.
Если заражение уже произошло
- Отключить компьютер от сети, чтобы остановить передачу данных и распространение.
- Не платить вымогателям и не вводить пароли на заражённой машине.
- Сменить пароли важных аккаунтов с другого, заведомо чистого устройства, начиная с почты — через неё восстанавливается доступ ко всему остальному.
- Для домашнего ПК надёжнее всего переустановка системы с нуля, а не «лечение» антивирусом: гарантий полной очистки после fileless-атак нет.
- В организации — привлечь специалистов по информационной безопасности: нужно понять, как атакующий попал внутрь и куда успел дойти, иначе инцидент повторится.
Типичные заблуждения
- «У меня стоит антивирус, значит, я защищён». Обфусцированный код, меняющийся при каждой атаке, регулярно проходит статическую проверку. Антивирус нужен, но не достаточен.
- «Я ничего не скачивал, мне нечего бояться». Достаточно открыть одно вложение или перейти на поддельную страницу по рекламной ссылке.
- «PowerShell можно просто удалить». Нельзя: на нём держатся компоненты Windows и множество административных задач. Правильный путь — ограничение, а не удаление.
- «Скрипт безопасен, если я его прочитал». Обфусцированный код человек без опыта корректно «прочитать» не сможет; внешне безобидная строка может декодироваться во что угодно.
Что делать прямо сейчас
Главный принцип: ценность PowerShell для атакующего держится на двух вещах — ваших правах и вашей невнимательности. Уберите первую (работайте без постоянных прав администратора), сократите вторую (осторожность с вложениями, макросами и источниками софта) — и большинство сценариев просто не стартует.
Конкретные шаги на сегодня: проверить, под какой учётной записью вы работаете; убедиться, что резервные копии существуют и лежат отдельно от компьютера; заглянуть в планировщик задач и журнал PowerShell на предмет подозрительных записей; включить журналирование скриптов, если вы администрируете машины других людей. Эти четыре действия занимают меньше часа и закрывают наиболее вероятные сценарии.
Материал носит информационный характер и не заменяет консультацию специалиста по информационной безопасности. При подозрении на заражение корпоративной сети, утечку данных или шифровальное нападение обратитесь к профильным специалистам и действуйте по плану реагирования на инциденты.
