ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Ataque de desbordamiento de buffer.


Enviado por   •  30 de Marzo de 2017  •  Trabajos  •  479 Palabras (2 Páginas)  •  331 Visitas

Página 1 de 2

Actividades Deshabilitar ASLR de Kali creamos un archivo reto.c, que contendr‡ el c—digo: compilamos el archivo creado ejecutamos el c—digo con par‡metros AAAAAAAAAAA y comprobamos que funciona Ejecutamos el debugger del programa. corremos el programa con gdb verificamos si tiene una vulnerabilidad de buffer overflow, para lo cual escribimos 200 As Verificamos los registros internos Como podemos observar en la captura de pantalla hemos sobrescrito los registros EIP y EBP, con la letra A o lo que es lo mismo su c—digo \x41.

Identificamos las direcciones de los registros de memoria de la pila, buscamos el nœmero exacto en donde se sobrescribe EIP, para lo cual se emple— dos mŽtodos distintos el primero al azar en el cual variamos el nœmero de elementos a ingresar en la pila, hasta encontrar el valor: como podemos observar se obtiene que 104 es el nœmero m‡ximo de la pila y a partir del 105 se sobrescribe EIP desde el 105 al 108. La segunda manera de obtener estos valores es a travŽs de pattern_create.rb, el cual genera un patr—n de n elementos, para este caso lo generamos de 200. Con el valor de ruptura obtenido generamos el pattern_offset.rb el cual nos da el numero exacto de la pila Con esta informaci—n ejecutamos nuevamente el c—digo, ingresando 104 ÒAÓ y 4 vacios, con esto verificamos las direcciones de memoria de ESP ahora sabemos que la direcci—n de memoria para EIP es 0xbffff624. Con esta informaci—n desamblamos la funci—n main() y premio() Esto nos permite identificar las direcciones de memoria de premio y main y podemos ejecutar el exploit para alterar el flujo del programa, para esto, tenemos en cuenta el formato little-endian. "\x4b\x84\x04\x08" Alteramos el flujo del programa modificando el EIP, para que salte a la direcci—n de memoria de premio 0x0804844b. Generaci—n de exploit (Shell) Creamos un archivo .rb, en mi caso se cre— shellcode.rb dentro del root En este archivo incluimos el Shell_code que est‡ compuesto de Una serie de nops mas el Shell mas el relleno y por œltimo la direcci—n del eip para ejecutarlo. Eip=ÓbbbbÓ #para verificar las posiciones (ser‡ reemplazado por la direcci—n de memoria) As=ÓAÓ*41 # ya que sabemos que el total de la pila es 104 y nuestra Shell es de 23, restamos 104-23=81 a esto le dividimos entre 2 81/2 =40,5, por ende 40 asignamos para nop y 41 para el relleno) Nop = "\x90"*40 Shell="\x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89"+ "\xe3\x50\x53\x89\xe1\xb0\x0b\xcd\x80" (este c—digo ensamblador ejecuta el Shell de la maquina ) ejecutamos el shellcode gdb -q reto (gdb) run `ruby shellcode.rb` Como podemos observar sobrescribe la direcci—n EIP, aqu’, es donde tenemos que colocar la direcci—n de nuestra Shell, para esto tenemos que buscar esta direcci—n. Desamblamos a la function main disass main y encontramos el punto de ruptura.

creamos

...

Descargar como (para miembros actualizados)  txt (3.2 Kb)   pdf (47.2 Kb)   docx (12.6 Kb)  
Leer 1 página más »
Disponible sólo en Clubensayos.com