En una máquina de HTB, en la fase de la escalada de privilegios me encontré un código en python que trabaja con la función: eval(), y que podían ser ejecutado como root.
Dicha función “eval()” sin entrar en definiciones académicas, evaluará el contenido de lo pasado, es decir, ejecutará lo que se le pase como parámetro.
Un ejemplo sencillo:
Pero… ¿evalúa comparaciones?
¡Pues parece que sí!
Y si… ¿a la función “eval()” le metemos código de python?, ¿probamos a importar la librería “os”?
NOTA: la
intención de solicitar una shell de bash.
¡Vaya!, no ha funcionado pero… no ha funcionado porque la sintaxis no es la correcta, no porque no se pueda.
La forma correcta de importar un librería cuando utilizamos la función: eval(), es: __import__(‘<librería>’)
Comprobemos:
¡¡Conseguido!!
Ok, probemos
ahora a simular lo comentado antes, lo recordamos, ejecutamos un código de
python con permisos elevados gracias a sudo.
¡¡Ahí esta!!
Como conclusión… a la hora de programar cuidado con lo que se hace, pero a la hora de elevar privilegios nunca te olvides de nuestro querido ascensorista.
En cualquier caso
Lo que hagas con la información es cosa tuya, no mía... pero ten conciencia
No hay comentarios:
Publicar un comentario