elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Buscar Ingresar Registrarse
25 Mayo 2012, 10:30  


Tema destacado: [AIO elhacker.NET] Compilación herramientas análisis y desinfección malware

+  Foro de elhacker.net
|-+  Seguridad Informática
| |-+  Bugs y Exploits (Moderador: berz3k)
| | |-+  [?] Edicion de direcciones de memoria en un exploit
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: [?] Edicion de direcciones de memoria en un exploit  (Leído 3,236 veces)
Colymore


Desconectado Desconectado

Mensajes: 420


uid=0(root) gid=0(root) grupos=0(root)


Ver Perfil WWW
[?] Edicion de direcciones de memoria en un exploit
« en: 1 Diciembre 2005, 18:01 »

Wenas, pues me esta surgiendo una duda con los exploits, se que la mayoria se tiene que modificar y si se donde se tiene que modificar etc..
pero por ejemplo si tngo un exploit que tengo que introducirle una direcion de memoria correcta para quie funcione al ejecutarse..como se que direcion de memoria es y como la saco etc???
Se ue es una pregunta un poco tonta..pero esq no encuentro informacion :$
Saludos
PD; No voy a acer ninguna tonteria..solo voy a provarlos en mi PC :P
« Última modificación: 31 Diciembre 2005, 08:50 por Sirdarckcat » En línea

BenRu
The Prodigy


Desconectado Desconectado

Mensajes: 4.004


Ver Perfil
Re: Que parte de memoria modifico?
« Respuesta #1 en: 1 Diciembre 2005, 19:48 »

Pues depende del exploit, es logico que cada programador programa a su manera y pone las variables que le da la gana.
En línea
Colymore


Desconectado Desconectado

Mensajes: 420


uid=0(root) gid=0(root) grupos=0(root)


Ver Perfil WWW
Re: Que parte de memoria modifico?
« Respuesta #2 en: 2 Diciembre 2005, 13:48 »

Si pero a lo que me refiero es por ejemplo en los exploti que ahi en exploits.elhacker.net ahi algunos que dice..requiere modificacion en X sitio..miro X sitio y es una direccion de memoria..pues como saco la direcion de memoria..en que me base para sacarla en el codigo o en el bug en el que esta basada??
En línea

Ertai
Ex-Staff
*
Desconectado Desconectado

Mensajes: 2.026


Ralph Wiggum


Ver Perfil
Re: Que parte de memoria modifico?
« Respuesta #3 en: 2 Diciembre 2005, 14:27 »

Pues depende del exploit, es logico que cada programador programa a su manera y pone las variables que le da la gana.


Este tipo de respuestas mejor no darlas.

Cuando se dice eso se refiere a que deberás saber como modificar la direccion del offset porque al atacar según que libreria de Windows, puede variar su posición en memoria dependiendo de versión e idioma del SO.

Mas info: En este foro, primer post con chincheta (findjmp)

Saludos.
En línea

Si la felicidad se comprara, entonces el dinero sería noble.

Código:
void rotar_by_ref(int& a, int& b) {
   /* Quien dijo que no se podia sin una variable temporal? */
   *a = *a ^ *b;
   *b = *a ^ *b;
   *a = *a ^ *b;
}
Colymore


Desconectado Desconectado

Mensajes: 420


uid=0(root) gid=0(root) grupos=0(root)


Ver Perfil WWW
Re: Que parte de memoria modifico?
« Respuesta #4 en: 2 Diciembre 2005, 15:14 »

Si pero si el exploit es para linux...como saco el offset y como se en que archivo esta?
En línea

Ivanchuk


Desconectado Desconectado

Mensajes: 466


LLVM


Ver Perfil WWW
Re: Que parte de memoria modifico?
« Respuesta #5 en: 2 Diciembre 2005, 16:06 »

En linux es mas sencillo, ya que solo tenes que hacer llamadas al sistema via una interrupcion(80h). Sería bueno que pusieras el exploit, posiblemente se trate de un format string, en ese caso tenes que depurarlo para saber la direccion correcta.
Bytes.
En línea

Sólo quien practica lo absurdo puede lograr lo imposible.

Join us @ http://foro.h-sec.org
Colymore


Desconectado Desconectado

Mensajes: 420


uid=0(root) gid=0(root) grupos=0(root)


Ver Perfil WWW
Re: Que parte de memoria modifico?
« Respuesta #6 en: 3 Diciembre 2005, 13:54 »

Si no es cuestion de poner un exploit, esq es en muchos te dice la parte a modificar y se que es una memoria pero n tengo ni idea de como sacarla para linux..para windos se gracias a rojodos ;)
Pero en linux existe un programa como el que menciono rojodos en sus chincheta?Y..si me explicas como se hacen llamadas al sistema via interrupcion(80h) mejor porque nunca habia oido nada de eso.
Me e estado leyendo las devistas de HxC que tenia por aqui el tema de buffer overflow en linux pero no me aclaro nada..asik si alguien me ayuda..:)
Gracias y saludps
En línea

Ivanchuk


Desconectado Desconectado

Mensajes: 466


LLVM


Ver Perfil WWW
Re: Que parte de memoria modifico?
« Respuesta #7 en: 3 Diciembre 2005, 15:48 »

Sobre linux mucha experiencia no tengo en BoF. Se que podes utilizar el gdb para depurarlo. A ver si alguien nos da una mano en esto. En lo personal me parece que te falta algo de lectura de BoF sobre linux  ;).
Bytes.
En línea

Sólo quien practica lo absurdo puede lograr lo imposible.

Join us @ http://foro.h-sec.org
Colymore


Desconectado Desconectado

Mensajes: 420


uid=0(root) gid=0(root) grupos=0(root)


