Whatsapp
Retos (CTF) – DragonJAR Security Conference 2020 – Parte 4

Retos (CTF) – DragonJAR Security Conference 2020 – Parte 4

17 septiembre 2020

RETO # 18 – Máquina Magenta 01

Descripción del Reto: Hemos identificado un sitio web sencillo, necesitamos que consigas acceso y nos des la flag.

Nivel de dificultad: Medio

Puntos asignados: 300

Formato de bandera: SEGTICS{flag}

Archivo adjunto del reto: URL donde se publica el sitio web Objetivo.

 

Solucionario:

El reto consiste en un wordpress el cual tiene una entrada con un par de poemas en alemán y para solucionar los retos primero se debe identificar el autor de los poemas el cual es el usuario y además para obtener la contraseña es necesario hacer un diccionario personalizado con las palabras de los poemas, luego de esto en el wordpress se debe configurar una shell reversa para acceder dentro del servidor, allí se encuentra la primera flag, para obtener la segunda se debe realizar una escalación de privilegios usando las credenciales de la base de datos del wordpress.

  • Procedemos con «Enumeración de directorios» del sito web con diresearch.

  • Vista rápida al wordpress para identificar al usuario.

 

  • Después de terminar podremos obtener el usuario y la contraseña para la administración de la aplicación.

Una vez obtenidos estos datos procedemos a correr ngrok para la conexión con la víctima y a configurar la shell.

Ingresamos al aplicativo con las credenciales obtenidas anteriormente.

Subimos nuestra shell.txt.

Procedemos a cambiar la extensión a .phtml.

Corremos netcat a la escucha del puerto 4444.

Abrimos el archivo shell.phtml desde el navegador para activar la shell.

Procedemos a descifrar el hash.

Una vez identificada la flag la acomodamos en el formato establecido.

Flag: SEGTICS{ MANIZALES}

RETO # 19 – Offline

Descripción del Reto: Solo necesito el usuario y su contraseña, en mayúsculas y separados mediante un guion bajo (_).

Nivel de dificultad: Medio

Puntos asignados: 350

Formato de bandera: SEGTICS {flag}

Archivo adjunto del reto: Acceso a una URL donde se publica el servidor.

Solucionario:

Para este reto se nos da una dirección ip a la cual lo primero se debe hacer es el respectivo escaneo de puertos y servicios con nmap.

Se puede ver que este servidor tiene un servidor web y un ssh para conexiones remotas, lo primero es revisar el servidor web para analizar que tiene.

Es un servidor muy sencillo el cual desde el inicio indica que tiene una vulnerabilidad por mala configuración, se procede a realizar la respectiva enumeración la cual indica que tiene un robots.txt.

Dentro del archivo robots.txt se contienen las url que no están indexadas.

Dentro del archivo tenemos 2 páginas las cuales contienen información que es valiosa, dentro del primer enlace tenemos que “Hay un archivo mal configurado dentro de nuestro servidor, y este archivo está produciendo una vulnerabilidad en el servidor, este archivo se encuentra en el archivo index.php” lo cual ya nos da una idea de lo que debemos hacer, mientras que dentro de /d1ct.txt.

Básicamente tenemos un diccionario el cual posiblemente tengamos que usar para el ssh, pero aún nos hace falta encontrar un usuario válido, aunque si nos percatamos una palabra que se repite bastante en la nota es “archivo” con base a ello y a que sabemos que el sitio está montado en php podemos:

Pero ¿y si intentamos en inglés?

Con esto ya tenemos identificado un usuario el cual es mrwick, ahora se procede a utilizar el diccionario para hacer un ataque de diccionario.

Ya con esto tenemos la primera flag la cual debemos pasar al formato y en MAYÚSCULAS.

Flag: SEGTICS{ MRWICK_ 213JOHN213 }

RETO # 20 – Servidor Web 02

Descripción del Reto: Solo necesito el usuario y su contraseña, en mayúsculas y separados mediante un guión bajo (_).

