¿Y
si te contara que un usuario normal de una red corporativa puede tomar
el control de un servidor de ficheros Windows sólo creando una carpeta
con un nombre especial dentro de un recurso compartido?
En
Windows el caracter & es interpretado como un separador de comandos,
por lo que para ejecutar el segundo comando sólo hace falta mostrar una
variable de entorno o asignar el valor de una variable a otra:
En
sí mismo esto no se considera un exploit porque está claro que si
pueden modificar las variables de entorno de tu servidor ya estás
jodido. Pero, ¿y si existe una tarea programada que ejecuta un bat con
un ECHO %CD% o algo como SET CurrentPath=%CD%?
Si
lo piensas, los administradores suelen programar la ejecución de
ficheros .bat en servidores de ficheros para realizar algún tipo de
mantenimiento, por ejemplo para comprobar los permisos de todos los
sub-directorios o para ver el tamaño de cada uno de ellos. Entonces un
usuario con privilegios limitados simplemente puede crear un directorio:
\fileServer1\Share\user1\T&malware
Y crear un fichero “malware.bat” que contiene:
Net localgroup administrators domain\user1 /add
O
Net user administrator newpassword123!!
Después simplemente tiene que esperar a que el fichero batch corra con permisos elevados y haga uso de la variable %CD% sobre el nombre del directorio...
Fuente: Command-injection vulnerability for COMMAND-Shell Scripts
http://www.hackplayers.com/2014/10/inyeccion-de-comandos-en-variables-en-batch.html
No hay comentarios:
Publicar un comentario