El siguiente writeup muestra el proceso que utilic茅 para capturar las flags de usuario y de root en la m谩quina Valentine en @10.10.10.79.
Este documento contiene mis notas que tom茅 cuando estaba trabajando en la misma.
Mi forma de pensar
El primer paso consiste en la fase de reconocimiento como escaneo de puertos, banner grabbing, configuraciones err贸neas, etc. El segundo en encontrar las vulnerabilidades, es decir, el ataque en s铆 mismo, y finalmente la escalada de privilegios llamada "fase de post-explotaci贸n".
Aviso personal: la post-explotaci贸n fue bastante compleja, har茅 todo lo posible para explicar c贸mo roote茅 la m谩quina de Valentine.
Sub铆ndice: Algo estaba oculto en la imagen de bienvenida y ayuda mucho ...
Escaneo de puertos
Durante este paso vamos a identificar el objetivo para ver que hay detr谩s de la direcci贸n IP. Estos son los resultados:
El sistema remoto es Linux. Tenemos abierto un servidor web y un acceso remoto mediante ssh.
Con 茅sto, vamos a chequear ambos servicios. Para hacer esto, primero lo veremos en el navegador y, segundo, abriremos un terminal con las credenciales b谩sicas.
Paso 1.1 El servidor web:
El resultado de nuestra navegaci贸n es un mujer con un coraz贸n roto!! Esto ayuda mucho porque para un hacker representa la vulnerabilidad HEARTBLEED.
Paso 1.2 El acceso remoto:
Este es el resultado una sencilla conexi贸n a nuestro SSH:
Identificaci贸n
Vamos a echar un vistazo a las cabeceras del servidor web:
curl -I 10.10.10.79
HTTP/1.1 200 OK
Server: Apache/2.2.22(Ubuntu)
Content-Type: text/html; charset=UTF-8
Parece que tenemos un servidor web bajo Apache 2.2.22.
Miraremos el c贸digo fuente para ver si encontramos algo interesante.
Nada interesante, as铆 que seguimos.
Vamos a ver qu茅 ocurre con Burp:
Enumeraci贸n
En esta parte del reto que ya tenemos algo de info de la m谩quina, vamos a enumerar algunos directorios del sitio web haciendo fuerza bruta de la URL.
Para ello usaremos Dirbuster con el diccionario por defecto:
Al final de este paso, tenemos ya una buena idea de la estructura del sitio web. Usaremos p谩ginas para para encodear/decodear algunos datos que vamos a encontrar.
Enumeraci贸n adicional
La fase de enumeraci贸n de directorios revela algunas carpetas muy interesantes.
Los directorios encontrados:
http://10.10.10.79/dev/
http://10.10.10.79/dev/hype_key
http://10.10.10.79/notes.txt
http://10.10.10.79/encode/
http://10.10.10.79/decode/
Como se puede ver, el elemento de la carpeta DEV contiene un archivo de clave (la clave privada) y una nota de texto.
¿Qu茅 es lo pr贸ximo?
La vulnerabilidad
Con esta parte ya podemos preparar nuestra intrusi贸n en el sistema remoto.
La vulnerabilidad es HEARTBLEAD. Para m谩s detalles, consultar este art铆culo:
http://heartbleed.com
Con algunas investigaciones, esta vulnerabilidad se refiere al CVE-2014-0160
Explotaci贸n
Con toda la informaci贸n que hemos conseguido podemos hacer la intrusi贸n en el sistema remoto.
Para hacerlo, lanzaremos una shell con Metasploit. Vamos a empezar el juego ;)
Antes de nada, actualizaremos el framework ya que se requiere tener una versi贸n reciente.
Los pasos son:
- Buscar el exploit :> heartbleed
- Configurar el exploit
- Configurar el payload
- Ejecutar el exploit
Estas son las opciones:
Ahora nuestro exploit est谩 listo para ser lanzado. El resultado ser谩 la obtenci贸n de varios leaks del servidor.
El siguiente paso ser谩 usar las funciones encode/decode:
Esta captura de pantalla muestra la respuesta de heartbleed con algunos leaks. La primera y la segunda captura de pantalla no son cosas muy interesantes, as铆 que relanc茅 el exploit para obtener una buena cantidad de informaci贸n.
He subrayado los datos interesantes:
$text=aGBncRibV1&GlldmVoaGVoeXBIcg==
Decodificar el leak: decode.php
En este paso vamos a decodear el leak con la funcionalidad que he encontrado en un sitio web:
El resultado nos da el usuario (hype) y la contrase帽a:
Trabajando con: hype_key fuerza bruta
Ya tenemos toda la informaci贸n excepto la key. Tenemos que convertir hype_key a un formato correcto para entrar al servidor con el usuario hype.
Tenemos dos archivos de texto. El primero raw que encontramos en el website y el segudo ya transformado al formato correcto:
Despu茅s de la conversi贸n el 煤ltimo paso es usar openssl con esta sintaxis:
openssl rsa -in < > -out < >
-in with ‘hype_convert’
-out with a name I’ve chosen ‘hype_key’
En el ultimo paso se nos pide la passphrase: heartbleedbelievethehype.
La intrusi贸n en el sistema remoto
Este paso es el m谩s importante del reto. Vamos a "hackear" la m谩quina entrando por SSH.
Nosotros tenemos estos elementos:
- La IP
- El usuario
- La clave privada
Grande, estamos dentro! El 煤ltimo paso es escalar privilegios para capturar las flags.
Escalado de privilegios
Una vez dentro tenemos que encontrar las flags. Primero la flag de usuario, y el segundo, la flag de root de la m谩quina.
- La flag de usuario fue f谩cil porque la encontramos el directorio de usuario y el archivo de texto en 茅l.
- La flag de root (administrador del sistema) fue ¡m谩s complejo! Se nos d铆o una pista ;)
Capturar la flag de usuario
Cuando entramos al sistema, est谩bamos en root del sitio web. Entonces, la 煤nica soluci贸n para m铆 era encontrar el directorio de usuario y atrapar la flag.
Conoce siempre d贸nde est谩s y ¡¡donde quieres ir!!
Entonces, busqu茅 la ubicaci贸n de la flag de usuario en el sistema con el siguiente
comando:
S贸lo tenemos que navegar al escritorio y hacer un cat:
Capturar la flag de root
Para obtener root, primero veremos los procesos corriendo en la m谩quina:
ps -aux
Si ejecutamos tmux podemos obtener root!
Finalmente, vamos al directorio y obtenemos la flag de root:
Este documento contiene mis notas que tom茅 cuando estaba trabajando en la misma.
Mi forma de pensar
El primer paso consiste en la fase de reconocimiento como escaneo de puertos, banner grabbing, configuraciones err贸neas, etc. El segundo en encontrar las vulnerabilidades, es decir, el ataque en s铆 mismo, y finalmente la escalada de privilegios llamada "fase de post-explotaci贸n".
Aviso personal: la post-explotaci贸n fue bastante compleja, har茅 todo lo posible para explicar c贸mo roote茅 la m谩quina de Valentine.
Sub铆ndice: Algo estaba oculto en la imagen de bienvenida y ayuda mucho ...
Escaneo de puertos
Durante este paso vamos a identificar el objetivo para ver que hay detr谩s de la direcci贸n IP. Estos son los resultados:
El sistema remoto es Linux. Tenemos abierto un servidor web y un acceso remoto mediante ssh.
Con 茅sto, vamos a chequear ambos servicios. Para hacer esto, primero lo veremos en el navegador y, segundo, abriremos un terminal con las credenciales b谩sicas.
Paso 1.1 El servidor web:
El resultado de nuestra navegaci贸n es un mujer con un coraz贸n roto!! Esto ayuda mucho porque para un hacker representa la vulnerabilidad HEARTBLEED.
P谩gina de bienvenida |
Paso 1.2 El acceso remoto:
Este es el resultado una sencilla conexi贸n a nuestro SSH:
Identificaci贸n
Vamos a echar un vistazo a las cabeceras del servidor web:
curl -I 10.10.10.79
HTTP/1.1 200 OK
Server: Apache/2.2.22(Ubuntu)
Content-Type: text/html; charset=UTF-8
Parece que tenemos un servidor web bajo Apache 2.2.22.
Miraremos el c贸digo fuente para ver si encontramos algo interesante.
Nada interesante, as铆 que seguimos.
Vamos a ver qu茅 ocurre con Burp:
Captura de una petici贸n |
Enumeraci贸n
En esta parte del reto que ya tenemos algo de info de la m谩quina, vamos a enumerar algunos directorios del sitio web haciendo fuerza bruta de la URL.
Para ello usaremos Dirbuster con el diccionario por defecto:
Enumeraci贸n de directorios |
Enumeraci贸n de ficheros |
Al final de este paso, tenemos ya una buena idea de la estructura del sitio web. Usaremos p谩ginas para para encodear/decodear algunos datos que vamos a encontrar.
Enumeraci贸n adicional
La fase de enumeraci贸n de directorios revela algunas carpetas muy interesantes.
Los directorios encontrados:
http://10.10.10.79/dev/
http://10.10.10.79/dev/hype_key
http://10.10.10.79/notes.txt
http://10.10.10.79/encode/
http://10.10.10.79/decode/
Como se puede ver, el elemento de la carpeta DEV contiene un archivo de clave (la clave privada) y una nota de texto.
La carpeta DEV |
Informaci贸n de qu茅 hacer |
La clave privada en formato raw |
¿Qu茅 es lo pr贸ximo?
La vulnerabilidad
Con esta parte ya podemos preparar nuestra intrusi贸n en el sistema remoto.
La vulnerabilidad es HEARTBLEAD. Para m谩s detalles, consultar este art铆culo:
http://heartbleed.com
Con algunas investigaciones, esta vulnerabilidad se refiere al CVE-2014-0160
Explotaci贸n
Con toda la informaci贸n que hemos conseguido podemos hacer la intrusi贸n en el sistema remoto.
Para hacerlo, lanzaremos una shell con Metasploit. Vamos a empezar el juego ;)
Antes de nada, actualizaremos el framework ya que se requiere tener una versi贸n reciente.
Los pasos son:
- Buscar el exploit :> heartbleed
- Configurar el exploit
- Configurar el payload
- Ejecutar el exploit
Estas son las opciones:
Configuraci贸n del exploit para Valentine |
Ahora nuestro exploit est谩 listo para ser lanzado. El resultado ser谩 la obtenci贸n de varios leaks del servidor.
El siguiente paso ser谩 usar las funciones encode/decode:
conexiones SSL |
He subrayado los datos interesantes:
$text=aGBncRibV1&GlldmVoaGVoeXBIcg==
Decodificar el leak: decode.php
En este paso vamos a decodear el leak con la funcionalidad que he encontrado en un sitio web:
El resultado nos da el usuario (hype) y la contrase帽a:
El mensaje decodificado |
Trabajando con: hype_key fuerza bruta
Ya tenemos toda la informaci贸n excepto la key. Tenemos que convertir hype_key a un formato correcto para entrar al servidor con el usuario hype.
Tenemos dos archivos de texto. El primero raw que encontramos en el website y el segudo ya transformado al formato correcto:
El fichero convertido |
Despu茅s de la conversi贸n el 煤ltimo paso es usar openssl con esta sintaxis:
openssl rsa -in < > -out < >
-in with ‘hype_convert’
-out with a name I’ve chosen ‘hype_key’
En el ultimo paso se nos pide la passphrase: heartbleedbelievethehype.
El comando con openssl |
Este paso es el m谩s importante del reto. Vamos a "hackear" la m谩quina entrando por SSH.
Nosotros tenemos estos elementos:
- La IP
- El usuario
- La clave privada
Estamos dentro |
Grande, estamos dentro! El 煤ltimo paso es escalar privilegios para capturar las flags.
Escalado de privilegios
Una vez dentro tenemos que encontrar las flags. Primero la flag de usuario, y el segundo, la flag de root de la m谩quina.
- La flag de usuario fue f谩cil porque la encontramos el directorio de usuario y el archivo de texto en 茅l.
- La flag de root (administrador del sistema) fue ¡m谩s complejo! Se nos d铆o una pista ;)
Capturar la flag de usuario
Cuando entramos al sistema, est谩bamos en root del sitio web. Entonces, la 煤nica soluci贸n para m铆 era encontrar el directorio de usuario y atrapar la flag.
Conoce siempre d贸nde est谩s y ¡¡donde quieres ir!!
Entonces, busqu茅 la ubicaci贸n de la flag de usuario en el sistema con el siguiente
comando:
Localizaci贸n de user.txt |
la flag de usuario |
Capturar la flag de root
Para obtener root, primero veremos los procesos corriendo en la m谩quina:
ps -aux
Los procesos |
Si ejecutamos tmux podemos obtener root!
Comando tmux |
Finalmente, vamos al directorio y obtenemos la flag de root:
la flag de root |
Contribuci贸n gracias a drx51
Writeup alojado tambi茅n en https://github.com/Hackplayers/hackthebox-writeup.
Comentarios
Publicar un comentario