Skip to main content

Dockerlabs machines – Skullnet Writeup

Dockerlabs machines – Skullnet Writeup

Skullnet es una de las maquinas existentes actualmente en la plataforma de hacking Dockerlabs y es de dificultad Difícil.

En este caso se trata de una máquina basada en el Sistema Operativo Linux.

Empezaremos con el escaneo de puertos una vez tenemos la maquina a vulnerar levantada , la ip por defecto será la 172.17.0.2.

 

Una vez tenemos los puertos abiertos, ejecutaremos con nmap con el parámetro -sCV para que le pase los scripts por defecto y conseguir mas información de cada uno de ellos.

 

Accedemos al puerto 80 por navegador ya que feroxbuster no aporta información y vemos que nos redirige a skullnet.es , así que lo añadimos al archivo hosts para poder acceder

 

Pero seguimos ver nada, volvemos a usar nmap con los scripts por defecto para el puerto 80

 

Encontramos un repositorio git y nos los descargaremos con la herramienta git-dumper

 

Usamos git log -p para ver los commits y en que han cambiado.

 

Vemos una contraseña y un usuario, pero también habla de un pcap que no vemos, usaremos git checkout y el numero de commit para volver a ese punto y tener de nuevo los ficheros.

 

Usaremos wireshark para ver que información nos proporciona el fichero pcap

 

Nada mas abrirlo, vemos que hace una conexión ssh cuando el puerto no lo hemos visto abierto y también, que lanza 3 SYN’s a diferentes puertos, por lo que nos da una idea de que puede ser un port knocking.

 

Vemos que se abre el puerto e intentamos acceder con el usuario y contraseña que anteriormente hemos encontrado

 

Encontramos una flag de user en el home

 

Tras buscar por directorios, revisar binarios, etc, nos encontramos con un proceso en el cual se esta sirviendo «skullnet_api.py» como el usuario root

 

Tenemos permiso para poder leer el archivo

 

Lo que podemos sacar del código es :

  • Esta en escucha en el puerto 8081
  • Espera una cabecera «Authorization: Basic XXXXXXX» , la cual será la decodificación de d2VfYXJlX2JvbmVzXzUxMzU0NjUxNjQ4NjQ4NA== , es decir we_are_bones_513546516486484
  • Se le ha de pasar si todo va bien, un parametro exec, con lo que parece que solo permite ls y whoami

 

Lanzamos con curl el comando

 

Ahora bien, si le le concatenamos cualquier otro comando, parece que también lo ejecuta

 

Por lo tanto,  lanzaremos una reverse shell para ser root, previamente estando en escucha con netcat y levantando un servicio http con python.

 

Finalmente podremos leer la flag de root.

 

 

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *