`
java-mans
  • 浏览: 11892364 次
文章分类
社区版块
存档分类
最新评论

利用HTTP协议和IE的漏洞在其他计算机上运行一个程序

 
阅读更多

作者:星轨(oRbIt)
E_Mail:inte2000@163.com

<!-- Search Google -->
Google 输入您的搜索字词 提交搜索表单
<!-- Search Google -->

我们每天都使用网络浏览五彩缤纷、动感十足的网页,查询需要的信息,你是否想过这些都是嵌入的脚本代码的功劳呢?如果没有这些脚本代码,网页就只是静态的图片和文字的组合,看起来索然无味,网络的魅力顿失。但是,和任何其他事情一样,嵌入网页的脚本代码也有两面性:一方面,网络工程师可以通过脚本编程为网页带来很多匪夷所思的效果,制作出既漂亮又功能强大的网页;另一方面,别有用心的人也能利用这些代码给你的系统带来危害。一些网站故意将这些恶意代码嵌入网页,搜集访问者的信息,将其网址设为IE的默认打开页面,甚至锁定访问者的注册表,在访问者的计算机上植入木马程序等等。这些恶意脚本代码往往隐蔽执行,在访问者毫无觉察的情况下完成操作,所以具有很大的危害性。
具有破坏性的恶意脚本代码通常也被称为脚本病毒,脚本病毒不是可执行程序,它只是一段程序的代码序列,通常是VB Script,因为VB Script功能强大并且有Windows操作系统的脚本调试器支持,使用它编制的恶意脚本代码往往破坏力巨大。脚本病毒通常可以分为两类,一类是单纯的脚本代码,它的所有功能都在脚本代码中实现,通过在宿主计算机上直接执行脚本代码达到破坏目的。这一类病毒通常是嵌入到网页内欺骗宿主计算机执行或使用Html格式的邮件发送给宿主计算机,欺骗宿主计算机的使用者打开邮件,从而执行病毒代码。另一类脚本病毒是脚本代码和可执行文件相结合的复合型脚本病毒,执行破坏作用的主体是可执行文件,脚本代码只是起到传播和植入作用。这一类型的脚本病毒主要是通过发送电子邮件到宿主计算机,欺骗宿主计算机的使用者打开邮件,通过嵌入Html格式邮件内的脚本代码执行附件中隐藏的病毒体。但是也可以嵌入网页中,利用HTTP协议和IE的漏洞在网页浏览者的计算机上执行,本文就是介绍这样一种方法。
要想在宿主计算机上执行一个程序,首先要将程序文件植入到宿主计算机。正常情况下脚本代码是没有访问宿主计算机的权限的,但是利用HTTP协议和IE的漏洞却可以做到这一点。HTTP协议支持在网页中埋入媒体文件,并且可以扩充媒体文件的类型,但只是根据文件的扩展名称判断媒体文件类型,并没有对媒体文件的合法性(是否真的是这种类型的媒体文件)进行验证,这就给了我们可乘之机--将我们的可执行程序伪装成合法的媒体文件欺骗HTTP协议,使HTTP协议将其当成媒体文件传输。但是怎么利用这一点呢?具体讲就是如何找到这个已经下载到宿主计算机上的文件呢?这就要用到IE浏览器的一个漏洞了,IE在浏览一个网页时会将网页中嵌入的媒体文件都下载到一个临时目录中,这个临时目录的位置是固定的,在保存文件时会使用网页中指定的文件的原始名称,如果该目录中已经存在同名的文件,就在文件名后面添加“[1]”、“[2]”等以示区别。根据这些“规律”我们就可以编写嵌入网页中的脚本代码在浏览器的缓存目录中找到我们的程序。
原理虽然简单,但是还有很多问题需要考虑,首先是如何欺骗放病毒软件。将可执行程序文件的扩展名改成bmp、jpg、gif等媒体文件类型的扩展名并不难,却很难逃过防病毒软件的侦察,很多防病毒软件是通过查看文件的头结构来判断文件类型的,所以简单的改名字是很容易被识破的。不过正所谓“道高一尺,魔高一仗”,我们可以伪造一个头结构来骗过这类防病毒软件。通常我们采用bmp位图文件来伪装可知行程序,伪造一个合法的位图文件头结构,将可执行文件作为位图数据嵌入位图文件。之所以选择伪装成bmp位图文件格式是因为bmp位图文件头结构简单,容易伪造,很多软件都是利用bmp文件伪装自己或隐藏信息。位图文件有一个长度为14个字节的文件头结构和一个长度为40字节的位图信息头结构,使用C++语言可作如下描述:

typedef struct tagBmpFileHeader //位图文件头结构
{
charbfSign[2]; //文件特征,一般是标志“BM”
unsigned longbfSize;
unsigned shortbfReserved1;
unsigned shortbfReserved2;
unsigned longbfOffBits;
}BmpFileHeader;

typedef struct tagBmpInfoHeader //位图信息头结构 (Windows 风格)
{
unsigned longbiSize; //信息结构的大小,40,这个字段必须正确填写
longbiWidth;//位图的宽度
longbiHeight;//位图的高度
unsigned shortbiPlanes;
unsigned shortbiBitCount; //颜色深度
unsigned longbiCompression;
unsigned longbiSizeImage;//位图数据的大小
longbiXPelsPerMeter;
longbiYPelsPerMeter;
unsigned longbiClrUsed;
unsigned longbiClrImportant;
}BmpInfoHeader;

文件头结构的bfSign必须是“BM”,bfSize是整个位图文件的大小,bfOffBits对于24位位图就是文件头结构加位图信息头结构的大小,对于使用调色版的位图文件还要跨过调色版区域,一般可以随便填写,防病毒软件通常不检查这个字段,bfReserved1和bfReserved2必须是0。位图信息头结构的biSize必须是40,biBitCount通常选择24,因为24位位图计算大小比较简单。biSizeImage 由biWidth和biHeight以及biBitCount字段共同决定,可以根据可执行文件的大小适当的填写,但是要保证biWidth*biHeight*biBitCount / 8稍大于可执行文件的大小,在计算biSizeImage还要注意位图文件的数据每行按4字节对齐,适当的选择biWidth和biHeight,使计算出来的biSizeImage稍大于可执行文件的大小,多出来的部分可以用随机数字填充。
骗过浏览器和防病毒软件之后要做的事情就是找到我们的假bmp位图文件,将可执行文件从位图文件中还原并执行。IE在浏览网页时会将网页中嵌入的媒体文件下载到一个缓存目录中,这个缓存目录可以从注册表中得到,其位置是:
HKCU/Software/Microsoft/Windows/CurrentVersion/Explorer/Shell Folders/Cache
使用脚本对象WScript.Shell的RegRead方法可以很方便地得到这个目录,这样就可以找到我们的假位图文件,当然为了防止缓存目录中存在重名文件的问题,可以为我们的假位图文件适当地取一个长一点的比较怪异的名字。找到浏览器自动下载的假位图文件之后就可以从假位图文件中还原出我们的可执行程序,不过在IE的缓存目录中直接操作文件会引起Windows系统的警告,所以还要将伪装的位图文件复制到系统的临时目录中执行还原操作。直接操作二进制文件并不是VB Script的特长,并且通过Scripting.FileSystemObject对象操作二进制文件会引起防病毒软件的警觉,但是使用Scripting.FileSystemObject操作文本文件一般不会引起防病毒软件的注意,所以我们可以结合Win-DOS的批处理文件和DEBUG命令巧妙地解决这个问题。Win-DOS批处理文件是一个由DOS命令组成的文本文件,类似于Unix/Linux的Shell程序,其文件扩展名为.bat,我们生成的这个批处理文件要完成以下几个任务:将假位图文件从IE缓存目录拷贝到Windows的临时目录中,从假位图文件中还原出可执行文件,删除临时文件,将还原出的可执行程序拷贝到Windows的系统目录中,删除临时目录中的假位图文件以及最后运行还原出的可执行程序。只有还原出可执行文件的操作麻烦一点,其他的操作都可以用copy和del命令完成,所以我在下一段重点讲解如何不使用Scripting.FileSystemObject对象从假位图文件中还原可执行文件的操作。
还原可执行文件需要另外一个DOS命令:Debug,Debug是一个功能强大的调试工具,它有很多子命令,可以将二进制文件映射到内存中,也可以将内存中的数据写入文件,我们就利用这个特性完成可执行程序文件的还原工作。Debug命令的w子命令可以将二进制文件在内存中的映射的部分或全部写回到文件中,使用w子命令时BX寄存器存放要写入数据大小的高16位,CX寄存器存放写入数据大小的低16位,这个写入数据的大小就是我们嵌入假位图文件中的可执行文件的大小。使用w子命令要指定写入数据开始位置的偏移量,也就是要跳过假位图文件的头结构和位图信息头结构。现在举一个例子,假设嵌入假位图文件的可执行文件大小是143562字节,换算成16进制就是230C9H,位图头结构加位图信息头结构共54个字节,换算成16进制就是36H,这时Debug命令序列可以这样写:
debug ../假位图文件的位置/fakefile.bmp //装入假位图文件
-rbx
-2//显示BX寄存器的值并修改成2
-rcx
-30C9//显示CX寄存器的值并修改成30C9
-w136//从36H处开始写回文件
-q//退出Debug命令
此时假位图文件fakefile.bmp的大小是143562字节,其内容就是可执行文件,将其更名为fakefile.exe并拷贝到系统目录就可以执行了。
以上就是对这种方法的完整描述,可以看出来,这是一种非常危险的方法,网页制作者可以不经允许在访问者的计算机上执行非法程序,甚至可以使用Del,Deltree,Format等DOS命令破坏用户的文件系统。虽然这种方法设计的很巧妙,能够骗过防病毒软件,貌似很厉害,其实也很容易防范。该方法的重点在脚本代码方面,只要卸载Windows的脚本调试器就可以阻断脚本代码的执行,如果是Windows 95/98.Me的用户,可以将Windows 的Command目录下的Deltree.com、Format.com、Debug.com、Fdisk.exe这几个命令程序改个文件名就可以防范脚本代码通过Win-DOS的批处理文件执行这些命令。

分享到:
评论

相关推荐

    避开10大常见坑:DeepSeekAPI集成中的错误处理与调试指南.pdf

    在日常的工作和学习中,你是否常常为处理复杂的数据、生成高质量的文本或者进行精准的图像识别而烦恼?DeepSeek 或许就是你一直在寻找的解决方案!它以其高效、智能的特点,在各个行业都展现出了巨大的应用价值。然而,想要充分发挥 DeepSeek 的优势,掌握从入门到精通的知识和技能至关重要。本文将从实际应用的角度出发,为你详细介绍 DeepSeek 的基本原理、操作方法以及高级技巧。通过系统的学习,你将能够轻松地运用 DeepSeek 解决实际问题,提升工作效率和质量,让自己在职场和学术领域脱颖而出。现在,就让我们一起开启这场实用又高效的学习之旅吧!

    前端分析-2023071100789

    前端分析-2023071100789

    基于kinect的3D人体建模C++完整代码.cpp

    基于kinect的3D人体建模C++完整代码.cpp

    搞机工具箱10.1.0.7z

    搞机工具箱10.1.0.7z

    GRU+informer时间序列预测(Python完整源码和数据)

    GRU+informer时间序列预测(Python完整源码和数据),python代码,pytorch架构,适合各种时间序列直接预测。 适合小白,注释清楚,都能看懂。功能如下: 代码基于数据集划分为训练集测试集。 1.多变量输入,单变量输出/可改多输出 2.多时间步预测,单时间步预测 3.评价指标:R方 RMSE MAE MAPE,对比图 4.数据从excel/csv文件中读取,直接替换即可。 5.结果保存到文本中,可以后续处理。 代码带数据,注释清晰,直接一键运行即可,适合新手小白。

    性价比革命:DeepSeekAPI成本仅为GPT-4的3%的技术揭秘.pdf

    在日常的工作和学习中,你是否常常为处理复杂的数据、生成高质量的文本或者进行精准的图像识别而烦恼?DeepSeek 或许就是你一直在寻找的解决方案!它以其高效、智能的特点,在各个行业都展现出了巨大的应用价值。然而,想要充分发挥 DeepSeek 的优势,掌握从入门到精通的知识和技能至关重要。本文将从实际应用的角度出发,为你详细介绍 DeepSeek 的基本原理、操作方法以及高级技巧。通过系统的学习,你将能够轻松地运用 DeepSeek 解决实际问题,提升工作效率和质量,让自己在职场和学术领域脱颖而出。现在,就让我们一起开启这场实用又高效的学习之旅吧!

    基于ANSYS LSDyna的DEM-SPH-FEM耦合模拟滑坡入水动态行为研究,基于ANSYS LSDyna的DEM-SPH-FEM耦合的滑坡入水模拟分析研究,基于ansys lsdyna的滑坡入水

    基于ANSYS LSDyna的DEM-SPH-FEM耦合模拟滑坡入水动态行为研究,基于ANSYS LSDyna的DEM-SPH-FEM耦合的滑坡入水模拟分析研究,基于ansys lsdyna的滑坡入水模拟dem-sph-fem耦合 ,基于ANSYS LSDyna; 滑坡入水模拟; DEM-SPH-FEM 耦合,基于DEM-SPH-FEM耦合的ANSYS LSDyna滑坡入水模拟

    auto_gptq-0.6.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

    auto_gptq-0.6.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

    复件 复件 建设工程可行性研究合同[示范文本].doc

    复件 复件 建设工程可行性研究合同[示范文本].doc

    13考试真题最近的t64.txt

    13考试真题最近的t64.txt

    Microsoft Visual C++ 2005 SP1 Redistributable PackageX86

    好用我已经解决报错问题

    嵌入式开发入门:用C语言点亮LED灯的全栈开发指南.pdf

    # 踏入C语言的奇妙编程世界 在编程的广阔宇宙中,C语言宛如一颗璀璨恒星,以其独特魅力与强大功能,始终占据着不可替代的地位。无论你是编程小白,还是有一定基础想进一步提升的开发者,C语言都值得深入探索。 C语言的高效性与可移植性令人瞩目。它能直接操控硬件,执行速度快,是系统软件、嵌入式开发的首选。同时,代码可在不同操作系统和硬件平台间轻松移植,极大节省开发成本。 学习C语言,能让你深入理解计算机底层原理,培养逻辑思维和问题解决能力。掌握C语言后,再学习其他编程语言也会事半功倍。 现在,让我们一起开启C语言学习之旅。这里有丰富教程、实用案例、详细代码解析,助你逐步掌握C语言核心知识和编程技巧。别再犹豫,加入我们,在C语言的海洋中尽情遨游,挖掘无限可能,为未来的编程之路打下坚实基础!

    auto_gptq-0.4.2-cp38-cp38-win_amd64.whl

    auto_gptq-0.4.2-cp38-cp38-win_amd64.whl

    自动立体库设计方案.pptx

    自动立体库设计方案.pptx

    手把手教你用C语言实现贪吃蛇游戏:从算法设计到图形渲染.pdf

    # 踏入C语言的奇妙编程世界 在编程的广阔宇宙中,C语言宛如一颗璀璨恒星,以其独特魅力与强大功能,始终占据着不可替代的地位。无论你是编程小白,还是有一定基础想进一步提升的开发者,C语言都值得深入探索。 C语言的高效性与可移植性令人瞩目。它能直接操控硬件,执行速度快,是系统软件、嵌入式开发的首选。同时,代码可在不同操作系统和硬件平台间轻松移植,极大节省开发成本。 学习C语言,能让你深入理解计算机底层原理,培养逻辑思维和问题解决能力。掌握C语言后,再学习其他编程语言也会事半功倍。 现在,让我们一起开启C语言学习之旅。这里有丰富教程、实用案例、详细代码解析,助你逐步掌握C语言核心知识和编程技巧。别再犹豫,加入我们,在C语言的海洋中尽情遨游,挖掘无限可能,为未来的编程之路打下坚实基础!

    性能对决:DeepSeek-V3与ChatGPTAPI在数学推理场景的基准测试.pdf

    在日常的工作和学习中,你是否常常为处理复杂的数据、生成高质量的文本或者进行精准的图像识别而烦恼?DeepSeek 或许就是你一直在寻找的解决方案!它以其高效、智能的特点,在各个行业都展现出了巨大的应用价值。然而,想要充分发挥 DeepSeek 的优势,掌握从入门到精通的知识和技能至关重要。本文将从实际应用的角度出发,为你详细介绍 DeepSeek 的基本原理、操作方法以及高级技巧。通过系统的学习,你将能够轻松地运用 DeepSeek 解决实际问题,提升工作效率和质量,让自己在职场和学术领域脱颖而出。现在,就让我们一起开启这场实用又高效的学习之旅吧!

    从零到一:手把手教你用Python调用DeepSeekAPI的完整指南.pdf

    在日常的工作和学习中,你是否常常为处理复杂的数据、生成高质量的文本或者进行精准的图像识别而烦恼?DeepSeek 或许就是你一直在寻找的解决方案!它以其高效、智能的特点,在各个行业都展现出了巨大的应用价值。然而,想要充分发挥 DeepSeek 的优势,掌握从入门到精通的知识和技能至关重要。本文将从实际应用的角度出发,为你详细介绍 DeepSeek 的基本原理、操作方法以及高级技巧。通过系统的学习,你将能够轻松地运用 DeepSeek 解决实际问题,提升工作效率和质量,让自己在职场和学术领域脱颖而出。现在,就让我们一起开启这场实用又高效的学习之旅吧!

    为什么你的switch总出bug?90%新手不知道的break语句隐藏规则.pdf

    # 踏入C语言的奇妙编程世界 在编程的广阔宇宙中,C语言宛如一颗璀璨恒星,以其独特魅力与强大功能,始终占据着不可替代的地位。无论你是编程小白,还是有一定基础想进一步提升的开发者,C语言都值得深入探索。 C语言的高效性与可移植性令人瞩目。它能直接操控硬件,执行速度快,是系统软件、嵌入式开发的首选。同时,代码可在不同操作系统和硬件平台间轻松移植,极大节省开发成本。 学习C语言,能让你深入理解计算机底层原理,培养逻辑思维和问题解决能力。掌握C语言后,再学习其他编程语言也会事半功倍。 现在,让我们一起开启C语言学习之旅。这里有丰富教程、实用案例、详细代码解析,助你逐步掌握C语言核心知识和编程技巧。别再犹豫,加入我们,在C语言的海洋中尽情遨游,挖掘无限可能,为未来的编程之路打下坚实基础!

    用deepseek变现实操流程

    用deepseek变现实操流程,小白必看。

    10个必知的DeepSeekAPI调用技巧:从鉴权到限流全解析.pdf

    在日常的工作和学习中,你是否常常为处理复杂的数据、生成高质量的文本或者进行精准的图像识别而烦恼?DeepSeek 或许就是你一直在寻找的解决方案!它以其高效、智能的特点,在各个行业都展现出了巨大的应用价值。然而,想要充分发挥 DeepSeek 的优势,掌握从入门到精通的知识和技能至关重要。本文将从实际应用的角度出发,为你详细介绍 DeepSeek 的基本原理、操作方法以及高级技巧。通过系统的学习,你将能够轻松地运用 DeepSeek 解决实际问题,提升工作效率和质量,让自己在职场和学术领域脱颖而出。现在,就让我们一起开启这场实用又高效的学习之旅吧!

Global site tag (gtag.js) - Google Analytics