
Detección y restauración de capturas PNG de Windows Snipping Tool vulnerables a CVE-2023-28303
Detección y restauración de capturas PNG de la Herramienta Recortes de Windows vulnerables a CVE-2023-28303
SnipRecover CLI es una utilidad de línea de comandos mínima y sin dependencias, diseñada para:
Detectar archivos PNG modificados por la vulnerabilidad de la Herramienta Recortes de Windows (CVE-2023-28303).
Restaurar la imagen original recuperando los datos comprimidos añadidos después del chunk IEND.
Por defecto, las imágenes restauradas usan RGBA y una resolución de 1920×1080; si no se especifica una ruta de salida, la herramienta escribe en restored-<original_name>.png.
Según la especificación PNG (ISO/IEC 15948), todos los datos de imagen (chunks IDAT) deben aparecer antes del chunk final IEND. La Herramienta Recortes de Windows añade por error datos IDAT adicionales después de IEND, violando el estándar y exponiendo el contenido completo de la imagen que fue “recortada”.
Estructura PNG estándar:
Firma (8 bytes): 89 50 4E 47 0D 0A 1A 0A
Chunks:
IHDR: cabecera de la imagen (ancho, alto, tipo de color, etc.)
IDAT: datos de píxeles comprimidos
IEND: marcador de fin de archivo
Un PNG recortado con la Herramienta Recortes contiene bytes adicionales más allá de IEND. SnipRecover CLI detecta esta anomalía y reconstruye el flujo de compresión para recuperar la imagen original.
Requisitos previos:
Pasos:
git clone https://github.com/m31r0n/SnipRecover-CLI.git
cd SnipRecover-CLI
chmod +x sniprecover
No se necesitan librerías externas: solo los módulos estándar de Python _struct_, _zlib_ y _io_.
# Display help
python3 sniprecover --help
# 1. Detect vulnerable PNG(s)
python3 sniprecover detect /path/to/images/
# 2. Restore a cropped capture
python3 sniprecover restore capture.png --output restored-capture.png
Nota: Si omites
--width,--heighto--alpha, se aplican los valores predeterminados de 1920×1080 y RGBA. Si omites--output, las imágenes restauradas se guardan comorestored-<original_name>.png.
SnipRecover-CLI/
├── sniprecover # Main CLI executable (make sure it's executable)
└── README.md # Documentation and theory
CVE-2023-28303: Vulnerabilidad de la Herramienta Recortes de Windows – Microsoft Security Response Center
Especificación PNG (ISO/IEC 15948) – W3C
MIT © 2025 – Desarrollado por m31r0n
| Opción | Descripción | Por defecto |
|---|
--width <int> | Ancho de la imagen original | 1920 |
--height <int> | Alto de la imagen original | 1080 |
--alpha | Incluir canal alfa (RGBA) | habilitado |
--output <file> | Ruta para guardar el PNG restaurado | restored-<original_name>.png |