Vshadow exe для windows 10

В последнее время пользователи компьютеров с OC Windows в корпоративном секторе всё чаще и чаще сталкиваются с угрозой шифрования рабочих файлов. Как показывает практика, периодические информационные письма о потенциальной опасности ссылок в письмах от незнакомых адресатов или “Судебных приставов” влияние на пользователей оказывают слабое. В этой заметке мы рассмотрим административные действия, которые помогут увеличить шансы восстановления пользовательских файлов после деструктивных действий программ шифровальщиков. В качестве основного инструмента мы будем использовать утилиту vshadow.exe и возможности технологии создания VSS-снимков в ОС Windows.

Сразу следует сделать важную оговорку о том, что данный метод поможет только в случае отсутствия у пользователей полных административных прав на их компьютерах. Ибо пользователь с административными правами способен, зачастую сам не понимая того, запустить зловредное ПО, способное на сегодняшний день оперировать данными VSS-снимков, попросту удаляя их.

Итак, нам понадобится утилита vshadow.exe, которую можно достать из пакета Windows SDK. Характерно для этой утилиты то, что, хоть версии vshadow.exe в разных версия ADK и не отличаются, но размер исполняемого файла в разных версиях ADK разный. Поэтому, чтобы свести возможные коллизии в работе утилиты на разных версиях ОС Windows к минимуму, мы будем использовать «родной» vshadow для каждой версии ОС.

Разложим соответствующие копии файлов vshadow.exe по подпапкам в зависимости от версии и разрядности ОС Windows. Затем создадим PowerShell-скрипт, который будет отвечать за распространение нужной копии vshadow на клиентские компьютеры корпоративной сети с параллельным включением механизма «Точек восстановления».

Пример такого PS-скрипта:

$OSVersion = (Get-WmiObject -Class Win32_OperatingSystem).Version
$OSArch = (Get-WmiObject -Class Win32_OperatingSystem).OSArchitecture
$Sys64 = "$env:SystemRoot\Sysnative"
$Sys32 = "$env:SystemRoot\System32"
$myInv = $myInvocation.MyCommand.Definition
$SCritpRoot = [System.IO.Path]::GetDirectoryName($myInv)
$vShadowPath = "$SCritpRoot\vShadow"

IF ($OSVersion -like "5.1*") {
#Включаем восстановление системы
New-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SystemRestore" -Name DisableSR -PropertyType DWORD -Value "0" -Force
#Задаём процент использования диска по умолчанию
New-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SystemRestore\cfg" -Name DiskPercent -PropertyType DWORD -Value "10" -Force
#Перезапускаем службу восстановления системы
Restart-Service -name srservice
} ELSE {
      #Находим все жесткие диски в формате С:\
      $Disks = [System.IO.DriveInfo]::getdrives()| ?{$_.DriveType -eq "Fixed" }
      #Влючаем ввостановление системы для всех жестких дисков
      Enable-ComputerRestore $Disks
      #Находим все жесткие диски в формате С:
      $LogicalDisks = (GET-WMIObject –query "SELECT * from win32_logicaldisk where DriveType = '3'")
      If ($LogicalDisks -ne $null) {
        foreach ($LD in $LogicalDisks) {
         $Disk = $LD.DeviceID
         #Задаем максимально допустимый размер для хранения точек ввостановления
           Foreach ($LogicalDisk in $LogicalDisks) {
           $PrevVerEnable = "vssadmin.exe Resize ShadowStorage /For=$Disk /On=$Disk /MaxSize=10%"
           chcp 1251
           IF (Test-Path "$Sys64\vssadmin.exe") {
             cmd /c "$Sys64\$PrevVerEnable"
           } ELSE {
                cmd /c "$Sys32\$PrevVerEnable"
                               }
           }
        }
      }
}
#####################################
# Копирование vshadow
#
 if ($OSArch -like "*32*") {
    if ($OSVersion -like "6.1*") {
    $vShadowPath = $vShadowPath + "\7\x86\vshadow.exe"
    }
    if ($OSVersion -like "6.2*") {
    $vShadowPath = $vShadowPath + "\8\x86\vshadow.exe"
    }
    if ($OSVersion -like "6.3*") {
    $vShadowPath = $vShadowPath + "\8.1\x86\vshadow.exe"
    }
    if ($OSVersion -like "10.*") {
    $vShadowPath = $vShadowPath + "\10\x86\vshadow.exe"
    }
    Copy-Item $vShadowPath $Sys32 -Force
}
 if ($OSArch -like "*64*") {
    if ($OSVersion -like "6.1*") {
    $vShadowPath = $vShadowPath + "\7\x64\vshadow.exe"
    }
    if ($OSVersion -like "6.2*") {
    $vShadowPath = $vShadowPath + "\8\x64\vshadow.exe"
    }
    if ($OSVersion -like "6.3*") {
    $vShadowPath = $vShadowPath + "\8.1\x64\vshadow.exe"
    }
    if ($OSVersion -like "10.*") {
    $vShadowPath = $vShadowPath + "\10\x64\vshadow.exe"
    }
    Copy-Item $vShadowPath $Sys64 -Force
}

