一个简单的HTML病毒分析
一直就想写这篇东西了,仅仅是上班时说要上班,不写。回家后又忙着玩游戏,丢一边去了。如今仅仅好不务正业的开写了。希望头儿不会知道我的blog。哈哈 在非常久之前就对HTML的病毒非常感兴趣了,非常好奇怎么能远程向本地不经过同意就能下载可执行文件的,仅仅是一直没机会搞得到ASP的原码,所以不才敢断章取义的去作什么分析。近期一次听一朋友说他看一个网页时病毒防火墙提示有病毒。叫我小心(先感谢一下他先),我闪了一下念头,就打开FlashGet把那个病毒首页下了下来。
略微看了一下发如今首页代码的以下几行里有一个隐含的浮动帧。其引用的URL地址并非本地的,感觉应该是了,然后再次动用FlashGet下了下来。竟然发现放病毒的空间不支持ASP,下下来的ASP文件是源文件。这样兴趣来了,三下五除二的把全部病毒的相关文件都下了下来。 因为这个病毒非常easy。所以我也仅仅摘抄了一些片段而以,假设实在感兴趣的话。不防去找一个有病毒的网页瞅瞅,只是。不要用IE去看,要用FlashGet等下载工具下载下来。再用记事本打开,不然中招了可不要来找我。好了正文開始。 真正的病毒有三个文件,一个是引导文件。一个是下载文件,第三个是激活文件。
第一个引导文件 关键部分是: 这个作用是将下载和激活两个文件当作该页的对象来引用并执行,这个也是病毒文件可以在本地进行感染的关键地方,在引用的文件中竟然可以无阻碍的引用client的Action组件。唉唉,这就是那把刀啊。
第二个是下载exe病毒文件 然后是怎么将exe下载下来,而不弹出下载的提示框呢。
这个是收下载文件来完毕的任务。 该病毒的作法是在server端用Microsoft.XMLHTTP组件和response.contenttype = "image/gif"将病毒文件以图片格式下载到client的网页缓存里(这里是非常easy的Get/BinaryWrite操作。就不具体说了)。
第三个是激活 感觉激活的过程非常巧妙。病毒是先用fso在c:\下生成一个hta文件。将激活过程写到这个文件中。
然后再用WScript.Shell来执行这个文件。这样,激活过程中需要大权限的操作(比方:写注冊表操作)就没问题了。 具体操作过程是这样的。将在网页缓存文件夹里的病毒文件移动到系统文件文件夹。然后改名为win.exe。
再往注冊表里写入自启动的键。使得病毒能在系统重新启动后自己主动启动,然后删除hta文件,完毕感染和激活。
这就是病毒的基本执行过程(按照惯例病毒破坏部分就不提了),可是这个对我们有什么用呢。事实上这样的病毒我是非常讨厌的,可是,其下载exe和激活过程还是有可利用的地方的。
比方:你作的系统必需要client下载一些组件并激活后才干使用的,这样的操作面对了解的人当然是不成问题,可是假设你面对的是那种网络是什么都还没搞清林的用户时。我预计系统还没開始使用你的电话就要打爆了。假设借用种方式,在对方同意的情况下自己主动下载组件,并自己主动激活。那就省事多了。是吧。
只是。这样的方式对小形文件是非常方便,假设要下载1m以上的文件..那就要考虑多线程下载的操作了。当然这个不是这篇文章的范围了。以后有机会再说说用ASP+XML实现WEB多线程上传多线程下载的方法吧。
一个简单的HTML病毒分析的更多相关文章
- 从一个简单的小实例分析JSP+Servelt与JSP+Struts2框架的区别
最近在学struts2,struts2相比以前的JSP+Servlet,在处理流程上的更简单,我们就一个小实例来具体分析一下. 实例内容如下: 实现一个简单的注册页面包括:用户名.密码.重复密码.年龄 ...
- UNP学习笔记2——从一个简单的ECHO程序分析TCP客户/服务器之间的通信
1 概述 编写一个简单的ECHO(回复)程序来分析TCP客户和服务器之间的通信流程,要求如下: 客户从标准输入读入一行文本,并发送给服务器 服务器从网络输入读取这个文本,并回复给客户 客户从网络输入读 ...
- 第一讲 一个简单的Qt程序分析
本文概要:通过一个简单的Qt程序来介绍Qt程序编写的基本框架与一些Qt程序中常见的概念 #include <QApplication> #include <QPushButton&g ...
- 从一个简单案例上手Spring MVC,同时分析Spring MVC面试问题
很多公司都会用Spring MVC,而且初级程序员在面试时,一定会被问到这方面的问题,所以这里我们来通过一个简单的案例来分析Spring MVC,事实上,我们在培训中就用这个举例,很多零基础的程序员能 ...
- 【转】用C写一个简单病毒
[摘要]在分析病毒机理的基础上,用C语言写了一个小病毒作为实例,用TURBOC2.0实现. [Abstract] This paper introduce the charateristic of t ...
- Linux内核分析—完成一个简单的时间片轮转多道程序内核代码
---恢复内容开始--- 20135125陈智威 原创作品转载请注明出处 <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-10 ...
- 《Linux内核分析》第三周 构建一个简单的Linux系统MenuOS
[刘蔚然 原创作品转载请注明出处 <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000] WEEK THREE ...
- Linux内核分析第三周学习总结:构造一个简单的Linux系统MenuOS
韩玉琪 + 原创作品转载请注明出处 + <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 一.Linux内 ...
- Arachnid包含一个简单的HTML剖析器能够分析包含HTML内容的输入流
Arachnid是一个基于Java的web spider框架.它包含一个简单的HTML剖析器能够分析包含HTML内容的输入流.通过实现Arachnid的子类就能够开发一个简单的Web spiders并 ...
随机推荐
- Core 第三组 结对作业——四则运算 Part1. Core代码编写
结对作业——四则运算 Part1. Core代码编写 PB15061303 刘梓轩PB16061489 艾寅中 GITHUB 地址 戳这里 目录 (因为内容较多,分为了三个部分,但作业系统中只能提交一 ...
- 4600007972内销新单未取进FP
1.首先检查 in_sales_order表: select * from in_sales_order where so_id='04600007972'发现没有数据 2.接着检查从SAP导数的步骤 ...
- java tomcat报错: Starting Tomcat v7.0 Server at localhost' has encountered a problem问题
运行web项目的时候出现下面错误: 出现这个问题的原因是 这个tomcat在其他项目中正在运行 关掉即可.
- spring4-3-AOP-AspectJ注解-01-简单使用
1.引入类库 <dependency> <groupId>org.springframework</groupId> <artifactId>sprin ...
- Java工具类之Apache的Commons Lang和BeanUtils
Apache Commons包估计是Java中使用最广发的工具包了,很多框架都依赖于这组工具包中的一部分,它提供了我们常用的一些编程需要,但是JDK没能提供的机能,最大化的减少重复代码的编写. htt ...
- Zedboard学习(三):PL下流水灯实验 标签: fpgazynqPL 2017-07-05 11:09 21人阅读 评论(0)
zynq系列FPGA分为PS部分和PL部分. PL: 可编程逻辑 (Progarmmable Logic), 就是FPGA部分. PS: 处理系统 (Processing System) , 就是与F ...
- CF 1097D Makoto and a Blackboard
算是记一下昨天晚上都想了些什么 官方题解 点我 简单题意 给定两个正整数$n$和$k$,定义一步操作为把当前的数字$n$等概率地变成$n$的任何一个约数,求$k$步操作后的期望数字,模$1e9 + ...
- JS对象转URL参数(原生JS和jQuery两种方式)
转自:点击打开链接 现在的js框架将ajax请求封装得非常简单,例如下面: $.ajax({ type: "POST", url: "some.php", da ...
- Excel数据透视表
Excel中每列是一个字段,每行是一条记录. 值字段设置,双击更改统计方法. 双击透视表中的数据可以看具体是哪些记录贡献的这些数据. 显示报表筛选页,生成多个工作簿.
- Oracle——视图
视图是一种虚表. 视图建立在已有表的基础上, 视图依赖的这些表称为基表. 视图向用户提供基表数据的另一种表现形式 对视图数据的修改会影响到基表中的数据 视图的优点 控制数据访问 简化查询 避免重复访问 ...