Starting in one CTF for Beginners

Colaborador: Alberto44

Buenas a todos, esta vez os traemos un CTF creado por la gente de SNIFERLABS.

Es un Reto para ir haciendo una toma de contacto para todos aquellos que empiezan hacer sus prácticas de lo estudiado y que mejor que hacerlo en un entorno controlado.

La dificultad va de Principiante a Intermedio, está hecha así a propósito.

Las Flags están a plena vista.

Tampoco os lo vais a encontrar todo a pedir de boca, tendréis que usar la materia gris también, esto es simplemente una guía que pretende ayudaros cuando no sepáis por dónde tirar.

Desde Fwhibbit, hemos realizado este reto a modo de compartir y enseñaros que se pueden obtener los mismos resultados satisfactorios con otras herramientas distintas a las más usuales y típicas que siempre usamos.

Esperamos os sea de utilidad esta guía hecha con la filosofía que tenemos en el grupo de enseñar distintas maneras de hacer las cosas y compartir en lo que podamos.

Esta Guía está destinada para las personas que quieren empezar y no saben por dónde tirar o cómo enfrentar un CTF o Reto.

Máquina Virtual:

Mirror I

Mirror II

A lo largo del desafío van a ir encontrando pistas, son tres en total que están en directorios muy visibles. No tiene muchas complicaciones, la idea es que puedan realizarlo todos, así que no se compliquen la vida desarrollando un exploit.

En el .rar tienen la primera pista, así que adelante y espero que se diviertan!

sniferlabs

 

 

Comencemos:

Vamos a uno de los links que han dejado y nos descargamos la máquina virtual:

1

Al principio nos dicen que dentro del .rar donde está la máquina hay una primera pista:

3

Veamos lo que nos dice esta primera pista:

4_primera_pista

 

Esto nos huele a que dentro de este hexadecimal hay algún mensaje, así que vamos a comprobarlo. Para ello y acostumbrarnos a la consola vamos hacerlo desde ella, para saber más de este comando, os dejo información de él resumida.

xxd

Crea un volcado hexadecimal de un archivo. También puede convertir un volcado hexadecimal de nuevo a su forma binaria inicial. Su sintaxis es de la forma:

xxd [opciones] [archivo]

-p muestra el archivo en hexadecimal plano.

-r transforma de hexadecimal a binario.

Podemos hacerlo de dos maneras que os dejo a continuación:

1ª-Opción

5_1

Desde el propio archivo de texto

2ª- Opción

5

Desde la misma consola.

Esto es lo que nos dice:

El primer paso será encontrar un pdf en el sitio quijerema. Analiza los puertos y servicios que están activos. El pdf tiene un nombre compuesto de tres palabras, prueba con cada uno de ellas en minúsculas para el usuario y el password son los primeros seis caracteres del hash md5 del archivo. Con eso ya podrás loguearte. Exitos!

 

Vayamos a quijerema para buscar ese pdf, para que sea algo más sencilla la búsqueda, recurrimos a otra técnica que siempre tenemos en mente: dorks.

Usamos algunos dorks en el buscador de tito google:

6

Nos ha sido de gran ayuda y rápidamente hemos sacado, la información que queríamos, vayamos a ver ese pdf:

7

Ya tenemos el pdf.

 

Vamos por pasos:

veamos los puertos y servicios que hay en la máquina objetivo. Para ello me gusta emplear el comando netdiscover -r

8

Ya sabemos la IP de la máquina Objetivo: 192.168.96.155

 

Ahora le pasaremos un Nmap para comprobar los puertos y servicios que tiene abierto:

9

Tiene el 22 ssh y el 80 nos dice que tiene un servidor web, muy interesante.

 

Ahora lo que toca:

La primera pista nos decía lo siguiente:

  1. El pdf tiene un nombre compuesto de tres palabras, prueba con cada uno de ellas en minúsculas para el usuario.
  1. El password son los primeros seis caracteres del hash md5 del archivo. Con eso ya podrás loguearte.

Vamos hacernos un pequeño diccionario para el user con las palabras del Título del pdf:

11

12