Скрипт нужно распространить на клиентские компьютеры для последующего выполнения любым удобным для способом. Мы традиционно для этого используем возможности System Center 2012 R2 Configuration Manager (SCCM). В SCCM создаётся пакет, в котором настраивается программа для запуска скрипта следующим образом:

powershell.exe -ExecutionPolicy Bypass -NoLogo -NonInteractive -NoProfile -WindowStyle Hidden -File .\EnablePreviousVersions.ps1

Обратите внимание на то, что в скрипте используется виртуальный каталог «$env:SystemRoot\Sysnative«, который доступен только в 64-битных ОС. Пришлось использовать его из-за того, что Powershell скрипты в SCCM могут выполнятся только в 32-битном контексте.

После распространения vshadow необходимо настроить расписание запуска этой утилиты для периодического создания VSS-снимков системы. Воспользуемся механизмом GPP в конфигурации компьютера и создадим задание для планировщика Windows.

Задание необходимо запускать от имени NT AUTHORITY\СИСТЕМА.

image

Настраиваем создание снимка каждый день в нужное нам время, команда для создания снимка:

%windir%\system32\vshadow.exe -p %SystemDrive%

image

image

При этом включим и настроим нацеливание Item-Level Targeting таким образом, чтобы задание планировщика создавалось на клиентском компьютере только в том случае, если в системе имеется утилита vshadow.exe. 

image

По аналогии сделаем ещё одно задание планировщика, которое будет отвечать за удаление старых VSS-снимков, например 1 раз в неделю командой (правила определения того, что снимок является устаревшим мы раздали на компьютеры ранее с помощью выше-указанного PS-скрипта):

%windir%\system32\vshadow.exe -do=%SystemDrive%

image

image

Что делать, если пользователь «словил шифровальщика»?
Открываем командную строку от имени административной учётной записи и смотрим доступные нам VSS-снимки с помощью команды:

vshadow.exe -q

image

В данном примере мы видим, что нам доступен 1 снимок.

Для использования данных в снимке смонтируем её, например, как диск «X:» командой:

vshadow.exe -el={fb3feb40-dc51-4681-9783-207ec9a72518},X:

image

Подключённый диск будет доступен только для чтения, и вы сможете скопировать все необходимые данные любым файловым менеджером.

image

Для отключения диска воспользуемся командой:

mountvol X:\ /D

На этом, пожалуй, всё. Удачных вам восстановлений!

Обновление 02.09.2016

Для тех кому не очень хочется выкачивать Windows SDK под разные версии и разрядности ОС Windows, соответствующие копии утилиты vshadow.exe, совместимые с Windows 7/8/8.1/10 в варианте для 32-бита и 64-бита, можно найти в одном архиве.

File Info Description
File Size: 340 kB
File Modification Date/Time: 2019:12:02 17:06:41+00:00
File Type: Win64 EXE
MIME Type: application/octet-stream
Machine Type: AMD AMD64
Time Stamp: 2009:07:13 23:37:05+00:00
PE Type: PE32+
Linker Version: 9.0
Code Size: 322560
Initialized Data Size: 19968
Uninitialized Data Size: 0
Entry Point: 0x3ba0c
OS Version: 6.1
Image Version: 6.1
Subsystem Version: 5.2
Subsystem: Windows command line
File Version Number: 6.1.7600.16385
Product Version Number: 6.1.7600.16385
File Flags Mask: 0x003f
File Flags: (none)
File OS: Windows NT 32-bit
Object File Type: Executable application
File Subtype: 0
Language Code: English (U.S.)
Character Set: Unicode
Company Name: Microsoft Corporation
File Description: VShadow, Volume Shadow Copy Service (VSS) Sample Requestor
File Version: 6.1.7600.16385 (win7_rtm.090713-1255)
Internal Name: vshadow.exe
Legal Copyright: © Microsoft Corporation. All rights reserved.
Product Name: VShadow
Product Version: 6.1.7600.16385