Ver Perfil WWW
Re: Que parte de memoria modifico?
« Respuesta #8 en: 3 Diciembre 2005, 15:57 »

Algo de lecutra¿?me falta muxisimo..xDD por eso antes de empezar a ir  aciendo el juacker x ahi ir provando como funcionan los exploits por ejemplo los local root exploits que de momento ninguno me a funcionado en mi ordenador..nsoe porque..pero weno no me desvio del tema, si alguien sabe como sacar las direcciones de memoria que avise pliz
Saludos
En línea

Ertai
Ex-Staff
*
Desconectado Desconectado

Mensajes: 2.026


Ralph Wiggum


Ver Perfil
Re: Que parte de memoria modifico?
« Respuesta #9 en: 3 Diciembre 2005, 22:08 »

No hace falta tocar nada de la memoria.

Simplemente saber donde carga la DLL que usa el exploit.
En línea

Si la felicidad se comprara, entonces el dinero sería noble.

Código:
void rotar_by_ref(int& a, int& b) {
   /* Quien dijo que no se podia sin una variable temporal? */
   *a = *a ^ *b;
   *b = *a ^ *b;
   *a = *a ^ *b;
}
Colymore


Desconectado Desconectado

Mensajes: 420


uid=0(root) gid=0(root) grupos=0(root)


Ver Perfil WWW
Re: Que parte de memoria modifico?
« Respuesta #10 en: 3 Diciembre 2005, 22:20 »

En linux existen las dlls?:S
En línea

benn

Desconectado Desconectado

Mensajes: 17



Ver Perfil
Re: Que parte de memoria modifico?
« Respuesta #11 en: 3 Diciembre 2005, 22:42 »

Citar
En linux existen las dlls?:S


Para averiguar la direccion de retorno en linux debemos saber como funciona el exploit. Si es un Buffer Overflow podemos averiguar la direcion exacta del buffer y restale el offset para que caiga en alguno  de los NOP's. Si usa las variables de entorno entonces seguramente se encontrara en el top del stack 0xbfffffff y un poco menos (argumentos del programa). Solo es cosa de saber manejar GDB
En línea
dxr
Colaborador
***
Desconectado Desconectado

Mensajes: 2.991



Ver Perfil
Re: Que parte de memoria modifico?
« Respuesta #12 en: 4 Diciembre 2005, 13:07 »

Veamos... hay 2 formas de aver los b0f... yo para linux nunka e echo nada lo digo por si me ekivoco... peor aver:

esta esta forma:

NOPNOPNOPNOPNOPNOPNOPNOP...NOPshellcoderetretret
\_______________________________________/\______/
    esto es el espacio de la variable           SC        RET
              que tiene el bug

Bueno em este caso en la variable que tiene el b0f le metes la shellcode al final y al principio pones NOPS... xq? muy sencillo xq dependiendod e los sistemas operativos tienen unos desplazamientos de  memoria un poco diferentes... entonces cuantos mas NOPs pongas ma sposibilidades tienes de acertar, y luego poens la shellcode y luego sobreescribes unas cuantas veces el ret... asi sobreescribes ebp y finalmente el ret que es loq te interesa, que offset poner en el ret? claro, para eso te pillas el dbg de linux q nose como guiarte ;) y saber en q Direccion de memoria EMPIEZA la vartiable a tener la memoria reservada... dependiendo de la cantidad de nop pues ya tienes q ir probando aver q offset poner hasta q veas que salta donde tu kieres ;) .

La otra forma es la que ya sabes la de poner la shellcode despues del ret... eso simplemente se hace para q no tengas q calcular el offset internamente y te hagas con un offset de alguna libreria q calgue el prograsma en memoria y tenga la direccion de jmp esp ya q seria lo q esta en la cima de la pila solo aria falta ejecutarlo, pero claro siempre esta el problema de meter las direcciones staticas, que si lo haces para un sistema concreto te funcionara pero para diferentes pues ya es mas complicado.

Resumen: No vas a poder sacar el exploit pillar un findoffset.exe buscar el exe cambiarlo y rular... ademas haciendo eso no aprenderas... y si no aprendes pues te tiraras preguntando la misma historia siempre ;)
« Última modificación: 4 Diciembre 2005, 13:11 por DEREK_X » En línea

Hacer preguntas concretas, claras y aportando toda la documentación necesaria.
De lo contrario, no tendreis una respuesta clara.
o2T7f6j2
echo -e "Nos vemos en \n$(pwd)"


Desconectado Desconectado

Mensajes: 2.782


./configure --enable-levitation --enable-diamagnet


Ver Perfil
Re: Que parte de memoria modifico?
« Respuesta #13 en: 4 Diciembre 2005, 14:14 »

No hace falta tocar nada de la memoria.

Simplemente saber donde carga la DLL que usa el exploit.

¿Para averiguar eso es para lo que se usa gdb?
En línea


No debemos perder la fe en la humanidad que es como el océano: no se ensucia porque algunas de sus gotas estén sucias.Mahatma Gandhi (2 de Octubre del 1869 - 30 de Enero del 1948)
Colymore


Desconectado Desconectado

Mensajes: 420


uid=0(root) gid=0(root) grupos=0(root)


Ver Perfil WWW
Re: Que parte de memoria modifico?
« Respuesta #14 en: 4 Diciembre 2005, 16:29 »

En fin que lo mejor es seguir aprendiendo c y c++ para poder ver como va el exploit y al inal averiguar la direcion de memoria etc no?:P
Gracias a todos ;)
En línea

Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Calculo direcciones de Memoria, Paginacion
Programación General
Darksythe 1 437 Último mensaje 5 Enero 2012, 21:41
por modo_senin
Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines