一个简单的HTML病毒分析

一直就想写这篇东西了,只是上班时说要上班,不写,回家后又忙着玩游戏,丢一边去了。现在只好不务正业的开写了,希望头儿不会知道我的blog。哈哈   在很久之前就对HTML的病毒很感兴趣了,很好奇怎么能远程向本地不经过允许就能下载可执行文件的,只是一直没机会搞得到ASP的原码,所以不才敢断章取义的去作什么分析。最近一次听一朋友说他看一个网页时病毒防火墙提示有病毒,叫我小心(先感谢一下他先),我闪了一下念头,就打开FlashGet把那个病毒首页下了下来。   稍微看了一下发现在首页代码的下面几行里有一个隐含的浮动帧。其引用的URL地址并不是本地的,感觉应该是了,然后再次动用FlashGet下了下来。居然发现放病毒的空间不支持ASP,下下来的ASP文件是源文件。这样兴趣来了,三下五除二的把所有病毒的相关文件都下了下来。   由于这个病毒很简单,所以我也只摘抄了一些片段而以,如果实在感兴趣的话,不防去找一个有病毒的网页瞅瞅,不过,不要用IE去看,要用FlashGet等下载工具下载下来,再用记事本打开,不然中招了可不要来找我,好了正文开始。   真正的病毒有三个文件,一个是引导文件,一个是下载文件,第三个是激活文件。   第一个引导文件     关键部分是:         这个作用是将下载和激活两个文件当作该页的对象来引用并运行,这个也是病毒文件能够在本地进行感染的关键地方,在引用的文件里居然能够无阻碍的引用客户端的Action组件,唉唉,这就是那把刀啊。   第二个是下载exe病毒文件     然后是怎么将exe下载下来,而不弹出下载的提示框呢。这个是收下载文件来完成的任务。     该病毒的作法是在服务器端用Microsoft.XMLHTTP组件和response.contenttype = "image/gif"将病毒文件以图片格式下载到客户端的网页缓存里(这里是很简单的Get/BinaryWrite操作,就不详细说了)。   第三个是激活     感觉激活的过程很巧妙,病毒是先用fso在c:\下生成一个hta文件,将激活过程写到这个文件里。然后再用WScript.Shell来运行这个文件。这样,激活过程中需要大权限的操作(比如:写注册表操作)就没问题了。     具体操作过程是这样的。将在网页缓存目录里的病毒文件移动到系统文件目录,然后改名为win.exe。再往注册表里写入自启动的键,使得病毒能在系统重启后自动启动,然后删除hta文件,完成感染和激活。   这就是病毒的基本运行过程(依照惯例病毒破坏部分就不提了),但是这个对我们有什么用呢,其实这种病毒我是很讨厌的,但是,其下载exe和激活过程还是有可利用的地方的。比如:你作的系统必须要客户端下载一些组件并激活后才能使用的,这种操作面对了解的人当然是不成问题,但是如果你面对的是那种网络是什么都还没搞清林的用户时,我估计系统还没开始使用你的电话就要打爆了。如果借用种方式,在对方允许的情况下自动下载组件,并自动激活,那就省事多了,是吧。   不过,这种方式对小形文件是很方便,如果要下载1m以上的文件..那就要考虑多线程下载的操作了,当然这个不是这篇文章的范围了。以后有机会再说说用ASP+XML实现WEB多线程上传多线程下载的方法吧。

(0)

