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

 

 


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales


+  Foro de elhacker.net
|-+  Seguridad Informática
| |-+  Hacking
| | |-+  Bugs y Exploits
| | | |-+  Ayuda para mi primer exploit
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Ayuda para mi primer exploit  (Leído 8,846 veces)
Kaxperday


Desconectado Desconectado

Mensajes: 702


The man in the Middle


Ver Perfil WWW
Ayuda para mi primer exploit
« en: 2 Octubre 2014, 11:01 am »

Hola a todos, haber tengo un programa en C compilado con el siguiente código:

Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4. #include <windows.h>
  5. int main(int argc,char **argv)
  6. {
  7.    char string[16];
  8.    strcpy(string,argv[1]);
  9.    return 0;
  10. }
  11.  

Vale quiero hacer un stack overflow, para ello meto de argumentos :

Código:
AAAAAAAAAAAAAAAABBBBBBBBCCCCDDDD

Vale con estos argumentos el programa ya da error, uso windows 8 y al parecer no deja explorar los errores luego no puedo ver la dirección del return pues no hay opción de detallar los problemas a diferencia de win7.

Vale ahora abro inmunnity debugger, abro el ejecutable, lo corro y que tengo que hacer? Le puse también los mismo argumentos y ahora? como encuentro la dirección de return? y cuando la encuentre tendría que meter hay un payload no?

Ayuda y gracias.
« Última modificación: 2 Octubre 2014, 11:06 am por Kaxperday » En línea

Cuando el poder económico parasita al político ningún partido ni dictador podrá liberarnos de él. Se reserva el 99% ese poder.
kub0x
Enlightenment Seeker
Colaborador
***
Desconectado Desconectado

Mensajes: 1.486


S3C M4NI4C


Ver Perfil
Re: Ayuda para mi primer exploit
« Respuesta #1 en: 2 Octubre 2014, 14:25 pm »

Empieza por aquí. En todas las prácticas se utiliza Inmunnity Debugger o WinDbg, yo uso OllyDbg para gustos los colores.

https://www.corelan.be/index.php/2009/07/19/exploit-writing-tutorial-part-1-stack-based-overflows/

Este team es de los mejores, eso si espero que sepas Inglés, sino lo llevas difícil.

Una explicación breve sobre lo que estás haciendo:

Si el input que introduces es mayor que el tamaño del buffer "string" entonces se sobreescribirán los datos adyacentes al mismo. Como el buffer se encuentra reservado en la pila, todas las direcciones que le siguen se sobreescribiran con el input. Por lo que si agarramos un depurador y vemos la pila podremos observar que en efecto habrá una gran colección de nuestro input en la pila.

Vale, el programa es vulnerable al desboradmiento de buffer/pila, por lo que podemos hacer que el programa ejecute código arbitrario.
Te recomiendo que aprendas un poco de ASM para generar tus Shellcodes. Instálate Cygwin para crear las shellcodes. Para crear una shellcode necesitas el code en ASM (NASM) y luego con un programa (xxd-shellcode.sh) lo traduces a shellcode. No quiere decir que sea el proceso maestro, pero a mi me da buen resultado.

Cualquier cosa pregunta por aquí.

Saludos!
En línea

Viejos siempre viejos,
Ellos tienen el poder,
Y la juventud,
¡En el ataúd! Criaturas Al poder.

Visita mi perfil en ResearchGate

MCKSys Argentina
Moderador Global
***
Desconectado Desconectado

Mensajes: 5.518


Diviértete crackeando, que para eso estamos!


Ver Perfil
Re: Ayuda para mi primer exploit
« Respuesta #2 en: 2 Octubre 2014, 20:50 pm »

En todas las prácticas se utiliza Inmunnity Debugger o WinDbg, yo uso OllyDbg para gustos los colores.

Inmunnity Debugger es OllyDbg!  :P

Saludos!
En línea

MCKSys Argentina

"Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."

dRak0

Desconectado Desconectado

Mensajes: 234


Ver Perfil WWW
Re: Ayuda para mi primer exploit
« Respuesta #3 en: 2 Octubre 2014, 22:18 pm »

Hola a todos, haber tengo un programa en C compilado con el siguiente código:

Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4. #include <windows.h>
  5. int main(int argc,char **argv)
  6. {
  7.    char string[16];
  8.    strcpy(string,argv[1]);
  9.    return 0;
  10. }
  11.  

Vale quiero hacer un stack overflow, para ello meto de argumentos :

Código:
AAAAAAAAAAAAAAAABBBBBBBBCCCCDDDD

Vale con estos argumentos el programa ya da error, uso windows 8 y al parecer no deja explorar los errores luego no puedo ver la dirección del return pues no hay opción de detallar los problemas a diferencia de win7.

Vale ahora abro inmunnity debugger, abro el ejecutable, lo corro y que tengo que hacer? Le puse también los mismo argumentos y ahora? como encuentro la dirección de return? y cuando la encuentre tendría que meter hay un payload no?

Ayuda y gracias.

Primero tenes que saber como fue compilado el codigo.¿Le agregaron alguna proteccion?Si no tiene ninguna , es tan simple como localizar la direccion donde se encuentra la variable , fijarse a cuanto esta el eip , y sobreescribir a la direccion que queres que salte.Creo que el gcc tiene proteccion por default , deberias indicar que no queres que tenga proteccion.

Tenes que saber algo basico como cuando se hace un call ,anteriormente se habian pusheados los argumentos de este y se pushea la direccion a donde se va a volver luego de la funcion llamada.Cada funcion crea un marco de pila, pushea ebp e iguala ebp con esp, despues reserva las variables locales.Si uno desborda una , sobreescribira todo lo de arriba , variables locales , ebp,eip , argumentos.

