CVE-2009-0229-PoC
PoC para CVE-2009-0229 "Vulnerabilidad de lectura de archivos del Print Spooler" LPE AFR (relacionado con CVE-2020-1048)
Detalles
- Autor: Andrei Costin ([email protected])
- Fecha del PoC: 2010-xx-xx
- Fecha de publicación: 2020-05-14 (recordado/inspirado por CVE-2020-1048 - sí, llegué tarde a la fiesta :D )
- Resumen
- Si quieres 0days, excava el subsistema de impresión y fax de los SO :) - mucho código heredado por razones históricas - hay vulnerabilidades para todos =)
Notas
-
Nota1: No verificado - no estoy 100% seguro de que sea el mismo error que desencadena CVE-2009-0229
-
Nota2: No verificado - podría funcionar en sistemas más nuevos como Windows Server 2012 y Windows Server 2016
-
Nota3: Todas las versiones de Windows vienen con 4 archivos predeterminados de "Página separadora"
- pcl.sep
- pscript.sep
- sysprint.sep
- sysprtj.sep
-
Nota4: Este truco es más antiguo que Windows 95 =), bastante seguro de que fue usado por profesionales para "recuperación sigilosa de información" ;)
Requisitos previos
- El atacante local (no administrador) tiene "derechos de administración de impresoras"
- opción1: puede agregar una nueva impresora
- opción2: puede modificar la configuración de una impresora existente "de todo el sistema" (muchas veces es el caso)
- El "archivo arbitrario" para exfiltración no tiene permiso explícito de "Denegar lectura"
- muy improbable ya que eso haría que el acceso a los archivos para la víctima fuera realmente poco práctico/inutilizable
Ejecución del PoC
-
El atacante local configura cualquier impresora a la que tenga acceso para que use un archivo de "Página separadora" proporcionado por el atacante (attack.sep), ahora el atacante tiene una "impresora armada"
- Consulte "Referencias de Página separadora de Windows" a continuación para más detalles
-
El atacante local crea el archivo de "Página separadora" (attack.sep) para usar el operador "@F"/"$F", de la siguiente manera, donde se supone que el archivo a exfiltrar es "C:\secret.txt" (nótese la \ y la concatenación directa al operador @F)
@
@FC:\\secret.txt
-
El atacante local necesita imprimir algo usando la impresora "armada" anterior
- Por ejemplo, el atacante local abre el Bloc de notas, imprime el documento vacío a través de la impresora configurada anteriormente con el archivo de "Página separadora"
- El atacante local usa la opción "imprimir en archivo" (por ejemplo, c:\temp\exfiltrated.out) al imprimir - hay opciones "imprimir en archivo" .ps en la mayoría de las versiones de Windows + .xps en las más nuevas (http://ps-2.kev009.com/pcpartnerinfo/ctstips/e94a.htm)
- Esto se hace para que el contenido del archivo exfiltrado no vaya a la impresora (aunque también es una opción), sino que esté inmediatamente disponible para el atacante
-
Mejora del ataque: un archivo de "Página separadora" puede contener una lista de fuerza bruta de las rutas/nombres de archivo más comunes
-
También está el operador @L :)
Curiosidades
-
Encontrado en 2010 cuando estaba haciendo investigación/charlas "Hacking Printers for Fun and Profit"
-
Estoy bastante seguro de que los subsistemas de impresión y fax están plagados de vulnerabilidades desde Windows 3.1 (por razones históricas)
Referencias de seguridad
Referencias de "Página separadora" de Windows
- Así es como se ven los diálogos de "Página separadora" en varias versiones de Windows
- Así es como se ve "Imprimir en archivo" en algunas versiones de Windows
- "Página separadora" en "Hands-On Microsoft Windows Server 2016 de Michael Palmer"
- "Crear páginas separadoras personalizadas en Windows Server 2012/2016"
- "Usar una página separadora al imprimir en Windows"
- "¿Cómo configuro una página separadora de impresión?"