Banner 1

Inyección de comandos en variables de entorno de ficheros batch

¿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:

Powered by Bad Robot
Helped by Blackubay