Si no entendes lo que te digo (se que soy medio medio explicando) , busca como funciona el tema de las funciones en asm,convenciones para limpiar la pila , etc.

No uses Inmunnity Debugger , usa IDA, ta mas lindo.En cuanto a tutoriales , entra a la pagina de ricardo narvaja , que tiene de todo, incluso subieron en español los tutes de corelan.

Para practicar http://exploit-exercises.com/ , yo aprendi de ahi.Es orientado a GNU/Linux , pero la base es practicamente igual a windows.

Saludos.
En línea

Kaxperday


Desconectado Desconectado

Mensajes: 702


The man in the Middle


Ver Perfil WWW
Re: Ayuda para mi primer exploit
« Respuesta #4 en: 4 Octubre 2014, 20:43 pm »

Hola a todos siento la tardanza, me desconecté un poco del tema.

Citar
Inmunnity Debugger es OllyDbg!  :P

Pues vaya, tengo los 2 pensaba que eran diferentes pero ya veo son iguales, usaré de momento el que usen en los tutoriales xD

Citar
No uses Inmunnity Debugger , usa IDA

No sé cual es ese, pero no creo que lo descargue de momento ya tengo 2 que hacen lo mismo xD

Citar
Creo que el gcc tiene proteccion por default

Pues usé gcc así que es probable que eso tenga algo que ver, aunque creo que el problema soy yo que no tengo idea de esto y no lo sé bien como hacer.

La página de exploits de ejercicios tiene buena pinta pero hay que descargar y demás, intentaré aprender sin descargar a ser posible trabajando sobre mis programas, aunque no descarto usarla en el futuro.

La página de corelan ya la vi anteriormente, bueno supongo que solo tengo que leerla más detalladamente. Abrí el tema, y realmente apenas dediqué tiempo a crear el exploit solo traté de hacer un tutorial que no me salió, solo tengo que dedicarlo más tiempo.

Por cierto si que se un poco de ensamblador hace tiempo lo di en clase, el problema lo tengo a la hora de encontrar el return una vez que abro el .exe con el programa, ¿como se busca y en qué ventana?

Hasta lo que se abro el .exe lo corro, y me voy a la ventanita de CPU y abro la subventana de abajo a la derecha y alli le doy a lock stack, y me deberían de aparecer los argumentos que he metido como se asignan pero me siguen saliendo @ y así, sabeis algo?

Saludos
« Última modificación: 4 Octubre 2014, 21:58 pm por Kaxperday » En línea

Cuando el poder económico parasita al político ningún partido ni dictador podrá liberarnos de él. Se reserva el 99% ese poder.
ameise_1987

Desconectado Desconectado

Mensajes: 119



Ver Perfil
Re: Ayuda para mi primer exploit
« Respuesta #5 en: 2 Noviembre 2014, 03:12 am »

Inmunnity Debugger es OllyDbg!  :P

Saludos!

Con varios bug parchados y soporta scripting en python que te ayuda a realizar las tareas
10 veces más rápido ejejejejje ......
En línea

firma retirada por insultar/cachondearse de (anelkaos) del staff.
MCKSys Argentina
Moderador Global
***
Desconectado Desconectado

Mensajes: 5.518


Diviértete crackeando, que para eso estamos!


Ver Perfil
Re: Ayuda para mi primer exploit
« Respuesta #6 en: 2 Noviembre 2014, 05:05 am »

Con varios bug parchados y soporta scripting en python que te ayuda a realizar las tareas

Hay muchas versiones de Olly parcheadas. Y hay un plugin de python que permite usar el lenguaje en Olly.

10 veces más rápido ejejejejje ......

OK. Si tu lo dices...  :P
En línea

MCKSys Argentina

"Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."

ameise_1987

Desconectado Desconectado

Mensajes: 119



Ver Perfil
Re: Ayuda para mi primer exploit
« Respuesta #7 en: 2 Noviembre 2014, 05:33 am »

Hay muchas versiones de Olly parcheadas. Y hay un plugin de python que permite usar el lenguaje en Olly.

OK. Si tu lo dices...  :P

Sabía que me responderías ajajajajja, se que eres fanboy de olly hermano, yo lo soy de immunity, he
leído post donde defiendes a pie juntillas , solo era broma .... por cierto mis respetos he leído varios documentos tuyos en ricardonarvaja.ino .

saludos!
En línea

firma retirada por insultar/cachondearse de (anelkaos) del staff.
plataplomo2948

Desconectado Desconectado

Mensajes: 12


Ver Perfil
Re: Ayuda para mi primer exploit
« Respuesta #8 en: 8 Noviembre 2014, 22:47 pm »

No puede ver un crash porque eso no es un buffer overflow. Si ponga una llamada a "printf("%s\n", string)" despues del strcpy va a mostrar exactamente lo que puso sin error, aun que el buffer es "demasiada pequena".

Un bufferoverflow no siempre va a pasar cuando hay un buffer demasiada pequena. Los overflows del stack solo pasan cuando hay otro data en el stack para borrar, en en ese caso debido al tomano de la programa, no hay otra informacion, y la programa sigue normalmente. Si ponga mas variables, y hace mas operaciones dentro de su programa, antes de la llamada a strcpy, tal vez puede ver un overflow.

Yo le recomendaria practicar con otras programas que ya son explotadas para aprender.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Ayuda para crear mi primer troyano con vb.net « 1 2 3 »
Análisis y Diseño de Malware
eduardogi 24 15,416 Último mensaje 12 Octubre 2010, 17:06 pm
por d(-_-)b
Ayuda para subir de privacidad en Exploit
Dudas Generales
Achicori23 0 1,827 Último mensaje 18 Enero 2023, 19:21 pm
por Achicori23
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines