Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales
Autor
|
Tema: calcular el tamaño del buffer de la variable del programa cuando no se tiene el (Leído 2,815 veces)
|
CALONDOLO
Desconectado
Mensajes: 2
|
hola que tal muyyy buenas tardes,,, como hago para calcular el tamaño del buffer de la variable en un programa del cual no tengo el codigo fuente,,, por ejemplo,, el archivo crontab tiene activo el bit setuid y necesito desbordarlo para conseguir la direccion de retorno, pero como hago para saber el tamaño de la variable de crontab, si no puedo ver el codigo fuente ,, para saber cuantas A, debo enviarle para saber en que momento se causa el desbordamiento de buffer y asi poder conseguir la direcccion de retorno,,
ok,,,,,,gracias al que me ayude,,
|
|
|
|
« Última modificación: 16 Junio 2007, 17:50 por Sirdarckcat »
|
En línea
|
|
|
|
yeikos
Desconectado
Mensajes: 1.424
|
Una solución rápida es ir tanteando la cantidad de caracteres necesarios y justos para causar el desbordamiento.
Primero empezaremos introduciendo como parámetro la letra A muchas veces, asegurando un overflow seguro, entonces el EBP (dirección actual) y el EIP (siguiente dirección) mostraran la misma dirección: 414141 hex(41) => asc(65).
Ahora iremos disminuyendo la cantidad de letras a introducir y colocaremos al final de la cadena que provocará el desbordamiento: BBBB. Cuando el EBP indique 414141 y el EIP 424242 podremos dar por hecho que hemos encontrado la cantidad exacta para causar el desbordamiento. Ahora tan solo deberemos de deshacernos de los cuatro caracteres finales, BBBB, para introducir la dirección del Offset que realizará el salto, y seguidamente la shellcode a ser ejecutada.
|
|
|
|
|
En línea
|
|
|
|
Rozor
Desconectado
Mensajes: 269
As I Walk Through The Valley Of The Shadow Of Dead
|
Fuzzing Prueba esa tecnica veras como te ahorras, en este caso ya sabes a por lo que vas asique hazle
lo que sea A
bucle
A++
loque sea AA
etc...
Cuando retorne error o overflow lo miras.
Si para windows muy probablemente, un byte antes de desbordar se vuelve loco a imprimir lo que hay en cmd repetidas veces xDDDDDD . Pero tambien puede ser que no, ami me ha pasado varias veces con soft distintos.
Por cierto si te interesa la tecnica mirate "The Art Of Fuzzing" "TAOF"
|
|
|
|
|
En línea
|
out in the streets they call it murder....
|
|
|
dark_hat
Desconectado
Mensajes: 183
|
Tb puedes desensamblarlo para ver en q posición respecto de EBP (EBP - N) está la variable, y así sabes q si escribes más de N bytes en esa variable se producirá el overflow.
|
|
|
|
|
En línea
|
Eso que huele es un poco de incienso, eso marrón una tableta de turrón...
|
|
|
Preth00nker
Desconectado
Mensajes: 43
Mov MyHeart, 4C6F7665h!!!
|
que tal? bien, como ya habrás leido por las recomendaciones de los compañeros del foro, le mejor manera (aunque tal vez no la más avanzada) es meterle tamaños al tanteo, te recomiendo que hagas un programa (bastante sencillo) para generar y contar cadenas de texto, en VB es bastante sencillo (la función len() y los bucles while son muy útiles a la hora de crear un programa como el que te comento, en un futuro te ayudará bastante si este tipo de vulnerabilidades te llegan a gustar), como otra recomendación te diría que intentes utilizar cadenas como las que utiliza rojo2 en su texto: AAAABBBBCCCCDDDDEEEEFFFFGGGGHHHHIIIIJJJJKKKKLLLLMMMMNNNNÑÑÑÑOOOOPPPPQQQQRRRRSSSS... de esta manera vas avanzando por el buffer de una manera bastante rápida y al petar el programa tendrás una idea de donde necesitas cortar. bien, espero que te sirva esto salut's
|
|
|
|
|
En línea
|
mov [MyBrain], IA
|
|
|
|
|