Portions of file data provided by Exiftool (Phil Harvey) distributed under the Perl Artistic License.

Продолжаем серию статей о методах противодействия вирусам-шифровальщикам. В прошлый раз мы рассмотрели простую методику превентивной защиты от шифровальщиков на файловых серверах с помощью FSRM. Сегодня речь пойдет о методе восстановления данных, позволяющем безболезненно восстановить файлы, в случаях, если вирус уже прорвался и зашифровал документы на компьютере пользователя.

Самый простой способ вернуть оригинальные данные после шифрования документов трояном-шифровальщиком – восстановить данные из резервной копии. И если централизованное резервное копирование данных на серверах еще можно организовать, то бэкап данных с компьютеров пользователей обеспечить гораздо сложнее. К счастью, в Windows уже есть встроенный механизм ведения резервных копий — теневые копии, создаваемые службой Volume Shadow Copy Service (VSS).

Для обеспечения возможности восстановления старых версий файлов из VSS снапшотов, должны выполняться следующие условия:

  • служба VSS должна быть включена для защищаемых томов
  • на диске должно быть достаточно свободного места для хранения снимков (не менее 10-20%)
  • у пользователя не должно быть прав локального администратора на своем компьютере (большинство современных шифровальщиков, запущенных с правами администратора удаляют все доступные VSS снимки), а защита User Account Control (UAC) включена

Рассмотрим механизм централизованного управления политикой создания снимков в доменной среде Active Directory для обеспечения возможности восстановления данных после атаки вируса-шифровальщика.

Содержание:

  • Включение службы VSS на компьютерах с помощью GPO
  • Копирование файла vshadow.exe на компьютеры пользователей с помощью GPO
  • PowerShell скрипт для создания теневых снимков всех томов
  • Задание планировщика по созданию VSS-снимков
  • Восстановление исходных данных из теневой копии тома
  • Заключение

Включение службы VSS на компьютерах с помощью GPO

В первую очередь создадим групповую политику, которая бы включала службу Volume Shadow Copy Service (VSS) на компьютерах пользователей. Для этого в консоли GPMC.msc создадим новый объект GPO с именем VSSPolicy и назначим его на OU с компьютерами пользователей.

Перейдем в режим редактирования GPO. Затем в разделе Computer Configuration->Windows Settings->Security Settings->System Service в списке служб нужно найти службу Volume Shadow Copy и задать для нее тип запуска Automatic.

Включить службу Volume Shadow Copy через GPO

Копирование файла vshadow.exe на компьютеры пользователей с помощью GPO

Для создания и управления теневыми копиями на ПК пользователей нам понадобится утилита vshadow.exe из комплекта Windows SDK. В данном примере мы будем использовать vshadow из SDK для Windows 7 x64 (в моем случае она корректно отработала как на Windows 7 так и на Windows 10 x64). С помощью GPP скопируем файл vshadow.exe в каталог %windir%\system32 на все компьютеры.

Совет. Файл vshadow.exe можно скачать по этой ссылке: vshadow-7×64.zip

Для этого в разделе политики Computer Configuration –> Preferences –> Windows Settings -> Files создадим новую политику, копирующую файл vshadow.exe из каталога \\domain.loc\SYSVOL\domain.loc\scripts\ (файл должен быть скопирован сюда предварительно) в каталог %windir%\system32\vshadow.exe (нужно указывать имя файла в destination) . Эту политику можно настроить, чтобы она отработала только один раз (Apply once and do not reapply).

Скопировать файл vshadow на ПК пользователей через GPP

PowerShell скрипт для создания теневых снимков всех томов

Далее нам понадобится скрипт, который бы определял список дисков в системе, включал бы для всех ведение теневых снимков и создавал бы новый VSS-снапшот. У меня получился такой скрипт:

$HDDs = GET-WMIOBJECT –query "SELECT * from win32_logicaldisk where DriveType = 3"
foreach ($HDD in $HDDs) {
$Drive = $HDD.DeviceID
$vssadminEnable ="vssadmin.exe Resize ShadowStorage /For=$Drive /On=$Drive /MaxSize=10%"
$vsscreatess = "vshadow.exe -p $Drive"
cmd /c  $vssadminEnable
cmd /c  $vsscreatess
}

