Segtics Soluciones S.A.S

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

 Bienvenidos a la segunda entrega de solucionarios de los retos propuestos en el PRE-CTF de la DragonJAR Security Conference (22/08/20 al 24/08/20). Para ver la primera entrega haga clic aquí.

RETO # 6 - Analizador de Red

Descripción del Reto: En una empresa de alto consumo energético, han detectado problemas en el monitoreo de la red eléctrica y han empezado a realizar pruebas en campo.

Se logra interceptar uno de los reportes técnicos del cual se obtienen las imágenes que se ven a continuación.
Nivel de dificultad: Difícil Puntos asignados: 500 Formato de bandera: SEGTICS{flag} Archivo adjunto del reto: na.zip
SOLUCIONARIO: La gráfica corresponde a la respuesta de un analizador de redes eléctricas por protocolo MODBUS/RTU. El protocolo MODBUS contempla un datagrama especifico que consta de dirección, función, datos y código de verificación CRC. La información (imágenes de comunicación) que se observó, responde a esta trama usando transmisión Little endian, la trama adicionalmente cuenta con el protocolo de comunicación serial con bit de inicio, el byte de información, bit de paridad y el bit de parada. Por lo cual si el “Slave Address” es “1F” que en binario es un “0001 1111”, para este byte en transmisión serial little endian, la trama se debería ver como “1 1111 1000 0 1”. Además, la señal se encuentra de -10 a 10, el cual corresponde a los niveles de voltaje del RS485. Por lo cual para el mismo ejemplo del envío de “1F” se debería ver un “(10) (-10)(-10)(-10)(-10) (-10) (10)(10)(10) (10) (-10)”.

Slave Address

Function Code

Data

CRC Low CRC Hi
1F 03 4D4F44425553524F434B53 D6 74

En la sección de “Data” se encuentra la flag en HEX 4D4F44425553524F434B53 al decodificar obtenemos MODBUSROCKS.

Flag: SEGTICS{MODBUSROCKS}

RETO # 7 - Esconderme tal vez

Descripción del Reto: Debo hablar con un agente en el 150Forum, sin embargo, para mantener en secreto su nickname me envió el siguiente archivo.

Nivel de dificultad: Difícil Puntos asignados: 400 Formato de bandera: SEGTICS{flag} Archivo adjunto del retoChallenger.m4a SOLUCIONARIO: Descargar el archivo de audio basado en la siguiente partitura:
Las notas musicales representan la parte baja del mensaje en hexadecimal: D F E B Y su tiempo la parte alta: 4 6 4 6 Asociando se obtiene el hexa de la flag: 4D 6F 4E 6B Decodificando 4D6F4E6B obtenemos la bandera «MoNk».
 Flag: SEGTICS{MoNk}

RETO # 8 - Puntos de Color

Descripción del Reto: Mediante un trabajo coordinado con el equipo de inteligencia hemos obtenido un apk con códigos de acceso a uno de los servidores de una organización cibercriminal. Tu misión es encontrar esta información.

Nivel de dificultad: Difícil Puntos asignados: 400 Formato de bandera: SEGTICS{flag} Archivo adjunto del retoPuntosdecolor.apk
SOLUCIONARIO: El reto consiste en identificar el mensaje graficado en la actividad oculta dentro del archivo “PointsOfColor.apk” el cual corresponde a una aplicación android. Al descargar la aplicación e instalarla en nuestra emulador android procedemos a ejecutarla y navegar entre ella visualizamos las siguientes pantallas: Al ver que no esta mostrando nada aparte del cambio de tonalidad de colores, procedemos a descompilar la aplicación con la ayuda apktool y de d2j-dexjar para la obtención del jar. Una vez con el jar procedemos a utilizar jd-gui para visualizar la estructura de la aplicación con el fin de analizar el código de manera mas fácil. Identificamos que tenemos 6 Activitys los cuales son las pantallas de la aplicación, pero la aplicación solo nos muestra 4, analizamos el código y visualizamos que desde el Activity3 el método goActivity realiza el llamado al Activity5 y no al Activity4 el cual sería un orden lógico, esto nos genera sospecha y por ende los que necesitamos realizar es que el activity4 sea llamado desde el activity3 desde el método goActivity. Procedemos a buscar el código del Main3Activity.smali el cual contiene el código de la aplicación que queremos modificar. Abrimos el archivo “Main3Activity.smali” con el fin de modificar la linea de codigo para que el llamado que esta realizando a Main5Activity quede a Main4Activity. Una vez realizado el cambio procedemos a compilar la aplicación. Generamos un Keystore para firmar la aplicación. Firmamos la aplicación. Una vez firmada la aplicación, desinstalamos la aplicación original del emulador e instalamos la nueva apk modificada. Al correr la aplicación probaremos nuevamente el comportamiento de la app: Podemos visualizar que en la pantalla 4 se representa un cambio de actividad y nos proyecta el Main4Activity con la flag en binario: “0100110101010011010010100101001100110011010000110101001000110011010101000100111101010011”. Procedemos a traducir el mensaje en binario que nos muestra la aplicación: Como resultado obtenemos en la parte izquierda de la imagen el mensaje decodificado el cual es: “MSJS3CR3TOS”. Una vez identificado el mensaje lo acomodamos a el formato de flag establecido quedando de la siguiente manera:
 Flag: SEGTICS{MSJS3CR3TOS}

RETO # 9 - Reescribeme

Descripción del Reto: Utiliza el poder, analiza, reescribe y consigue la bandera.

Nivel de dificultad: Difícil.
Puntos asignados: 500

Formato de bandera: SEGTICS{flag}

Archivo adjunto del retopowershell_Challenge.ps1

SOLUCIONARIO:

Desofuscar el código, las variables, también es necesario corregir algunos errores como un archivo que no existe que arrojara un error.

Al desofuscar las variables se puede observar que el código lo que hace es verificar unos condicionales y a partir de ahí imprime unas letras especificas de los array que hay.

Si se imprimen tal como están en orden de lineas no da la flag correcta, para que proporcione la flag correcta imprimir los valores de los array sin importar los if y luego ordenarlos en orden ascendente de la variable 1.

$var1[0]

$var1[1]

etc,

Al hacerlo se forma esta flag: «4da_meshel* l», la bandera es sin las comillas y respetando el espacio en blanco que hay.

 Flag: SEGTICS{4da_meshel*l}

RETO # 10 - Modulación

Descripción del Reto: Nuestros agentes encubiertos recuperaron valiosa información de un sospechoso , pero encontraron algo inusual, una grabación en un smartphone que fue reenviada a muchos contactos. Necesitamos de tu ayuda para descifrar la señal y así encontrar la respuesta.

Nivel de dificultad: Difícil Puntos asignados: 500 Formato de bandera: SEGTICS{flag} Archivo adjunto del retoctf.mp3
SOLUCIONARIO: El tema del reto está relacionado con modulación de señales de audio para transmitir texto para resolverlo: Se descarga el programa https://www.qsl.net/hamscope/ se le pone la configuración descrita en la imágenes configuracion_1.png y configuracion_2.png.

configuracion_1.png

configuracion_2.png

Mientras se tiene el programa abierto se reproduce el audio, el programa captura el audio del micrófono por lo que tal vez sea necesario que se reproduzca en un lugar silencioso y dejarlo reproducir varias veces hasta que obtenga la flag que es: 157ae002f4da28f44c02c77dd1a2e2f4a82b9060a1b6a0bf74e8921386c188ccfc65c165158a0e2173144c18addab4525dc9a516c10bf005d083b6a61be97ef4 La gráfica evidencia el resultado de la bandera que corresponde a:
 Flag: SEGTICS{157ae002f4da28f44c02c77dd1a2e2f4a82b9060a1b6a0bf74e8921386c188ccfc65c165158a0e2173144c18addab4525dc9a516c10bf005d083b6a61be97ef4}

Gracias por leernos, los esperamos en la entrega de la solución de retos de la Competencia Final del 04/09/20 al 06/09/20 de la DragonJAR Security Conference.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Abrir chat
1
Hola
¿ En que podemos ayudarte ?