E-Corp

Máquina de nivel avanzado, con un total de 2 flags. Creada por el equipo de CyberConquer.

Preparación de laboratorio

Link: https://ctf.academia-ciberseguridad.com/machinesarrow-up-right

CyberConquer usa imágenes Docker para poder levantar los laboratorios, en este caso procedemos a descargar el archivo .zip, ¡No es necesario loguearse!

Una vez descargado el archivo zip, procedemos a descomprimirlo con el comando:

· unzip ecorp.zip

Para correr el laboratorio ejecutamos el archivo “script.sh” seguido el archivo .tar

Una vez ejecutado el comando nos aparecerá un banner donde podremos ver la IP de la maquina y un prompt donde podremos colocar las banderas a nivel usuario, un vez habiendo encontrado esa bandera aparecerá el prompt para la bandera root.

Enumeración

Una vez levantado el laboratorio comprobamos la conexión con la maquina mandándole 3 paquetes ICMP utilizando ping

· ping -c 3 172.17.0.3

Una vez comprobando la conexión procedemos a enumerar puertos abiertos, servicio y sus versiones para identificar el vector de ataque, utilizando la herramienta nmap:

· sudo nmap -p- --open -sS -n 172.17.0.3 -oG AllPorts

Identificamos 2 puertos abiertos, 22 y 80, procedemos a usar la bandera -sV en nmap para poder identificar las versiones de los servicios, esto nos puede ayudar a poder identificar si hay alguna vulnerabilidad en sus versiones que podamos aprovechar:

· sudo nmap -p22,80 -sS -sV -Pn -n 172.17.0.3 -o Ports_Version

Revisamos el servicio http en nuestro navegador, para encontrar información relevante

Procedemos a realizar fuzzing con dirsearch para poder identificar directorios, archivos o documentos que nos puedan dar información delicada.

· dirsearch -u http://172.17.0.3/arrow-up-right

En el escaneo pudimos encontrar dos archivos, file.php y users.db, procedemos a revisar uno por uno, para ver que hay en su contenido

/file.php: hay un panel de logueo

/users.db: es un archivo .db descargable, lo guardamos y analizamos a detalle

Revisamos el archivo users.db con la herramienta sqlite3 para ver su contenido

· sqlite3 users.db

· .tables

· select * froms users;

Explotación

¡Eureka!, encontramos dos usuarios con su contraseña, podemos empezar intentar loguearnos en el directorio encontrado anteriormente,

Las credenciales que nos dieron el acceso fueron:

· ecoin | kill_process

Al hacer una búsqueda, vemos que no hay tanta información.

Procedemos a hacer un logueo por ssh, ya que aquí no hay mucha información mas que los archivos listados.

Usaremos las otras credenciales encontradas: mr_robot | Wh1teRose

¡Bingo!, estamos dentro del servidor como el usuario mr_robot, procedemos a buscar la primer flag, listando y moviéndonos entre directorios.

Encontramos la primer flag en el directorio del usuario elliot, pero también encontramos algunos archivos interesantes, como el BBQ.png y el binario exit, las extraemos a nuestra maquina atacante para analizarlas revisar su contenido o metadatos, recuerden nunca dejar pasar por desapercibido nada.

Usaremos la herramienta scp para traer los archivos nuestra máquina, de la siguiente manera:

· scp mr_robot@172.17.0.3:/home/mr_robot/BBQ.png .

· Mandamos a llamar la herramienta, indicamos el usuario y host, seguido de la ruta del archivo, e indicamos donde queremos el archivo en este caso puse un punto “.”, porque lo quiero en el directorio que me encuentro, lo que se traduciría como “aqui” y procedemos a poner la pass

scp mr_robot@172.17.0.3:/home/elliot/exit .

Analizamos los archivos con las siguientes herramientas; exiftool y strings

· exiftool BBQ.png

Encontramos unas password.

· strings exit

Post-Explotación

Encontramos dos cosas muy interesantes, una password y un código curioso, que probablemente también sea una contraseña.

Al revisar el directorio /home/ del servidor vimos que hay 3 usuarios; ellior, mr_robot y tyrell.

Procedemos a buscar información de estos usuarios con el comando id, este nos muestra información sobre el usuario actual, como su identificador de usuario (UID), identificador de grupo (GID), y los grupos a los que pertenece

En el usuario tyrell encontramos que pertenece al grupo sudo, asi que intentamos probando las contraseñas encontradas para intentar subir privilegios

No nos deja pasar directamente a tyrell, asi que nos logueamos al usuario elliot, probando las contraseñas, la de la imagen BBQ.png fue la que nos dio el cambio de usuario, ahora procedemos cambiar a tyrell

¡Bingo!, el código en el binario “exit” era la pass para el usuario tyrell, procedemos a hacer un sudo -l poniendo nuevamente la contraseña encontrada

Vemos que tiene todos los permisos, y basta con poner el comando sudo su para subir a root.

Y logramos obtener la flag root.txt

Last updated