Brute It - TryHackMe
SUMMARY
Debemos encontrar tres banderas en la maquina Brute It. Donde a partir del escaneo de puertos de Nmap pude saber que hay un servicio HTTP y SSH. Luego, realice fuerza bruta de directorios sobre el directorio raíz del servidor web encontrando una página web que tenía un login. Luego, analicé su código fuente, y encontré un username valido, y el nombre de un usuario local. Luego, realice cracking de contraseñas online contra el login, llegando a encontrar unas credenciales validas. Luego, en el portal de administración del sitio web en desarrollo me encontré con un enlace que me redirigió a una clave privada SSH encriptada. Luego, utilice John The Ripper para encontrar la contraseña de la clave privada SSH, llegando a acceder al sistema destino mediante SSH. Luego, para la escalada de privilegios vertical utilice el comando cat, que lo podía ejecutar con los privilegios del usuario root, con el fin de obtener el hash del usuario root en /etc/shadow. Luego, crackee el hash con Hashcat, llegando a encontrar las credenciales del usuario root.
FASE RECONOCIMIENTO ACTIVO
En este caso debemos acceder al sistema destino y obtener las banderas. Para ello empezaremos utilizando el comando openvpn con el fin de establecer una conexión VPN con la red virtual dónde está la máquina Brute It. Para ello utilizaremos el archivo de configuración, que lo podemos descargar en la plataforma de Tryhackme, que puede incluir información como la dirección del servidor VPN, los certificados y claves de seguridad, la configuración de encriptación, etc.
Luego de que se establece la conexión VPN se crea una interfaz virtual de red en nuestra máquina. Donde se enruta todo el tráfico de red a través de esa interfaz.
Además, la plataforma de Tryhackme nos muestra la dirección ip de la máquina Brute It.
FASE ESCANEO Y ENUMERACION
Luego pasaremos a la fase de Escaneo y Enumeración con el fin de poder escanear los puertos del nodo. Además, obtendremos los servicios que se han levantado en los puertos abiertos, las versiones de los servicios, y el sistema operativo de la máquina Brute It. Para ello utilizaremos Nmap
. Donde le pasaremos los siguientes parámetros:
- El parámetro -sC o –script=”default” para utilizar todos los scripts de la categoría default con el fin de realizar un escaneo y detección de los puertos de manera avanzada.
- El parámetros -sV con el fin de conocer las versiones de los servicios levantados en los puertos abiertos.
- El parámetro -n para evitar la resolución DNS, y el parámetro –max-rate para indicarle el número máximo de paquetes por segundo que va a utilizar Nmap para el escaneo con el fin de evitar sobrecargar la red con el tráfico generado por la herramienta.
- El parámetro -p- para realizar un escaneo de los 65535 puertos del nodo y el parámetro –open con el fin de que nos muestre información solo de los puertos abiertos.
Los resultados que obtuvimos del escaneo vienen a ser:
- Un servicio HTTP o web levantado en el puerto 80, y el programa servidor web que está corriendo, y la versión del programa servidor. Además, a partir del script http-title, se pudo saber que hay una pagina web cuya etiqueta HTML title toma el valor de Apache2 Ubuntu Default Page.
- Un servicio SSH levantado en el puerto 22, y el programa servidor web que está corriendo, y la versión del programa servidor.
Ahora realizaremos fuerza bruta de directorios con Wfuzz sobre el directorio raíz del servidor web con el fin de encontrar recursos escondidos.
Podemos observar que se llegó a encontrar un recurso llamado admin.
Ahora accederemos a este recurso a través de mi navegador web.
Podemos observar que el recurso viene a ser una pagina web que consta de un formulario o login. Además, si revisamos el código fuente de la pagina web, nos encontramos con un comentario. Donde posiblemente, john viene a ser el desarrollador del sitio web, y obtenemos un username valido.
FASE GANAR ACCESSO O HACKING O EXPLOTACION
Ahora que obtenemos un username valido, la acción mas conveniente a realizar contra el login, viene a ser un cracking de contraseñas online con Hydra.
Podemos observar que la herramienta llego a encontrar unas credenciales validas.
Ahora nos autenticaremos en el login, utilizando las credenciales.
Podemos observar que el portal de administracion del sitio web aun esta en desarrollo, pero nos encontramos con un enlace, que nos redirigie hacia una clave privada SSH que esta encriptada, y que le corresponde al usuario john. Ademas, encontramos la primera bandera.
Ahora crackearemos la clave o contraseña que protege la clave privada SSH utilizando John The Ripper.
Podemos observar que la herramienta llego a crackear la clave o contraseña que protege a la clave privada SSH.
Ahora nos autenticaremos en el sistema destino mediante SSH, y suponiendo que john viene a ser un usuario local en el sistema destino.
Podemos observar que nuestra suposición estuvo correcta, y llegamos acceder al sistema destino siendo el usuario john. Además, llegamos a encontrar la segunda bandera.
FASE ESCALADA PRIVILEGIOS
Ahora debemos buscar un vector de escalada privilegios. Para ello enumeraremos los comandos y programas que puede ejecutar el usuario John con los privilegios del usuario root
Podemos observar que el usuario john puede ejecutar el archivo binario ejecutable cat con los privilegios del superusuario root. Aprovecharemos esto para observar el contenido del archivo /etc/shadow.
Podemos observar que llegamos a encontrar el hash correspondiente del usuario root.
Ahora intentaremos crackear el hash con Hashcat, pero antes debemos identificar la función hash que utiliza. Para ello utilizaremos una herramienta en línea: https://hashes.com/en/tools/hash_identifier.
Podemos observar que la herramienta llego a crackear el hash del usuario root.
Ahora nos autenticaremos en el sistema destino siendo el usuario root con las credenciales encontradas anteriormente.
De esta manera llegamos a realizar la escalada de privilegios vertical siendo el usuario root.