Nivel de dificultad: Medio

Puntos asignados: 250

Formato de bandera: SEGTICS {flag}

Archivo adjunto del reto: Acceso a una URL donde se publica el servidor.

Solucionario:

Ahora se debe proceder a buscar la flag dentro del servidor, para ello se nos advierte que el nombre del archivo en un lado usa la palabra flag, esto es importante ya que si se usa el comando “find / -name flag.txt” no se van a obtener resultados, mientras que si se usa el comando “find / -name *flag*.

Se obtiene el archivo el cual contiene la flag.

Flag: SEGTICS {FL4G 0CUl74}

RETO # 21 – Truco

Descripción del Reto: Existen 2 usuarios ¿como encontrar el segudo? buena pregunta… Además sabemos la flag en algún lugar tiene la palabra «flag».

Nivel de dificultad: Medio

Puntos asignados: 250

Formato de bandera: SEGTICS {flag}

Archivo adjunto del reto: Acceso a una URL donde se publica el servidor.

Solucionario:

Para este resto se nos explica que debemos tener en cuenta 2 cosas la primera es que estamos como usuario1 y la otra de tener en cuenta las peticiones.

Cuando se revisan en las cookies se ve en código, se ve que hay una cookie que está quemada con el nombre de “name” y el valor de “dXN1YXJpbzE%3D”.

Lo cual descifrado de base64 es “usuario17” obteniendo al bandera para este reto.

Flag: SEGTICS {usuario17}

RETO # 22 – CMS sin tendencia

Descripción del Reto: Existen 2 usuarios ¿como encontrar el segudo? buena pregunta… Además sabemos la flag en algún lugar tiene la palabra «flag».

Nivel de dificultad: Difícil

Puntos asignados: 400

Formato de bandera: SEGTICS {flag}

Archivo adjunto del reto: Acceso a una URL donde se publica el servidor.

Solucionario:

El participante encuentra la IP 178.33.39.249 Al observar el código fuente en la pagina puede decodificar el mensaje:

Las partes mas importantes del mensaje son:

  • Red social no convencional. (Redes sociales descentralizadas)
  • 13 0 100 UP DE EN (Caracteristicas del pod).
  • #siempreTrabajandoNuncaInTrabajando Una vez ubicado el POD: https://poddery.com/ Se debe buscar el hashtag lo que dará el usuario y la contraseña, junto al CMS.

Este CMS tiene una vulnerabilidad explotable con las credenciales. https://www.exploit-db.com/exploits/44976

Una vez adentro del servidor, se debe buscar el archivo flag.txt

Flag: SEGTICS {S0C14L_  NET_N0N_ TR3ND }

RETO # 23 – Las probabilidades pueden estar siempre a tu favor

Descripción del Reto: No es suficiente ser observador, no es suficiente ser programador.

Nivel de dificultad: Difícil

Puntos asignados: 500

Formato de bandera:SEGTICS {flag}

Solucionario:

El participante se encuentra con una pagina con un hash y una URL a esta imagen de Tom Hardy:

El participante idealmente rompera el hash sha256 a partir de un diccionario generado a partir de la los datos de la imagen (datos de tom hardy y su perro blu).

blu_2013: AA5A4C8294757 52FB457F760B6 82D66325584665 89AEEA93A1F1EAE E23D59536 3dw4rd09779: 1D1F8682F4E2A CE85F1781631EED E411AA575C847D75 1ABB32173D9687BF2 629 70m15091977: 933BD467C9A5B1 FA1CD31C2317 5ABE1FF39B4E708E F8DD32FA45B 5A9BCEB8A23 al enviar el ultimo hash se encuentra la primera parte de la flag.

Una vez que el participante supere los hash deberá generar un script que le permita identificar y decodificar los strings que se le dan.

1)pareidolia

B32 : OBQXEZLJMRXWY2LBBI======

