Mostrando entradas con la etiqueta Reversing. Mostrar todas las entradas
Mostrando entradas con la etiqueta Reversing. Mostrar todas las entradas

jueves, 15 de agosto de 2019

Writeup - From Saakar - Reto 22 H4F




Los chic@s de Hackers4Fun nos traen el reto nº 22. En el que tendremos que ayudar a Thor a activar la nave para su regreso a Asgard.


Manos a la obra

Nos descargamos el archivo comprimido desde el enlace de Google Drive, si seguimos el hilo vemos que nos dicen la password del fichero (que no es poco xD).


Examinando el fichero.....


Intentamos hacer un buffer overflow y que nos escupa la flag, pero no tenemos éxito.


Abrimos el archivo con gdb y revisaremos el código para saber como funciona el programa.

Si vemos la siguiente línea, hace una llamada comparando un string.


Hacemos un breakpoint y ejecutamos el programa, este nos mostrará en el arg[0] nuestra password y en el arg[1] la password correcta.


Ah funcionado! La clave del programa es "PointBreak", vamos a probarla.


Efectivamente era la clave, pero el reto aún continua.

Es importante la palabra "d3c0d3", por lo que se trata de una codificación y no un cifrado.



Tras una hora probando todo tipo de codificaciones y algún que otro paracetamol (que no falten!) vemos que el string está codificado en Base85 y nos proporciona una URL.


Y continuamos con cifrados! Tenemos un nuevo string con una key, por el mensaje "Think that it's not just a fan aquarium fish...." y el dibujo del pez "globo" nos indica de que está en Blowfish.


Obtenemos un nuevo string, este parece ser que está en Base64.


Habemus flag! H4F{B4nN3r_1s_Th3_StR0nG3sT_Av3nG3r}

Enhorabuena a @Hackers4F por el reto y hasta la próxima!

jueves, 28 de diciembre de 2017

Debugging a una App de Android con IDA PRO - Parte 3

Buenas de nuevo, pues aquí tenemos la última entrega sobre Android y como usar IDA Pro para depurar Apps en tiempo de ejecución. Para ello lo primero que debemos de conocer es la arquitectura sobre la cual vamos a trabajar, en nuestro caso ARM.

Registros en ARM

La arquitectura ARM utiliza 16 registros, entre los que podemos encontrar argumentos a funciones, el contador del programa, puntero a la pila, etc. A continuación enumeramos cada uno de ellos junto con su descripción:

  • R0 a R3: argumentos de la función, también podemos encontrarlos como a0-a3.
  • R4 a R9: para las variables locales.
  • R7: número de llamada al sistema.
  • R10 (sl): límite de la pila.
  • R11 (fp): Fame Pointer
  • R12 (IP): Intra Procedure.
  • R13 (sp): Stack Pointer como RSP en x86_64.
  • R14 (lr): Link Register.
  • R15 (PC): Contador de Programa (como RIP en x86_64 y EIP en x86).

martes, 26 de diciembre de 2017

Debugging a una App de Android con IDA PRO - Parte 2

En el anterior post preparamos nuestro terminal Android rooteado para poner un puerto a la escucha y que el dispositivo Android se pudiera conectar con IDA Pro. El siguiente paso va a ser preparar el binario de Android para poder llevar a cabo el debugging con IDA Pro.

Preparando el binario

Para preparar el programa que vamos a depurar debemos conocer la estructura de una APK, que no es sino un paquete ZIP con ciertas peculiaridades, por tanto añadimos la extensión .zip al paquete y descomprimimos en una carpeta.

domingo, 24 de diciembre de 2017

Debugging a una App de Android con IDA PRO - Parte 1

Hace tiempo que tengo guardado este artículo para publicarlo en un momento especial, hoy lo hago como punto de partida de un grupo de amigos que les gusta jugar a los CTFs en sus ratos libres. El artículo trata de como depurar una aplicación Android en tiempo de ejecución, una prueba de concepto que espero os quite el miedo a iniciaros en el exploiting y el reversing.

¿Qué es IDA Pro?

Ida es una herramienta completa de reversing que sirve tanto para 32bits como 64bits. Y además no sólo hace funciones de debugger sino que permite desensamblar código fuente de manera estática. Tenemos también posibilidad de trabajar nativamente con Windows, Linux o Mac OS X. Otra de las funciones que nos permite es trabajar remotamente con varios sistemas operativos, nosotros concretamente vamos a usar el sistema ARM Android.

El principio de los C43S4RS

¿Por qué nos gusta el Hacking? 

Seguro que alguna vez has soñado por la noche la solución a un código fuente que te fallaba hace días, has ido organizando ideas que hacían más eficiente un programa o se te ha ocurrido un script que nadie antes había pensado. Seguramente seas una persona inquieta y no dejes de leer libros y artículos de seguridad y todo ello es debido a que te gusta el Hacking.

Hace algunos años abrí el blog White Walkers of Hacking con un alumno con la finalidad de aprender más, ya que si realmente quieres aprender sobre un tema, debes ser capaz de poder enseñar sobre dicho tema. No sólo leer o practicar basta, también debes compartir con los demás para que tu conocimiento se enriquezca. Hoy damos salida a un nuevo blog, el blog de C43S4RS, un grupo de amigos que se ha ido forjando haciendo CTFs en sus ratos libres, pasando información de calidad sobre hacking y compartiendo sus conocimientos sin tapujos. Ya iréis conociendo a cada uno de los integrantes del grupo por sus artículos, os puedo adelantar que aprenderéis mucho ya que todos ellos son unos cracks.


El objetivo del grupo es aprender unos de otros y a todos los niveles. Así que para ir abriendo boca os dejo la imagen del grupo con alguna seña de identidad mía oculta. Hemos creado una cuenta de twitter para que podáis seguir las publicaciones @C43S4RS. Para empezar os adelanto que ya tenemos preparados varios artículos muy interesantes, en breve os publicaré uno de como debuggear una App en Android con IDA Pro.

Felices fiestas a todos !
@eduSatoe