Ir al contenido principal

Entradas

Mostrando entradas de 2020

Iniciación a la técnica de ROP

Iniciación a la técnica de ROP

Buenas a todos, En esta entrada vamos a resolver el binario propuesto por el maestro con la protección DEP: Que previene de ejecutar el código que introducimos en el stack si se encuentra activada esta protección del binario. Para ver si un binario tiene la protección DEP (Data execution prevention) activa, p odemos mirarlo con la herramienta ProcessExplorer tal y como vamos a ver en el siguiente ejemplo activando la columna DEP del mismo para poder comprobar si el proceso tiene o no el DEP habilitado:                                 Vemos que al ser un sistema operativo de x64, todos nuestros procesos tiene el DEP habilitado por defecto, y hemos de comprobar también si tiene alguna otra protección nuestro binario como el ASLR(Address Space Layout Randomization), encargado de aleatorizar las direcciones de la memoria virtual cuando nuestro binario es cargado en memoria virtual. Vamos a ver todos los módulos que componen el binario (Programa + librerias(dlls)) para ver si algún

Resolucion 2 ABOS4 SEH

Buenas de nuevo, Esta entrada es la continuación de la resolución del ABOS4, visto en la entrada anterior. En este caso, lo haremos machacando la cadena SEH. Como tenemos una idea de como estaba compuesto el binario anterior, aquí nos vamos a centrar en la construcción del exploit. Sabemos que debido a la característica del SEH en x86, cuando se produce una excepción se lanza el manejador de excepciones, y este está compuesto por 2 campos: Dirección del siguiente SEH Dirección que se encarga de gestionar la excepción. Primer paso que debemos hacer, es provocar una excepción en el primer gets()  para ello vamos a generar una cadena "pseudoaleatoria" de un tamaño enorme hasta provocar la excepción. Con x32Dbg vamos a ver la dirección que hemos machacado en el SEH chain y así sacaremos el tamaño de relleno que tenemos que introducir para machacar el controlador de excepciones: Para construir el exploit usaremos python , ya que es mas sencillo su uso: random_string =

Resolución del ABOS4 curso Free tools

Buenos días, Durante estos días de alarma sanitaria, en los que toca estar encerrados por el virus COVID-19 aprovechamos para seguir avanzando en el curso de Ricardo de Reversing con herramientas alternativas, Para ello, abrimos el ejecutable (ABOS4) usando IDAPro, y analizamos un poco en estático los componentes del binario, para poder tener una idea de como podemos explotarlo. Donde tenemos en el main()  del binario las siguientes llamadas: MessageBox ()--> Muestra el mensaje de ejecuta una calculadora Malloc () --> Reserva un espacio de memoria en el heap y devuelve un puntero que apunta al trozo reservado, este se almacena en la variable local mem_reservada. Gets ()-->Escribimos en una zona de memoria almacenada en la variable  Var_a_machacar. Gets ()-->Escribimos en la zona del heap reservada por el malloc y almacenada en mem_reservada . fun_externa ()-->Ejecuta una función de fuera del main, cuya direccion esta apuntada por  var_externa  y usa como p

Explotacion usando el controlador de Excepciones SEH con r2 y x32dbg

Buenas noches a todos, (00:57) Este viernes me he puesto al día con el tute de @RicardoNarvaja de CrackLatinos, el cual planteaba un ejercicio que para resolverlo hay que hacer uso del manejador de excepciones y ver como podemos explotar un programa haciendo uso del mismo. El binario que vamos a analizar es ABOS2 (el antiguo), con MD5 = 1efa6d3f257f9a98ac65529edc0820b4, ya que Ricardo lo ha actualizado para que al alcanzar los símbolos coincidan con el binario y sea mas fácil su análisis. Para comprobarlo podemos hacer uso de la herramienta (rahash2) del set de tools que vienen con radare2. rahash2 -a md5  ABO2_VS_2017.exe Bueno como siempre hacemos debemos de tener una idea general acerca del binario, para ello ejecutamos el comando: rabin2 -I ABO2_VS_2017.exe                                Vemos que es un binario de x86, como la mayoría de los que hemos ido analizando en este blog. Abrimos el programa con Radare2 y analizamos un poco el mismo para ver que t