PowerShell скрипт по включению и ведению vssдля всех дисков

Первая срока позволяет найти все диски в системе, а затем для каждого диска утилита vshadow активирует ведение теневых копий, которые должны занимать не более 10% места и создает новую копию.

Этот скрипт сохраним в файл vss-script.ps1 и также скопируем на компьютеры пользователей через GPO.

Скопировать vss скрипт с помощью GPO

Задание планировщика по созданию VSS-снимков

Последнее, что осталось сделать – создать на всех ПК задание планировщика, которое регулярно бы запускало скрипт PowerShell vss-script.ps1 и создавало бы новый vss снимок дисков. Проще всего создать такое задание через GPP. Для этого в разделе Computer Configuration -> Preferences -> Scheduled Tasks создадим новое задание планировщика (New-> Scheduled Task (at least Windows 7) с именем: create vssnapshot, которое запускается от имени NT AUTHORITY\System с повышенными правами.

Задание планировщика create vssnapshot

Допустим, задание должно запускаться каждый день в обед в 13:20 (здесь нужно самостоятельно продумать необходимую частоту создания снимков).

расписание запуска

Запускаемый скрипт: %windir%\System32\WindowsPowerShell\v1.0\powershell.exe

с аргументом %windir%\system32\vss-script.ps1

task scheduler запуск PoSh скрипта

Совет. Нужно предусмотреть также создание еженедельного задания планировщика, удаляющего старые VSS снимки. Для этого нужно создать новое задание планировщика, запускающего скрипт аналогичный первому, но со строками:

$vssadminDeleteOld = “vshadow.exe -do=%$Drive”
cmd /c  $vssadminDeleteOld

Восстановление исходных данных из теневой копии тома

В том случае, если шифровальщик все-таки попал на ПК пользователя и сделал свое черное дело, после искоренения его из системы, администратор может восстановить документы пользователя из последнего снимка.

Список всех доступных снимком можно вывести командой:

vssadmin.exe list shadows

vssadmin.exe list shadows

В нашем примере последний снимок сделан 10/6/2016 1:33:35 AM и имеет Shadow Copy ID = {6bd666ac-4b42-4734-8fdd-fab64925c66c}.

Смонтируем снапшот на чтение в виде отдельного драйва системы по его ID:

vshadow -el={6bd666ac-4b42-4734-8fdd-fab64925c66c},Z:

vshadow-el-mount-snapshot

Теперь с помощью File Explorer или любого файлового менеджера скопируйте оригинальные файлы с диска Z:, представляющего собой содержимое подключенного снимка диска.

Чтобы отмонтировать диск со снимком:

mountvol Z:\ /D

Совет. Есть и более удобный графический инструмент для просмотра и извлечения данных из снимков VSS – ShadowExplorer.

Заключение

Конечно, теневые копии VSS не являются методом борьбы с вирусами-шифровальщиками и не отменяют комплексного подхода в организации безопасности сети от вирусов (антивирусы, блокировка запуска исполняемых файлов с помощью SRP или AppLocker политик, репутационные фильтры SmartScreen и т.д.). Однако, простота и доступность механизма теневых копий томов является, на мой взгляд, большим преимуществом этого простого способа восстановления зашифрованных данных, который очень вероятно пригодится в случае проникновения заразы на компьютер пользователя.

Время на прочтение3 мин

Количество просмотров14K

При резервном копировании путём простого копирования файлов возникает вопрос: «как убедиться в целостности данных». Ведь если, например, копировать 50-гиговую базу lotus сервера, то в процессе копирования одной части может измениться другая и целостность будет нарушена. А в некоторых случаях (например с базами данных) может появиться необходимость остановки службы, но нет возможности остановить её на пару часов.

Для подобных задач Windows имеет полезный инструмент. Впервые о подобной технологии я узнал работая с FreeBSD, затем узнал про LVM в Linux, а поискав такое же решение для Windows обнаружил, что оно здесь тоже есть и называется Volume Shadow Copy.

Эта технология позволяет сделать мгновенный слепок файловой системы, который статичен во времени, в то время как оригинальная файловая система продолжает работу в штатном режиме. Для бекапа баз данных таким образом можно останавливать БД (когда это возможно), создавать слепок, запускать БД снова, и после этого спокойно копировать файлы используя созданный слепок.

Я приведу пример автоматического создания слепка для резервного копирования базы Lotus Domino (останова она не требует) и поясню как оно работает. Скрипт можно легко адаптировать под свои нужды.

snapshot.cmd

rem Go to the script's directory
%~d0
cd %~dp0rem Get options or exit
call snapshot_env.cmd || exit 1

date /t > 

%snapshot_date%
date /t >> %snapshot_status%rem Delete the oldest shadow of the specified volume
vshadow -do=%snapshot_drive% > %snapshot_create_volume% && echo Removing old OK >> %snapshot_status% || echo Removing old ERR >> %snapshot_status%
rem Force removing the share if it haven't done itself (it happens sometimes)
net share %snapshot_share% /deleterem Create a persistent shadow copy
vshadow -p -script=%snapshot_var_script% %snapshot_drive% >> %snapshot_create_volume% && echo Snapshot OK >> %snapshot_status% || echo Snapshot ERR >> %snapshot_status%
call %snapshot_var_script%rem Expose a child directory from the shadow copy as a share
vshadow -er=%SHADOW_ID_1%,%snapshot_share%,%snapshot_path% && echo Sharing OK >> %snapshot_status% || echo Sharing ERR >> %snapshot_status%echo --- >> %snapshot_status%

snapshot_env.cmd

set snapshot_drive=e:
set snapshot_path=lotus
set snapshot_share=lotus$
set snapshot_var_script=snapshot_vars.cmd
set snapshot_status=logs\snapshot_status.log
set snapshot_create_volume=logs\snapshot_create_volume.log
set snapshot_date=%snapshot_drive%\%snapshot_path%\snapshot_date.log

Как это работает

— Скрипт snapshot.cmd после запуска считывает параметры из файла snapshot_env.cmd
— Создаётся файл %snapshot_date% в директории, которая будет архивироваться (позже объясню зачем)
— Удаляет старые снапшоты, если таковые имелись и расшаренные директории
— Создаёт новый снапшот для диска %snapshot_drive%
— Расшаривает директорию %snapshot_path% с сетевым именем %snapshot_share% (т.е. по сети можно будет обратиться к этой директории как \\server\lotus$). Важный момент — права на директорию будет иметь группа Backup operators, а это значит вам нужно будет создать специального пользователя lotus-backup, добавить его в группу Backup operators и использовать его в скриптах для подключения к папке \\server\lotus$ по сети.
— Начиная с этого момента данные из директории \\server\lotus$ можно спокойно и в любом темпе копировать в надёжное место :)

