[C] Prueba shellcodes

  • 0 Respuestas
  • 2352 Vistas

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado mr.blood

  • *
  • Underc0der
  • Mensajes: 73
  • Actividad:
    0%
  • Reputación 0
  • Skype: [email protected]
    • Ver Perfil

[C] Prueba shellcodes

  • en: Mayo 15, 2013, 04:01:36 pm
Bueno, el titulo lo dice casi todo. Solo me queda decir que se usa de este modo:
Código: [Seleccionar]
./shell_prueba shellcode. Donde shellcode seria el fichero que nos devuelve el compilador de asm en binario ;).

Sin mas, el codigo es muy simple... solo carga los bytes en memoria y utiliza el buffer para ejecutar el codigo como si fuera una funcion. Si estais en ubuntu compilad con -z execstack para que no os de problemas.

Código: C
  1. #include <malloc.h>
  2. #include <stdio.h>
  3.  
  4. int longitud(FILE *archivo);
  5.  
  6. int main(int argc, char *argv[])
  7. {
  8.    if(argc < 2)
  9.    {
  10.       puts("Necesita un parametro");
  11.       return 1;
  12.    }
  13.    int longi, i;
  14.    char *shellcode;
  15.    FILE *archivo=fopen(argv[1], "rb");
  16.    longi=longitud(archivo);
  17.    shellcode=(char *)malloc(longi);
  18.    for(i=0;i<longi;i++)
  19.    {
  20.       shellcode[i]=getc(archivo);
  21.    }  
  22.    fclose(archivo);
  23.    ((void(*)())shellcode)();
  24.    free(shellcode);
  25.    return 0;
  26. }
  27.  
  28. int longitud(FILE *archivo)
  29. {
  30.    int longi;
  31.    fseek(archivo, 0, SEEK_END);
  32.    longi=ftell(archivo);
  33.    fseek(archivo, 0, SEEK_SET);
  34.    return longi;
  35. }
  36.  

Sa1uDoS
« Última modificación: Octubre 28, 2013, 09:18:57 am por Expermicid »

 

[C] Extrae shellcodes

Iniciado por mr.blood

Respuestas: 0
Vistas: 2215
Último mensaje Mayo 15, 2013, 04:00:37 pm
por mr.blood