“Su seguridad es nuestro compromiso”
Retos (CTF) – DragonJAR Security Conference 2020 – Parte 2
03 septiembre 2020
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:
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)”.
En la sección de “Data” se encuentra la flag en HEX 4D4 F444255535 24F434B53 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 reto:
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 reto:
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:
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 reto:
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 reto:
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: 157ae002f4da28f 44c02c77dd1a2e2f4 a82b9060a1b6a0bf74 e8921386c188c cfc65c 165158 a0e21731 44 c18addab 4525 dc9a516c 10bf00 5d083b6a6 1 be97ef4
La gráfica evidencia el resultado de la bandera que corresponde a: