分享
 
 
 

小心谨防黑客将Alexa改造成木马一

王朝other·作者佚名  2008-05-19
窄屏简体版  字體: |||超大  

9年前,它还只是一个不起眼的小网站,从事的主要是一些分类导航。在那个网络还不是很发达的年代,Yahoo是很多网站追捧的明星,而它只不过是众多的Fans中的一员。但与其他Fans不同的地方是它还有一些真的属于自己的东西,就是对访问Web站点的流量进行统计和分析。随着力量的壮大,后来,它还向网民提供自己开发的搜索引擎服务。它就是Alexa,1996年创立于美国,网址是http://www.alexa.com ,现如今的Alexa主要从事的是发布全球网站排名信息。

它在1997年7月开发了一款软件,就是现在著名的Alexa

Toolbar(Alexa工具条),这是一个嵌入到微软IE中的工具,用户在访问每个web页面时都会向它发回一串代码,将该次浏览的相关信息告诉Alexa,而用户会在该工具条上看到其浏览的网站在全球所有网站中的排名信息。Alexa通过在客户端安装Alexa工具条来收集采样全球网站的访问数据,以这些数据为依据对全球网站进行排名,类似于电视收视率的统计。Alexa工具条是一种类似于Google工具条的IE插件(图1),可以在下面URL中下载http://download.alexa.com/index.cgi.

目前,全球的Alexa工具条"装机量"已经超过上千万。光在我国不到1亿的网民中就已经有超过130万的用户安装了Alexa工具条。Alexa能基于遍及全球电脑用户桌面的工具条返回的信息,对全球网民的浏览进行监测。

但是,就这么一艘航空母舰,它的安全状况又如何呢?每当用户以安装有Alexa工具条的IE打开新页面时,Alexa的一台服务器(data.Alexa.com)都会收到加密数据包,这个数据包中的核心信息是十几个参数,包括当前网页地址,页面打开时间,用户端显示分辨率,Alexa工具条版本号等。其中有一个重要的隐含参数,是Alexa为每个已安装工具条自动生成的ID号码,该号码是全球惟一的。ID对Alexa来说,作用是通过它来对每个反馈数据包的发出者进行惟一标识,这样可以解决PV重复计算问题和防止同一用户多次刷新作弊的一个重要手段。但是,黑客可以通过破解植入IE浏览器的Alexa工具条,或者破解Alexa用来惟一标识用户身份的ID号码生成算法,就能模拟多个ID向Alexa服务器发送假信息。不过,这种方法对于广大黑迷朋友来说并没有多大的实际意义,它只不过是给那些不知名网站提高自己的排名提供了一个可乘之机。

黑客关心的是如何将Alexa

Toolbar(Alexa工具条)变成木马。

Alexa工具条的运作原理

其实Alexa工具条是一种基于BHO和Toolbar Bands技术的IE插件。它以DLL文件的形式存在于系统中,是一种COM组件,IE会在运行时将其加载到自身进程中去。因此,一般情况下_blank"防火墙是无法禁止该软件访问网络的,这就为它的木马角色提供了先天的便利,而且比本机Sniff软件收集密码的优势是:无论是HTTP还是HTTPS的网站,不管通信通道是否加密,只要是IE页面的表单都能收集到。具体原理大家可以参考《关于Alexa排名作弊的一些解惑》。系统在安装了Alexa工具条后,会在系统目录下生成AlxTB1.dll和AlxRes.dll两个DLL文件(图2)(有些情况下并不是AlxTB1.dll,而是AlxTB2.dll,那是因为Alexa工具条会自动上网更新的原因)。Alexa工具条的主要二进制代码存在于AlxTB1.dll文件中,这个文件同时也被注册成多个COM组件,它完成了BHO和Toolbar Bands的COM接口,并将IE的WebBrowser控件封装为一个COM组件供AlxRes.dll调用。AlxRes.dll文件仅包含少量的二进制代码,大量的代码是HTML和JavaScript代码,它们以资源的形式存在于AlxRes.dll文件中,可以通过res://AlxRes.dll/CHTML/about.html这样的URL来访问这些资源.也许有人会感觉到奇怪:又不是做网站,为什么软件的代码会是JavaScript写的?其实这就是Alexa工具条垃圾的地方.Alexa工具条的主界面是由HTML+JavaScript实现的,这些JavaScript代码通过调用AlxTB1.dll实现的COM接口来实现软件的全部功能。这样做不仅导致软件的效率低下,而且产生大量的资源泄漏,绝对是一种VERY超级SB的开发模式,但是却为黑客修改Alexa工具条的功能提供了“方便”,只要一个PE资源修改工具黑客就可以对Alexa工具条的代码进行修改了。

