Seeker
Máquina Seeker de DockerLabs
Autor: maciiii___
Dificultad: medio

Reconocimiento
Comenzamos con un escaneo de nmap:
Como vemos, solo tenemos 1 puerto abierto que es el 80 y en el funciona apache en su versión 2.4.62.
Puerto 80
Al entrar en la web, podemos notar que es la página default de apache, solo que en algunas partes en vez de decir /var/www/html como dice normalmente, dice /var/www/5eEk3r por lo que podemos intuir que en el servidor hay un dominio. En dockerlabs generalmente terminan en ".dl", por lo que lo agregaremos en el archivo /etc/hosts de la siguiente manera:
Subdomain fuzz
Ahora que sabemos que hay un dominio y como en esa web no hay nada, usaremos ffuf para buscar algún subdominio:
como vemos en el resultado, tenemos el subdominio crosswords, el cual también agregaremos en el archivo /etc/hosts:
Crosswords
En este subdominio encontramos cosas interesantes, ya que es una web la cual parece pasar un texto a ROT14, además que en el código fuente dice este mensaje:
yo no se en que parte estará ese xss...
Luego de buscar un poco, no encuentro nada útil en esa web, por lo que vuelvo a hacer fuzzing de subdominios pero en ese subdominio:
nuevamente encontramos un subdominio pero llamado "admin", el cual volveremos a poner en el archivo /etc/hosts de la siguiente manera:
Al entrar en el, podemos ver una web la cual permite administrar los archivos de la web anterior, y también nos permite subir archivos, por lo que ya podemos lograr entrar en la máquina.
Intrusión
Teniendo una subida de archivos, podemos crear un archivo php el cual nos envíe una reverse shell. Para hacerlo creamos un archivo llamado shell.php el cual contenga lo siguiente:
Una vez creado, intentamos subirlo pero nos dice lo siguiente:
podemos intentar bypasear esta restricción cambiando la extensión del archivo por phar. Al cambiarlo e intentar subirlo, nos aparece el siguiente mensaje:
ahora escuchamos por el puerto 443 con netcat (sudo nc -lvnp 443) y entramos en http://crosswords.5eek3r.dl/shell.phar para entrar en la máquina.
Escalada De Privilegios
www-data
Si ejecutamos sudo -l, veremos que podemos ejecutar el binario busybox como el usuario "astu", por lo que podriamos escalar ejecutando lo siguiente:
Astu
Al ejecutar sudo -l nos pide contraseña, pero en la home de el usuario astu podremos ver una carpeta la cual tiene un binario con el bit SUID activado. Viendo esto probamos a poner muchos caracteres y veremos que es vulnerable a buffer overflow. Sabiendo esto nos lo pasamos a nuestra máquina y comenzamos a depurarlo con gdb.
Buffer Overflow
Creamos un pattern con pattern_create de metasploit y lo mandamos por el gdb con el binario y vemos lo siguiente:
ahora pasamos 0x6341356341346341 a la herramienta pattern_offset de metasploit y nos dice lo siguiente:
Por lo que ya tenemos un offset y podemos ir armando el exploit:
Ahora si revisamos con checksec el binario, veremos que tiene NX activado como protección, eso significa que el stack no es ejecutable, por lo que no nos sirve meter un shellcode. También si revisamos las funciónes con gdb (info functions), veremos una llamada "fire" la cual establece el uid en 0 y además ejecuta un sh, ya que con strings vemos lo siguiente:
por lo que podriamos intentar apuntar a esa función para poder escalar a root.
en este caso tendremos que utilizar la dirección 0x40136b.
finalmente, el exploit quedaría asi:
lo pasamos a la máquina y al ejecutarlo tendreoms una sh casi como root, ya que todavía no tenemos los permisos totales de root, para arreglar esto, simplemente ejecutamos lo siguiente:
y ya seremos root al 100%.
Root

Gracias por leer ;)
Última actualización