相关推荐

  • 一个简单的HTML病毒分析

    一直就想写这篇东西了,只是上班时说要上班,不写,回家后又忙着玩游戏,丢一边去了.现在只好不务正业的开写了,希望头儿不会知道我的blog.哈哈 在很久之前就对HTML的病毒很感兴趣了,很好奇怎么能远程向本地不经过允许就能下载可执行文件的,只是一直没机会搞得到ASP的原码,所以不才敢断章取义的去作什么分析.最近一次听一朋友说他看一个网页时病毒防火墙提示有病毒,叫我小心(先感谢一下他先),我闪了一下念头,就打开FlashGet把那个病毒首页下了下来. 稍微看了一下发现在首页代码的下面几行里有一个隐含的

  • 分析C语言一个简单程序

    首先给大家一个简单的例子,让读者有个整体的认识,代码如下: #include <stdio.h> int main() { puts("我们"); return 0; } 函数的概念 先来看第4行代码,这行代码会在显示器上输出"我们".前面我们已经讲过,puts 后面要带( ),字符串也要放在( )中. 在C语言中,有的语句使用时不能带括号,有的语句必须带括号.带括号的称为函数(Function) . C语言提供了很多功能,例如输入输出.获得日期时间.文

  • 一个简单Ajax类库及使用方法实例分析

    本文实例讲述了一个简单Ajax类库及使用方法.分享给大家供大家参考,具体如下: ajax.js function Ajax(recvType){ var aj=new Object(); aj.recvType=recvType ? recvType.toUpperCase() : 'HTML' //HTML XML aj.targetUrl=''; aj.sendString=''; aj.resultHandle=null; aj.createXMLHttpRequest=function(

  • 通过perl实现一个简单的NIDS

    随着对网络安全需求的深入开发,基于网络的入侵检测技术已经成为一个重要且有意思的研究方向.想学习NIDS技术除了去读一些现成的资料和一些开源系统的源码,最好的办法莫过于自己去写一个NIDS程序,只有那样才能真正体会到一些NIDS的实现需求和设计妙处. 本质上说NIDS只是一种网络流量的分析工具,通过对网络流量的分析识别出一些已知或未知的攻击行为,一个最简单的NIDS完成的主要工作也就是抓包->协议解码->匹配,众所周知PERL是极其强大的脚本语言,尤其是它的字符串处理能力可以方便地实现对于网络流

  • 用函数模板,写一个简单高效的 JSON 查询器的方法介绍

    JSON可谓是JavaScript的亮点,它能用优雅简练的代码实现Object和Array的初始化.同样是基于文本的数据定义,它比符号分隔更有语义,比XML更简洁.因此越来越多的JS开发中,使用它作为数据的传输和储存. JS数组内置了不少有用的方法,方便我们对数据的查询和筛选.例如我们有一堆数据: 复制代码 代码如下: var heros = [        // 名============攻=====防=======力量====敏捷=====智力====        {name:'冰室女巫

  • 使用Lucene实现一个简单的布尔搜索功能

    什么是lucene Lucene是apache软件基金会jakarta项目组的一个子项目,是一个开放源代码的全文检索引擎工具包,但它不是一个完整的全文检索引擎,而是一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎,部分文本分析引擎(英文与德文两种西方语言). Lucene是一个全文搜索框架,而不是应用产品.因此它并不像www.baidu.com 或者google Desktop那么拿来就能用,它只是提供了一种工具让你能实现这些产品. 在布尔查询的对象中,包含一个子句的集合,各个子句间都是如

  • 使用Python的Twisted框架实现一个简单的服务器

    预览   twisted是一个被设计的非常灵活框架以至于能够让你写出非常强大的服务器.这种灵活的代价是需要好通过好几个层次来实现你的服务器, 本文档描述的是Protocol层,你将在这个层次中执行协议的分析和处理,如果你正在执行一个应用程序,那么你应该在读过top level的为twisted写插件一节中的怎样开始写twisted应用程序之后阅读本章.这个文档只是和TCP,SSL和Unix套接字服务器有关,同时也将有另一份文档专门讲解UDP.   你的协议处理类通常是twisted.intern

  • Sql存储过程游标循环的用法及sql如何使用cursor写一个简单的循环

    用游标,和WHILE可以遍历您的查询中的每一条记录并将要求的字段传给变量进行相应的处理 ================== DECLARE @A1 VARCHAR(10), @A2 VARCHAR(10), @A3 INT DECLARE CURSOR YOUCURNAME FOR SELECT A1,A2,A3 FROM YOUTABLENAME OPEN YOUCURNAME fetch next from youcurname into @a1,@a2,@a3 while @@fetch

  • U盘病毒分析附bat批处理文件

    U盘病毒分析                         作 者:CyyIsGood.Cloud ★功能:         一.分析某一个或多个磁盘中的Autorun.inf,确定引导的文件,备份引导文件并 将其删除.(如果让其一直运行,可以防范U盘病毒)         二.免疫某一个或多个磁盘,四级免疫:Autorun.inf文件夹.加系统/隐藏/只读 /存档属性.8.3子文件夹.NTFS写权.         三.发送备份的文件给作者(目前,该功能只适用于肇中高中部校园网) ★设定:

  • 轻松创建nodejs服务器(1):一个简单nodejs服务器例子

    我们先来实现一个简单的例子,hello world. 似乎每种语言教程的第一节都会讲这个,我们也不例外. 首先我们先创建一个项目目录,目录可自己定义,本案例的目录为 e:/nodetest/. 由于我们要搭建的是服务器,所以我把第一个文件命名为server.js. 在server.js里面输入以下代码: 复制代码 代码如下: var http = require("http");   http.createServer(function(request, response) {    

随机推荐