Blogger - HackJourney
Descripción
Blogger es una máquina donde estaremos explotando una vulnerabilidad en el gestor de contenido wordpress con la que vamos a lograr acceso al servidor, posteriormente para escalar privilegios tendremos que hacer unos movimientos laterales para cambiar de usuario y obtener el root de la máquina.
Plataforma: HackJourney
Dificultad: Fácil
Técnicas Vistas:
- Fuzzing
- Information Leakage
- CMS Exploitation (Wordpress)
- PHP Reverse Shell (Bypass upload file with GIF)
- Lateral Movement
IP de la Maquina
10.10.0.5
Reconocimiento
Comprobando conectividad con la maquina
1 | ping -c1 10.10.0.5 |

Identificando el sistema operativo lo realizamos con un script en python que en base al TTL nos dice ante que SO nos encontramos.
1 | wichSystem.py |

Enumeración
Escaneo de los puertos
1 | sudo nmap -p- --open -sS --min-rate 5000 -vvv -n -Pn -oG scanP 10.10.0.5 |

Vamos a utilizar una serie de scripts básicos de reconocimiento de nmap, detectar las versiones y servicios que corren para esos puertos y lo guardamos en formato nmap en el ficherito scanS.
1 | nmap -sCV -p22,80 -oN scanS 10.10.0.5 |

Como únicamente tenemos 2 puertos abiertos, uno es el 22 donde corre el servicio SSH para el cual no tenemos credenciales, Inspeccionando la web un poco, viendo el Código fuente, no logramos encontrar nada relevante.
Usando Wappalyzer el cual es un Pluggin del navegador, podemos ver las tecnologías con las que esta hecha una web de igual manera con whatweb es lo mismo pero a nivel de consola. No encontramos nada relevante.

Whatweb
1 | whatweb http://10.10.0.5 |

Pasamos a lo siguiente, realizar fuzzing sobre la pagina para lograr encontrar directorios ocultos.
Usaremos ffuf para realizar el fuzzing
1 | ffuf -ic -c -t 200 -fc=404 -r -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -u http://10.10.0.5/FUZZ |

Gracias al fuzzing encontramos algunos directorios, inspeccionando los directorios, nos encontramos con algo interesante en assets/fonts.

Revisando el directorio encontramos un tipo de blog que al parecer esta hecho en wordpress, pero no tenemos acceso, revisando un poco mas nos encontramos con un subdominio. Tenemos que agregarlo al /etc/hosts para que podamos acceder.

Una vez agregado el subdominio visitamos la web, vemos que esta hecho en wodrpess y analizamos nuevamente con wappalyzer para comprobarlo.

En efecto esta construida con wordpress, ahora que estamos ante un CMS podemos utilizar distintas herramientas para comprobar la seguridad de esta, en este caso usaremos wpscan. Realizando varias pruebas no logramos mediante escaneo pasivo encontrar información sobre pluggins vulnerables pero al cambiar a modo agresivo si logramos identificar varias vulnerabilidades para un plugin en concreto (wpDiscuz), y también identificamos un nombre de usuario j@m3s.
1 | wpscan --url http://10.10.0.5/assets/fonts/blog/ -e vp,u --plugins-detection aggressive --api-token |

Explotación
Nos encontramos varias vulnerabilidades, realizando varias pruebas la que me funciono fue Unauthenticated Arbitrary File Upload, mediante el sistema de comentarios de un post subir una reverse shell haciendo bypassing de el campo de imágenes, subiendo la revshell como GIF.

Contenido de la revshell
1 | GIF89a; |
Ahora solo necesitamos ingresar a la ruta donde se almacena la revshell, para hacerlo simplemente hacemos clic sobre el archivo, y nos ponemos en escucha con netcat.

Nos ponemos en escucha
1 | nc -nlvp 1234 |

Una vez hecho sucede la magia y conseguimos acceso a la maquina como el usuario www-data

Realizamos un tratamiento de la TTY para poder tener una shell estable y full interactiva.
1 | script -c bash /dev/null |
Realizamos un cat al /etc/passwd para ver que usuarios tenemos disponibles
1 | cat /etc/passwd |

Visualizamos los home de cada usuario ya que podemos entrar y dentro de James encontramos el user.txt pero no tenemos permisos para visualizar el archivo.

Ahora nos queda realizar escalada de privilegios mediante movimiento lateral intentando cambiar de usuario.
Escalada de Privilegios
Como observamos tenemos usuarios con nombres por defecto así que probamos credenciales por defecto. y logramos acceder como el usuario vagrant.

Ahora comprobamos una serie de comandos para ver de que forma podemos elevar nuestros privilegios. vemos que con el comando sudo -l podemos ejecutar cualquier comando sin proporcionar contraseña.

Cambiamos al usuario James para ver el user.txt

Nos encontramos con un archivo que si observamos bien esta codificado en base64. Lo copiamos en nuestra maquina y vemos que contiene el archivo.

Nos encontramos con la flag de la maquina, para ganar privilegios máximos, recordemos que con el usuario vagrant podemos ejecutar cualquier comando sin proporcionar la contraseña. Solo ejecutamos sudo root y ganamos privilegios totales sobre la maquina.

Ya con esto hemos completado la maquina. ¡Gracias por leer hasta aquí! Espero que este writeup te haya sido útil para comprender mejor los pasos para resolver esta máquina. ¡Nos vemos en el próximo reto, y sigue hackeando con ética!
Para agregar como extra si con el usuario vagrant visualizábamos las tareas cron nos encontramos una tarea aparte de las que son por defecto. Al visualizarla vemos que ejecuta un script el usuario root. Intentamos ver el script y logramos hacerlo, el script hace un comprimido del home del usuario james y lo almacena en el directorio /tmp, probamos descomprimir y lo hacemos sin problema, de esta manera también podemos obtener la flag ya que nos muestra el base64.


Y esta seria otra forma de obtener la flag, solo como dato curioso. Nos vemos








