Ir al contenido principal

Entradas

Mostrando las entradas etiquetadas como Reversing

Reversing (XXII): Solución Reto 6 CyberOlympics 2018

En esta entrada la  solución a uno de los retos de  'reverse'  (ingeniería inversa) de la edición de 2018 de CyberOlympics , competición en modalidad  'on-line' , estilo  'Capture the Flag'  y formato  'Jeopardy' , dirigida a centros educativos y organizada por el Instituto Nacional de Ciberseguridad (INCIBE) en el marco de la actividad llamada CyberCamp. Este desafío, en mi opinión, presenta un  nivel  de dificultad bajo  ( ★ ★ ☆☆☆ ) . Enunciado :  Un conocido fabricante de ATM (cajeros automáticos) quiere implantar un sistema de seguridad con clave de manera que, aunque un técnico malicioso obtenga el software, no pueda obtener la clave original. Como están tan seguros de que es imposible, nos han dado una copia del programa que realiza el filtro para que la auditemos. Debemos averiguar cuál es la contraseña válida que acepta el programa. Recursos asociados al reto : archivo   reto13 . Solución :  lo primero que hago es ...

Reversing (XXI): Solución Reto 9 CyberOlympics 2017

En esta entrada la  solución a uno de los retos de 'reverse' (ingeniería inversa) de la edición de 2017 de CyberOlympics , competición en modalidad  'on-line' , estilo  'Capture the Flag'  y formato  'Jeopardy' , dirigida a centros educativos y organizada por el Instituto Nacional de Ciberseguridad (INCIBE) en el marco de la actividad llamada CyberCamp. Este desafío, en mi opinión, presenta un  nivel  de dificultad muy bajo  ( ★ ☆ ☆☆☆ ) . Enunciado :  Un amigo nos ha pasado un fichero cofre.pyc y partes del código. Cuando lo ejecutamos nos pide una contraseña. Nuestro amigo, que es un poco “troll”, no nos ha dado la contraseña que es necesaria para que el programa funcione bien . Recursos asociados al reto : archivos   cofre.pyc  y  FuncionesCodigo.pdf . Solución :   En el archivo pdf que se proporciona se ven diferentes imágenes del código del programa .pyc (archivo python compilado) . - Función 'main()' : En esta func...

Miscelánea (IV): Solución Reto 41

Solución al  último  reto de la categoría "Miscelánea"  que he puesto en este blog. El  enunciado  del reto decía lo siguiente: Lo importante es el código. Si lo sabes introdúcelo por el teclado y el secreto se visualizará en el LCD (del inglés, 'Liquid Crystal Display' ) . Y como recurso asociado al reto se proporcionaba el siguiente: arduino.jpg . Solución : Lo primero que hago es bajar el archivo de imagen, en la que se ve un circuito implementado sobre una placa Arduino Uno  y que consta de varios dispositivos: teclado de cuatro columnas y cuatro filas (4x4 'Keypad' ), display de cristal líquido de 16 columnas y 2 filas (16x2 LCD), potenciómetro y resistencia: Está claro que únicamente con este diagrama del circuito poco puedo hacer para conocer el código a introducir y como este reto, tal y como se indica en el post del enunciado , tiene algo de esteganografía lo siguiente que hago es intentar detectar información oculta en el archivo de imagen (ardui...

Miscelánea (III): Reto 41

En esta entrada  un reto de la categoría "miscelánea" . En este caso porque podría ser catalogado en varias de las existentes en este blog. Como siempre, se admiten soluciones en forma de comentarios a esta entrada. Pasado un tiempo iré proporcionando pistas para su resolución, un máximo de tres, y posteriormente actualizaré este post con la solución. Reto 41 : "eL CóDigo". Lo importante es el código. Si lo sabes introdúcelo por el teclado y el secreto se visualizará en el LCD (del inglés, ' Liquid Crystal Display '). Dificultad : Tipo :       Codificación, Esteganografía, Reversing. Recursos : - arduino.jpg ******** 12/01/2021 Pista 1 :    El primer paso a dar para resolver este reto es de esteganografía . Si abres el archivo de imagen que se proporciona (arduino.jpg) con un editor hexadecimal no tengo ninguna duda que sabrás qué hacer y cómo proceder.  ******** 13 /01/2021 Pista 2 :     El segundo paso a dar para resolver este ret...

Binary Exploitation (XIV): Solución Reto Sunshine CTF 2020 "speedrun09"

Solución a otro reto de la competición Sunshine CTF 2020, pero en este caso , en mi opinión, poco o nada tiene que ver con la categoría 'binary exploitation' , sino más bien con las de ' criptografía' y 'reversing' , etiquetas bajo las cuales lo he catalogado en este blog. En esta entrada la solución al desafío que lleva por título  "speedrun09" , y que, en mi opinión, presenta un  nivel de dificultad bajo ( ★ ★ ☆☆☆ ) . -  Enunciado : -  Solución :  Se proporciona un archivo ejecutable (chall_09) y lo primero que hago es ejecutarlo ; incluyo una cadena larga ('AAA…A') y el programa finaliza: Después,  compruebo los mecanismos de seguridad del binario  utilizando  ‘checksec’ : Se trata de un binario de 64 bits, y como se ve en la figura anterior NX está habilitad o, por lo que no podré inyectar ‘shellcode’ en la pila (en inglés, ‘stack’ ) para ejecutarlo, y PIE está habilitado , lo que aleatoriza la dirección base del binario para dificultar...

Reversing (XIX): Solución Reto UTC-CTF 2019 "Jump! (baby)"

Comienzo con este post a incluir algunas de las soluciones a desafíos de la categoría 'Reversing'   de UTC-CTF 2019 , competición tipo  'Capture The Flag'  (CTF), en formato  ' Jeopardy' , modalidad  'On-line'  y por equipos. Este primer reto,  e n mi opinión, tiene un  nivel de dificultad bajo ( ★ ★ ☆☆☆ ) . El título del reto es "Jump! (baby)"  y en su enunciado, que pongo a continuación, se hace referencia a otro reto "Strings (baby)", de la misma categoría y nivel de dificultad muy bajo, en el que la flag se obtiene sin más que buscarla directamente en el archivo que se proporciona (por ejemplo mostrando todas aquellas cadenas de texto que comiencen por "utc{"), y se nos da a entender que en este caso ese método no nos dará la solución al desafío. S u enunciado es el siguiente : Descargo el archivo que se propo rciona (jump), un ejecutable de Linux (ELF). No obstante lo dicho anteriormente, utilizo el softw...

Reversing(XVIII): Solución Reto angstromCTF 2019 "I Like It"

En este post la  solución a uno de los retos de 'reversing' de angstromCTF 2019 . En mi opinión este reto  presenta un nivel de dificultad medio ( ★ ★ ★ ☆☆ ) . Su  enunciado  dice lo siguiente:  ' Now I like dollars, I like diamonds, I like ints, I like strings. Make Cardi like it please ' . Y  se proporciona un archivo ejecutable  ELF ( 'Executable and Linkable Format' ) . Solución:  Como ya he dicho en este blog, los retos de 'reversing' no se me dan precisamente bien :), por lo que he catalogado este desafío como de dificultad media, pero seguro que cualquier persona con un poco de destreza para resolver este tipo de retos diría que presenta un nivel de dificultad muy bajo. Para intentar resolverlo, en primer lugar ejecuto el archivo : El que se me pida que introduzca una cadena ( 'string' ), junto a la referencia a las mismas que se hace en el enunciado, me lleva a utilizar la utilidad 'strings' para ver si encuentro a...