[C] Prueba shellcodes

  • 0 Respuestas
  • 2510 Vistas

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

Desconectado mr.blood

  • *
  • Underc0der
  • Mensajes: 73
  • Actividad:
    0%
  • Reputación 0
    • 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: You are not allowed to view links. Register or Login
./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) You are not allowed to view links. Register or Login
#include <malloc.h>
#include <stdio.h>

int longitud(FILE *archivo);

int main(int argc, char *argv[])
{
if(argc < 2)
{
puts("Necesita un parametro");
return 1;
}
int longi, i;
char *shellcode;
FILE *archivo=fopen(argv[1], "rb");
longi=longitud(archivo);
shellcode=(char *)malloc(longi);
for(i=0;i<longi;i++)
{
shellcode[i]=getc(archivo);
}
fclose(archivo);
((void(*)())shellcode)();
free(shellcode);
return 0;
}

int longitud(FILE *archivo)
{
int longi;
fseek(archivo, 0, SEEK_END);
longi=ftell(archivo);
fseek(archivo, 0, SEEK_SET);
return longi;
}

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