B64 : cGFyZWlkb2xpYQo=

ASCII85: E+*cuBk2-uBjh>

ASCII: 112 97 114 101 105 100 111 108 105 97

UNI_Pts: U+70 U+61 U+72 U+65 U+69 U+64 U+6F U+6C U+69 U+61 U+A

ROT13: cnervqbyvn

Binary: 01110000 01100001 01110010 01100101 01101001 01100100 01101111 01101100 01101001 01100001

Cesar_Shift1: qbsfjepmjb

HEX: 70 61 72 65 69 64 6f 6c 69 61

Morse: .__. ._ ._. . .. _.. ___ ._.. .. ._

2)mezzanine

ASCII: 109 101 122 122 97 110 105 110 101
B64 : bWV6emFuaW5l
Binary: 01101101 01100101 01111010 01111010 01100001 01101110 01101001 01101110 01100101
Cesar_Shift1: nfaabojof
HEX: 6d 65 7a 7a 61 6e 69 6e 65
Morse: __ . __.. __.. ._ _. .. _. .
ROT13: zrmmnavar
B32 : NVSXU6TBNZUW4ZI=
ASCII85: D.S%%EDITORCONTENT%%gt;@;]dsAH
UNI_Pts: U+6D U+65 U+7A U+7A U+61 U+6E U+69 U+6E U+65

3)conspicuo
ASCII: 99 111 110 115 112 105 99 117 111
B64 : Y29uc3BpY3Vv
Binary: 01100011 01101111 01101110 01110011 01110000 01101001 01100011 01110101 01101111
Cesar_Shift1: dpotqjdvp
HEX: 63 6f 6e 73 70 69 63 75 6f
Morse: _._. ___ _. … .__. .. _._. .._ ___
ROT13: pbafcvphb
B32 : MNXW443QNFRXK3Y=
ASCII85: @rH7+E+rg)DZ
UNI_Pts: U+63 U+6F U+6E U+73 U+70 U+69 U+63 U+75 U+6F

4) dicotomia

ASCII: 100 105 99 111 116 111 109 105 97
B64 : ZGljb3RvbWlh
Binary: 01100100 01101001 01100011 01101111 01110100 01101111 01101101 01101001 01100001
Cesar_Shift1: ejdpupnjb
HEX: 64 69 63 6f 74 6f 6d 69 61
Morse: _.. .. _._. ___ _ ___ __ .. ._
ROT13: qvpbgbzvn
B32 : MRUWG33UN5WWSYI=
ASCII85: A8,OlFDl#1@/
UNI_Pts: U+64 U+69 U+63 U+6F U+74 U+6F U+6D U+69 U+61

Al observar el html se puede ver un contador que aumenta cada vez que se responde correctamente una de las codificaciones.

Una vez se logren acumular 2020 respuestas correctas se debe examinar la cookie y se encuentra la segunda parte de la flag: MzEzMzdfQlI wTzBPTzAwISEhfQ==

Flag: SEGTICS{  Y0U_R_31337_  BR0O0OO00!!!  }

RETO # 24 -Josephus

Descripción del Reto: La flag es… lo siento solo los admins mas rápidos pueden tenerla. ¿Eres uno de ellos?

Nivel de dificultad: Difícil

Puntos asignados: 500

Formato de bandera: SEGTICS {flag}

Archivo adjunto del reto: Acceso a una URL donde se publica el servidor.

Solucionario:

Al iniciar el participante debe inspeccionar la pagina: Al conectarse el puerto 9999 por telnet.

Ahi vera los datos para resolver el problema de Josephus (Tiempo max de la conexion 6 seg). https://en.wikipedia.org /wiki/Josephus_problem Si lo hace bien obtiene el token para usar en el puerto 10000:

Con estos datos debera craftear un post request con los datos entregados a la dirección entregada.

Flag: SEGTICS {G0T _2_L0V3  _M4TH_ T0_B_  H4PPY_1N _LIFE  }