破解Alexa工具条

当然,Alexa也并不是真傻,绝对不会蠢到让自己的代码被别人用资源修改工具随便修改。为了防止AlxRes.dll中的资源被随意修改,它采取了计算文件校验和的保护方法,要是发现文件被修改,就会拒绝加载。黑客在修改代码前,必须破解这种保护机制。 AlxTB1.dll导出一个名叫ChecksumResources的函数,这个函数就是用来计算文件校验和的。用c32asm反汇编AlxRes.dll文件,查看字符串调用列表,找到"ChecksumResources"字符串(图3),跳转到调用该字符串的代码,于100017C0处(图4)。往下翻几行,在100017F6处找到一句跳转(图5),采用爆破方式,用NOP指令覆盖JNZ指令即可。通俗点讲:就是将AlxRes.dll文件偏移"0x17F6"处的两个字节"75 11"改成"90 90"(图6),也可以使用WinHex之类的16进制编辑软件来修改。

::100017C0:: 68 9C700010 PUSH 1000709C \:BYJMP JmpBy:100017A4,100017B1, \-: ChecksumResources

::100017C5:: 57 PUSH EDI

::100017C6:: FF15 1C500010 CALL [1000501C] : KERNEL32.DLL:GetProcAddress

::100017CC:: 85C0 TEST EAX, EAX

::100017CE:: 74 0E JE SHORT 100017DE \:JMPDOWN

::100017D0:: 8D4D DC LEA ECX, [EBP-24]

::100017D3:: 51 PUSH ECX

::100017D4:: FF35 44740010 PUSH DWORD PTR [10007444]

::100017DA:: FFD0 CALL EAX

::100017DC:: 59 POP ECX

::100017DD:: 59 POP ECX

::100017DE:: 57 PUSH EDI \:BYJMP JmpBy:100017CE,

::100017DF:: FF15 18500010 CALL [10005018] : KERNEL32.DLL:FreeLibrary

::100017E5:: 8D45 B8 LEA EAX, [EBP-48]

::100017E8:: 50 PUSH EAX

::100017E9:: 8D45 DC LEA EAX, [EBP-24]

::100017EC:: 50 PUSH EAX

::100017ED:: E8 AE060000 CALL 10001EA0 \:JMPDOWN

::100017F2:: 59 POP ECX

::100017F3:: 85C0 TEST EAX, EAX

::100017F5:: 59 POP ECX

::100017F6:: 75 11 JNZ SHORT 10001809 \:JMPDOWN ;就是修改这里

现在黑客可以毫无顾忌地修改AlxRes.dll中的资源了。可以参考《新版本的 Alexa Toolbar 破解方法》。

修改Alexa工具条的代码

熟悉IE编程的人都知道,DWebBrowserEvents2接口是用来接收WebBrowser的事件通知的,黑客可以在AlxRes.dll的Javascript代码中找到这些对应的函数。在res://AlxRes.dll/SCRIPT/EVT.CLASS.JS的代码中,有一系列的JavaScript函数,对应于DWebBrowserEvents2接口的成员,如:DocumentComplete-BP_onDocumentComplete,NavigateComplete2-BP_onNavigateComplete,BeforeNavigate2-BP_onBeforeNavigate。按照DWebBrowserEvents2接口,黑客可以在BeforeNavigate2中截获PostData,但是在AlxRes.dll的代码中,这个接口没有完全实现。在DWebBrowserEvents2接口中的原型是:

void BeforeNavigate2(IDispatch *pDisp,

VARIANT *&url,

VARIANT *&Flags,

VARIANT *&TargetFrameName,

VARIANT *&PostData,

VARIANT *&Headers,

VARIANT_BOOL *&Cancel

);

这其中的PostData包含了的Post数据。而BP_onBeforeNavigate的函数原型:

function BP_onBeforeNavigate(oParentWebBrowser2, oWebBrowser2, sURL, bPostData, sHeaders);

其中,bPostData只是个BOOL类型的变量。

一般来说,人们在IE中输入的用户名密码都是通过表单提交到服务器的,如果能在表单提交前截获表单的内容就可以实现窃取密码了。在JavaScript中,只要处理表单的"OnSubmit"事件,就可以先于提交而处理表单的内容。而AlxRes.dll的功能也是由JavaScript实现的,所以黑客就无需面对繁琐的COM接口,而直接使用JavaScript了。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有