🐧Linux - Abuso de comodines
Última actualización
Última actualización
Un carácter comodín se puede utilizar como reemplazo de otros caracteres y el shell lo interpreta antes de realizar otras acciones. Algunos ejemplos de comodines son:
Un ejemplo de cómo se pueden utilizar de forma abusiva los comodines para la escalada de privilegios es el comando tar
, un programa común para crear y extraer archivos. Si observamos la página del manual del comando tar
, vemos lo siguiente:
La opción --checkpoint-action
permite ejecutar una acción EXEC
cuando se alcanza un punto de control (es decir, ejecutar un comando arbitrario del sistema operativo una vez que se ejecuta el comando tar). Al crear archivos con estos nombres, cuando se especifica el comodín, --checkpoint=1
y --checkpoint-action=exec=sh root.sh
se pasan a tar como opciones de línea de comandos. Veamos esto en la práctica.
Considere el siguiente trabajo cron, que está configurado para realizar una copia de seguridad del contenido del directorio /home/htb-student
y crear un archivo comprimido dentro de /home/htb-student
. El trabajo cron está configurado para ejecutarse cada minuto, por lo que es un buen candidato para la escalada de privilegios.
Podemos aprovechar el comodín en el trabajo cron para escribir los comandos necesarios como nombres de archivo teniendo en cuenta lo anterior. Cuando se ejecuta el trabajo cron, estos nombres de archivo se interpretarán como argumentos y ejecutarán cualquier comando que especifiquemos.
Podemos comprobar y ver que se han creado los archivos necesarios.
Una vez que el trabajo cron se ejecute nuevamente, podemos verificar los privilegios de sudo recientemente agregados y sudo su
para rootear directamente:
Carácter
Significado
*
Un asterisco que puede coincidir con cualquier número de caracteres en un nombre de archivo.
?
Coincide con un solo caracter.
[ ]
Los corchetes encierran caracteres y pueden coincidir con cualquiera de ellos en la posición definida.
~
Una tilde al principio se expande al nombre del directorio de inicio del usuario o puede tener otro nombre de usuario añadido para hacer referencia al directorio de inicio de ese usuario.
-
Un guión entre paréntesis indicará un rango de caracteres.