Vamos a sacar el hash md5 y acto seguido hacernos un pequeño diccionario para el pass con los primeros 6 caracteres del hash md5 obtenido anteriormente:

10

14

 

Una vez hecho, vamos a usar una herramienta distinta a las habituales para crackear ssh: patator (os dejo la tarea de ver todas sus funciones)

15-1_patator

Ya tenemos las credenciales:

10:35:48 patator    INFO – 0     39     5.095 | kakri:4aca94  | 2 | SSH-2.0-OpenSSH_5.9p1 Debian-5ubuntu1.7

 

 

Ok ya sabemos el user y el pass del ssh, acto seguido nos conectamos con las credenciales obtenidas:

16

 

Ahora que estamos dentro echemos un vistazo a los archivos que tenemos accesibles:

17

(mirad, la 2da.pista)

 

Comprobación de permisos del user kakri:

Vamos a comprobar quienes somos dentro del sistema y los permisos:

25_permisos_kakri

También no está demás saber si con este user podemos realizar alguna ejecución como root:

25-1_permisos_kakri

(podemos ejecutar acciones de root, esto nos ahorra mucho trabajo)

Veamos quienes son los que tienen permisos de root:

26_sudoers

Veamos si podemos obtenerlo con este user: kakri

18

(parece que nos ha dado un falso error, pues el fichero lo tenemos descargado)

Veamos el contenido del archivo en la misma consola del servidor:

19

(está codificado en base64)

vamos a descifrarlo:

20

 

“¡Muy bien, ya lograste ingresar! Ahora te toca obtener permisos de root, tienes unas cuantas opciones para realizarlo, elegí la que más te guste y cuando seas root busca la pista 3 en / Exitos! “

Ahora tenemos nuestro siguiente objetivo, hacernos root. Vamos a darnos una vuelta por el objetivo a ver que descubrimos o a qué tenemos acceso con este user kakri:

21

(ahí está la 3ra.pista)

Veamos si podemos obtenerlo con este user: kakri

22

lo visualizamos:

23

 

Manos a la obra:

Objetivo:

objetivo_html

Vamos a modificar el index:

26_nano_html

26-1_nano_html

27

(index modificado y objetivo cumplido)

Algunos os preguntaréis como es que hemos podido modificar y hacer acciones sin ser root, si recordáis cuando hicimos la consulta de quienes tenían los permisos de superuser, y con el comando sudo no hicimos usuarios con privilegios altos.

Sudo

Ejecuta un comando como otro usuario, pero respetando una serie de restricciones sobre qué usuarios pueden ejecutar qué comandos en nombre de qué otros usuarios (usualmente especificadas en el archivo /etc/sudoers).

Sudo pide a los usuarios su propia contraseña en lugar de la del usuario requerido.

 

Vamos a convertirnos en root

Os estaréis preguntando que no he conseguido ser root en el sistema, tranquilos que no me he olvidado.

29_passwd

(Tenemos privilegios para ver el passwd)

30_shadow_fail

(No tenemos suficientes privilegios para ver este archivo shadow)

Sin complicarnos con opciones algo más avanzadas para hacernos con el sistema como superusuario, probemos lo más lógico que se nos vendría a la mente, en caso de que no funcione, entonces sí tendríamos que buscar otras vías para acceder como root:

31_root

Comprobemos ahora si nos deja ver el archivo shadow:

32_shadow_ok

Bueno esto ha sido todo por hoy, desde fwhibbit siempre os queremos recordar que todo lo publicado en este blog es con fines educativos y no nos hacemos responsables del mal uso que le podáis dar y que en caso de hacerlo os meteréis en serios problemas.

Por otro lado aprovechad la variedad de Máquinas Virtuales Vulnerables que existen en la red , CTF, Challenges, para practicar vuestras habilidades, que estudiéis y practiquéis lo más que podáis, pues esto no se aprende de un día para otro.

Un cordial saludo desde la madriguera.

 

 

2 comentarios en «Starting in one CTF for Beginners»

    1. El CTF parece que termino, es del compañero sniferl4bs.com. De todas formas, la máquina virtual todavía se puede descargar para jugar.

Los comentarios están cerrados.