IIS 8.3 short-name enumeration (tilde)
Algunas versiones de Microsoft IIS filtran los nombres cortos 8.3 (el viejo formato de MS-DOS: ocho caracteres, punto, tres de extensión) que Windows genera para cada fichero y carpeta. Pidiendo rutas con el carácter tilde (~) seguido de un número de secuencia, el servidor responde con códigos distintos según exista o no un nombre corto que empiece por esas letras. Encadenando peticiones se reconstruye letra a letra el nombre corto de ficheros y directorios ocultos, aunque no aparezcan enlazados en ninguna parte, y desde ahí se llega al recurso real.
Mecanismo
La idea base es probar cada letra tras la tilde y observar la respuesta. Un 200 OK confirma que existe un nombre corto que empieza por esa secuencia; se va alargando hasta dar con el nombre NOMBRE~1:
GET /~s HTTP/1.1
GET /~se HTTP/1.1
GET /~sec HTTP/1.1Hacerlo a mano es tedioso, así que se automatiza con IIS-ShortName-Scanner (Java), que además decide el método HTTP y la parte mágica que dispara el comportamiento:
java -jar iis_shortname_scanner.jar 0 5 http://<ip>/|_ Result: Vulnerable!
|_ Used HTTP method: OPTIONS
|_ Suffix (magic part): /~1/
|_ Identified directories: 2
|_ ASPNET~1
|_ UPLOAD~1
|_ Identified files: 3
|_ CSASPX~1.CS
|_ TRANSF~1.ASPEl nombre corto solo revela los primeros seis caracteres y la extensión recortada (TRANSF~1.ASP), no el nombre completo. Para recuperarlo se genera un diccionario con las palabras que empiezan por ese prefijo y se prueba con gobuster, añadiendo las extensiones reales:
egrep -r ^transf /usr/share/wordlists/* | sed 's/^[^:]*://' > /tmp/list.txt
gobuster dir -u http://<ip>/ -w /tmp/list.txt -x .aspx,.asp/transfer.aspx (Status: 200) [Size: 941]Requisitos
Una versión de IIS afectada (clásicamente IIS 6.0 a 7.5, aunque depende de la configuración y de si el sistema de ficheros mantiene los nombres 8.3). No requiere autenticación: es enumeración a ciegas contra el servidor web. El resultado son pistas (prefijos + extensión), no rutas completas, por lo que casi siempre hay que rematar con descubrimiento de contenido dirigido.
Cómo detectarlo. Se delata por una ráfaga de peticiones con ~ y una única letra variable (/~a, /~b, /~c...) y por el uso de métodos poco comunes como OPTIONS con sufijos /~1/.rem. En los logs de IIS aparece un volumen alto de 404/400 con URLs que contienen la tilde. Un WAF o un patrón de detección sobre la tilde en la ruta suele bastar para alertar.
Defensa. Deshabilitar la generación de nombres cortos 8.3 (fsutil 8dot3name set 1 y regenerar), mantener IIS actualizado, y no confiar en la ocultación por oscuridad: un fichero sensible sigue siendo accesible aunque no esté enlazado. Complementa el descubrimiento de contenido web y el fuzzing de vhosts, y a menudo desemboca en abuso de web.config en IIS o en convertir la versión en un exploit.