Hay dos enfoques, el cuantitativo y el cualitativo.
El cuantitativo consiste en difuminar la entrada del controlador de sandboxing. Use un marco de fuzzing como Peach, Sulley u otro para fuzz en la entrada y busque fallos u operaciones de archivos fuera del entorno limitado.
El enfoque cualitativo implica la ingeniería inversa y comprender el mecanismo de sandboxing. Luego intente combinar esa comprensión con las diferentes características que proporciona Windows y los diferentes niveles de privilegios que otros componentes podrían tener. La zona de pruebas puede restringir las operaciones de archivos y redes, pero ¿restringirá la inyección en un proceso diferente?
Ideas de escenarios:
- Manipular otros procesos y el sistema para escribir fuera de la caja de arena
- Usando rutinas nativas del sistema
NtWriteFile
y ZwWriteFile
- Cargando controladores y escribiendo en dispositivos como
\Device\Harddisk4\Partition2\mydir\myfile.txt
, \DosDevices\c:\path_to_file.txt
, \Device\Tcp
- Cargando DLLs con
rundll32.exe
- Mecanismos de enganche desenganchados o confusos
- Usar enlaces simbólicos para confundir la caja de arena
- Usando flujos de datos alternativos
fileinsandbox.txt:fileoutsidesandbox.txt
- Realización de recorridos de directorio
path\in\sandbox\..\..\..\outside.txt
- Usar variables de entorno como
%SystemRoot%
, %WinDir%
, %TEMP%