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, 15:33  


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales

+  Foro de elhacker.net
|-+  Seguridad Informática
| |-+  Bugs y Exploits (Moderador: berz3k)
| | |-+  problema ret2libc sacando direccion d memoria system()
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: problema ret2libc sacando direccion d memoria system()  (Leído 805 veces)
rmdma()

Desconectado Desconectado

Mensajes: 17


mov eax,0x69


Ver Perfil
problema ret2libc sacando direccion d memoria system()
« en: 5 Febrero 2012, 15:23 »

buenas xaki

estoy tratando d explotar un programilla, peo al sacar la direccion de system, me duelve una direccion de 3bytes , system()->0x168950 , el problema es k no me accede a esa direccion por que supongo que correra parte de otra direccion pa llenar los 4 bytes, nose haber si alguien puede echarme un cable!
En línea
Ivanchuk


Desconectado Desconectado

Mensajes: 466


LLVM


Ver Perfil WWW
Re: problema ret2libc sacando direccion d memoria system()
« Respuesta #1 en: 8 Febrero 2012, 21:48 »

No podes meter bytes nulos?
La pila no es ejecutable ?
Si no podes pasar bytes nulos podes intentar buscando pedazos de codigos, en las libs o tu modulo, que te sean utiles para formar la direccion de system que buscas a partir de bytes no nulos.

Estas en windows o linux?
En línea

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

Join us @ http://foro.h-sec.org
rmdma()

Desconectado Desconectado

Mensajes: 17


mov eax,0x69


Ver Perfil
Re: problema ret2libc sacando direccion d memoria system()
« Respuesta #2 en: 11 Febrero 2012, 18:48 »

estoy trabajando bajo mac pero tngo una maquina virtual con ubuntu 11,  como puedo hacer para cambiar byte nulos?
En línea
rmdma()

Desconectado Desconectado

Mensajes: 17


mov eax,0x69


Ver Perfil
Re: problema ret2libc sacando direccion d memoria system()
« Respuesta #3 en: 11 Febrero 2012, 18:53 »

entonces el problema es la direccion corta o los bytes nulos o las 2?

grcias x kontestar
En línea
Ivanchuk


Desconectado Desconectado

Mensajes: 466


LLVM


Ver Perfil WWW
Re: problema ret2libc sacando direccion d memoria system()
« Respuesta #4 en: 12 Febrero 2012, 15:49 »

El hecho que haya bytes nulos te complica la vida, si es que es una cadena que le estas pasando.
La direccion es corta porque debe ser la que va directamente hacia libc, a mi me pasa lo mismo en linux. Danos mas detalles, que programa intentas explotar?

Una solucion para tener una direccion sin bytes nulos seria usar la PLT del programa vulnerable, pero la entrada de system no la vas a tener si no es usada por el programa. Si es algo que escribiste vos para testear el ret2libc podes probar de agregarla a mano:

Código
if (argc < 0)
system("no se va a ejecutar");
 

Y ahi te deberia aparecer. En gdb la sacas con "x system" y te deberia dar una direccion dentro del espacio del programa vulnerable.

Proba asi, sino va a ser mas dificil explotarlo.

Saludos.
« Última modificación: 12 Febrero 2012, 15:51 por Ivanchuk » En línea

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

Join us @ http://foro.h-sec.org
rmdma()

Desconectado Desconectado

Mensajes: 17


mov eax,0x69


Ver Perfil
Re: problema ret2libc sacando direccion d memoria system()
« Respuesta #5 en: 12 Febrero 2012, 16:03 »

Código:
#include <stdio.h>
#include <string.h>

fvuln(char *temp1, char *temp2)
{
   char name[512];

   strcpy(name, temp2);
   printf("Hello, %s %s\n", temp1, name);
}

int main(int argc, char *argv[])
{
   fvuln(argv[1],argv[2]);
   printf("Bye %s %s\n", argv[1], argv[2]);

   return 0;
}

el programa es este en concreto el q trato de explotar, estoy siguiendo un paper de los SET, te voy a dejar el link del paper

http://www.set-ezine.org/ezines/set/37/0x05.txt


Código:
gdb> p system
0x168950
« Última modificación: 12 Febrero 2012, 16:08 por rtoffana » En línea
Ivanchuk


Desconectado Desconectado

Mensajes: 466


LLVM


Ver Perfil WWW
Re: problema ret2libc sacando direccion d memoria system()
« Respuesta #6 en: 12 Febrero 2012, 19:14 »

Ah, bueno como te decia agregale el if y busca la dir de system en la plt:

Código
#include <stdio.h>
#include <string.h>
 
fvuln(char *temp1, char *temp2)
{
  char name[512];
 
  strcpy(name, temp2);
  printf("Hello, %s %s\n", temp1, name);
}
 
int main(int argc, char *argv[])
{
  fvuln(argv[1],argv[2]);
  printf("Bye %s %s\n", argv[1], argv[2]);
 
  if (argc < 0)
     system("");
 
 
  return 0;
}
 

Y en gdb la sacas asi:

Código
p 'system@plt'
 
En línea

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

Join us @ http://foro.h-sec.org
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
SOBRE ESCRIBIENDO DIRECCION DE MEMORIA?
Programación General
wel 5 520 Último mensaje 9 Octubre 2004, 05:23
por fa++
Problema sacando WEP de un AP USB
Hacking Wireless
KeKoTe 1 468 Último mensaje 16 Junio 2007, 14:23
por pianista
Dirección de memoria
Programación General
aaronduran2 2 967 Último mensaje 7 Mayo 2008, 13:59
por byebye
Obtener dato en direccion de memoria (C++)
Programación General
Riki_89D 6 3,901 Último mensaje 4 Septiembre 2009, 22:10
por MCKSys Argentina
imprimir los bits que hay en una direccion de memoria
ASM
tuket 11 3,607 Último mensaje 4 Diciembre 2009, 16:26
por Yurix
Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines