Windows 7 y 8.1 se bloquearán con sólo intentar abrir c:\$MFT\123

Desde su creación, Windows tiene varios nombres de archivo que son "especiales" porque no corresponden a ningún archivo real, sino que representan dispositivos de hardware. Se puede acceder a estos nombres de archivo especiales desde cualquier ubicación del sistema de archivos, aunque realmente no existan en el disco. Sin embargo, existen algunos errores en la forma que manejan estos archivos que pueden hacer que el sistema quede bloqueado e incluso colgado...

Windows 95/98 manejaba bien los accesos al dispositivo de la consola (con), es decir al teclado y a la pantalla, pero los problemas surgían cuando el nombre de archivo aparecía dos veces, por ejemplo c:\con\con. En ese caso... pantallazo azúl de la muerte... y risas... Por supuesto, si se hacía referencia a ese archivo desde una página web, siguiendo con el ejemplo file:///c:/con/con, la máquina "crasheaba" también como los ángeles, sólo accediendo a la página malintencionada.

Y como a la Compañía de Redmond no le gusta perder las malas costumbres, se ha descubierto recientemente que Windows 7 y 8.1 (Windows 10 parece que se salva) también nos deleita con bonitos bloqueos y pantallazos azules de la muerte (o BSOD) al manejar nombres de archivo especiales. Esta vez, el nombre de archivo especial es $MFT.


$MFT es el nombre dado a uno de los archivos de metadatos especiales que son utilizados por el sistema de archivos NTFS de Windows. El archivo existe en el directorio raíz de cada volumen NTFS, pero el controlador NTFS lo maneja de manera especial y está oculto e inaccesible a la mayoría del software. Los intentos de abrir el archivo normalmente se bloquean, pero de una manera similar a los fallos de Windows 9x, si se utiliza el nombre de archivo como si fuera un nombre de directorio, por ejemplo intentando abrir el archivo c:\$MFT\123, el driver NTFS bloquea el archivo y nunca lo libera. Cada operación posterior queda a la espera de que se libere y a continuación se bloquean todos y cada uno de los demás intentos de acceso al sistema de archivos, por lo que cada programa comenzará a colgarse, haciendo que la máquina sea inutilizable hasta que se reinicie.

Y, como sucedió hace casi 20 años, las páginas web que usan el nombre de archivo incorrecto (por ejemplo como el source de una imagen) provocan el error y hacen que la máquina deje de responder. Dependiendo de lo que la máquina está haciendo en ese momento podremos dsifrutar o no de un bonito pantallazo azul. De cualquier forma, se necesitará reiniciar el equipo para recuperarlo. Algunos exploradores bloquearán los intentos de acceso a estos recursos locales, pero Internet Explorer, por ejemplo, intentará acceder al archivo incorrecto.

De momento no se ha conseguido hacerlo al revés, es decir que se caiga el servidor enviándole la solicitud de un nombre de archivo incorrecto, pero tiempo al tiempo... De momento el tio Bill ya ha sido informado aunque el problema todavía no ha sido parcheado.

Enjoy trolling!

3 comentarios :

  1. José Luis Romero27 de mayo de 2017, 16:11

    Aquí os dejo un Proof Of Concept de como explotar esto
    https://www.dropbox.com/s/e444aejg1y6kig1/mft123.pdf?dl=0

    ResponderEliminar
    Respuestas
    1. También funciona poner file://c:\$MFT\123 en la barra del navegador.
      Comprobado en un Firefox sobre Win7 actualizado.

      Eliminar
    2. Probado lo que decís con Windows 7 y funciona!!

      Por si alguien quiere hacer pruebas con provocar pantallazos azules puede usar la herramienta gratuita NotMyFault de sysinternals:

      http://www.sysadmit.com/2017/05/windows-provocar-pantallazo-azul.html

      Eliminar