Máquina HUNTER
Hacemos el reconocimiento de puertos con nmap:
Esto corre por el puerto 80:
Hacemos fuzzing web y nos encontramos con un directorio robots.txt:
Donde si accedemos a él nos encontramos con un subdominio:
Modificamos el /etc/hosts:
Y podemos hacer un ataque de transferencia de zona de la siguiente forma para detectar subdominios, ya que en el reconocimiento de nmap veíamos que el puerto 53 (protocolo DNS) estaba habilitado:
dig axfr hunterzone.nyx @192.168.0.40
Pero tras realizar varias pruebas, el dominio que nos interesa es el de devhunter.nyx:
Por lo que lo añadimos al /etc/hosts:
Y ahora si hacemos un ataque en busca de subdominios con wfuzz nos encontramos con el subdominio files:
wfuzz -c --hc=404 --hl=367 -w /usr/share/wordlists/seclists/Discovery/Web-Content/directory-list-lowercase-2.3-medium.txt -H "Host: FUZZ.devhunter.nyx" -u 192.168.0.40
Lo añadimos al /etc/hosts:
Y dentro de este nuevo subdominio nos encontramos con un lugar para subir archivos:
Si tratamos de subir un archivo en php vemos que no lo permite:
Por lo que si queremos conocer qué extensiones de archivo acepta, debemos de utilizar el intruder de burpsuite e ir probando; por lo que primero interceptamos la petición:
Seleccionamos la extensión del archivo y utilizamos el siguiente diccionario de extensiones para ir probando cual es válida:
https://github.com/InfoSecWarrior/Offensive-Payloads/blob/main/File-Extensions-Wordlist.txt
Establecemos dónde queremos que vaya aplicando la sustitución:
Cargamos dentro del intruder, en la parte de payload el diccionario de las extensiones:
Y en grep extract capturamos el mensaje de error:
Vemos que podemos subir tanto archivos .png como .htaccess al servidor; y los ficheros htaccess sirven para controlar algunas configuraciones en servidores apache, entre las cuales podremos controlar las extensiones permitidas, por lo que vamos a hacer que nos permita subir archivos .png:
AddType application/x-httpd-php .png
Y lo mismo con la webshell de extensión .png:
<?php echo "<pre>" . shell_exec($_REQUEST['cmd']) . "</pre>"; ?>
Subimos ambos archivos y lo logramos:
Una vez subido, verificamos que existe el directorio de /uploads:
Y ahora llamamos a la webshell de .png y vemos que podemos ejecutar comandos:
Url encodeamos la reverse shell con burp suite:
Y lo pegamos en el navegador para obtener la intrusión:
Una vez dentro, podemos ver que podemos ejecutar/usr/bin/bsh como root; pero cuando ejecutamos esto vemos que realmente se llama BeanShell:
Y en esta web vemos cómo podemos ejecutar comandos en eso:
http://www.beanshell.org/manual/quickstart.html
Lo ejecutamos y cambiamos de permisos a la bash:
Y ahora al ejecutar el comando bash -p podremos escalar a root:




