А теперь отдельно скажу о том, зачем же нужен был файл %snapshot_date%. Этот файл нужен для того, чтобы по сети можно было отличить вновь созданный снапшот от старого, который по той или иной причине не удалился. Это можно сделать проверив дату создания файла %snapshot_date% (у нас это делает nagios).

Требования

— vshadow.exe, необходимый для работы скриптов вы можете найти в Volume Shadow Copy Service SDK который можно скачать по ссылке: www.microsoft.com/downloads/en/details.aspx?FamilyID=0b4f56e4-0ccc-4626-826a-ed2c4c95c871
— Работа всего этого проверялась только на Windows Server 2003

PS: кстати, Windows-клиент Bacula, на сколько я знаю, так же использует технологию «Volume Shadow Copy» в своей работе.

Если эта публикация вас вдохновила и вы хотите поддержать автора — не стесняйтесь нажать на кнопку

.. /Vshadow.exe

VShadow is a command-line tool that can be used to create and manage volume shadow copies.

Paths:

  • C:\Program Files (x86)\Windows Kits\10\bin\<version>\x64\vshadow.exe

Resources:

  • https://learn.microsoft.com/en-us/windows/win32/vss/vshadow-tool-and-sample

Acknowledgements:

  • Ayberk Halaç

Detections:

  • IOC: vshadow.exe usage with -exec parameter

Execute

  1. Executes specified executable from vshadow.exe.

    vshadow.exe -nw -exec={PATH_ABSOLUTE:.exe} C:
    Use case
    Performs execution of specified executable file.
    Privileges required
    Administrator
    Operating systems
    Windows 10, Windows 11
    ATT&CK® technique
    T1202
    Tags

    Execute: EXE

Понравилась статья? Поделить с друзьями:
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
  • Чистая установка windows это
  • Как подключить блютуз наушники к компьютеру windows 10 pro
  • Windows 7 профессиональная рабочий стол
  • Нужно ли чистить папку prefetch в windows 10
  • Как вернуть ноутбук к заводским настройкам windows 10 asus