Mr. Robot
Last updated
Last updated
Empezamos haciendo un escaneo de puertos con Nmap:
Analizando los resultados vemos que los puertos 80 HTTP y 443 HTTPS están abiertos.
Visitamos la página web y no topamos con una interfaz muy interesante
Usamos Gobuster para encontrar directorios.
El fuzzing nos da muchos resultados de interés. En lo personal /robots.txt siempre es de las primeras rutas que me gusta revisar ya que nos puede dar información extra.
El archivo robots.txt
reveló información útil.
Nos encontramos con un archivo que al parecer contiene una lista de contraseñas o usuarios.
También encontramos con la ruta /key-1-of-3.txt donde encontramos la primer flag.
Después no movemos a la ruta /wp-login, en donde tratamos poner algunas de las credenciales típicas como admin:admin pero ninguna funciona.
Como no funcionó alguna de estas combinaciones, ahora intentaremos un ataque de fuerza bruta. Para esto usaremos BurpSuite, aunque tambien es posible hacerlo con hydra.
Primero interceptamos el login con el proxy y enviamos el request lo enviamos al intruder y ahí agregamos el marcador de payload al campo del usuario que es el que queremos encontrar.
Después entramos a la pestaña de payloads cargamos la lista (fsocity.dic) que habíamos descargado anteriormente en /robots.txt, una vez cargada el archivo damos clic en start attack.
En los resultados filtramos por length, encontrándonos con que el usuario Elliot es el único diferente y en la respuesta confirmamos que es un usuario correcto.
Ahora buscaremos alguna contraseña válida para esto también hay muchas herramientas que podemos utilizar, en este caso usaremos wpscan con el mismo diccionario descargado.
Dado que estaba tomando mucho tiempo en encontrando la contraseña, podemos aprovechar para explorar los otros directorios encontrados con Gobuster. Después de revisar un rato, en /license hallamos un texto en lo que parece base64.
Copiamos el texto y lo decodificamos:
Y al parecer tenemos la contraseña del usuario elliot.
Probamos las credenciales y listo logramos entrar sin tener que esperar a que wpscan termine. De igual forma si quieren encontrar la contraseña con fuerza bruta les recomiendo que empiecen por el final del diccionario fsocity.
Una vez encontrada la contraseña entramos al panel de administrador y hacemos un poco de exploración. En la pestaña Appearance/Editor podemos editar templates de código PHP.
En una de las plantillas , cargamos una reverse shell la cual conseguimos en pentestmonkey, solo editamos los campos de de $ip y $port.
Nos ponemos en escucha con nc -lvnp 4444
y como la reverse shell la cargamos en la plantilla de 404, podemos poner cualquier cosa que llame este script.
Le damos un tratamiento a la terminal para que sea un poco más interactiva y nos dirigimos al directorio del usuario encontrado en /home, donde hay dos archivos un txt donde esta la segunda flag, en el otro archivo hay un hash que parece ser del usuario robot.
En esta página podemos descifrar el contenido de este hash.
Con la contraseña obtenida migramos al usuario robot y vemos el valor de la segunda flag dentro de key-2-of-3.txt.
Para escalar privilegios, primero intentamos ejecutar el comando sudo -l
pero el usario robot no puede ejecutar comandos sudo, por lo que procedemos a buscar archivos con privilegios SUID.
Dentro de los archivos encontrados hay uno que esta fuera de lo común: Nmap.
Haciendo una búsqueda por internet hallamos como podemos abusar de este archivo. Simplemente ejecutando:
obtenemos una shell como root, la tercera flag está dentro del directorio /root.
Enumeración de directorios:
Solución: Deshabilitar o restringir el acceso a /robots.txt
y archivos sensibles.
Mejora: Configurar reglas de firewall para evitar escaneos automatizados.
Protección contra fuerza bruta:
Solución: Implementar límites de intentos fallidos y CAPTCHA en formularios de login.
Mejora: Utilizar autenticación multifactor (MFA).
Explotación de plugins vulnerables:
Solución: Mantener los plugins y CMS siempre actualizados.
Mejora: Usar políticas de revisión antes de instalar nuevos plugins.
Escalada de privilegios:
Solución: Revisar y eliminar archivos con permisos SUID innecesarios para prevenir escaladas de privilegios.
Mejora: Implementar el principio de privilegio mínimo.
Reverse shell:
Solución: Monitorizar logs y conexiones sospechosas.
Mejora: Usar soluciones de detección de intrusiones (IDS) para identificar shells remotas.