当前位置: 首页 > 图文教程 > 网络安全 > 杀毒防毒 > 脚本图片类后门病毒的完美使用方法

杀毒防毒
U盘(auto病毒)类病毒分析与解决方案
解析魔兽木马Trojan-PSW.Win32.WOW
绕过主动防御 木马病毒刺穿卡巴斯基
总结经典:木马十大藏身地点大搜查
手动清除 chcp.exe病毒 保护 MSN的安全
卡巴斯基KIS 7.0防火墙设置完全攻略
百毒不侵 如何以不变应万变预防病毒
病毒日新月异 六大反病毒技术亟待成熟
守住你的网站 防御DDoS攻击实用指南
提高诺顿杀毒软件速度的五则技巧
安全升级 新版迅雷杀毒方案之详解
病毒非电脑的专利 常见手机病毒分析
卡巴斯基8.0主要特性介绍(附激活码)
几大常见的手机杀毒软件试用横评
三种2008版杀毒软件七大主流功能横评
检测硬盘与内存中病毒痕迹的四种绝招
优化XP使卡巴斯基7.0单机版运行流畅
上网不再怕中毒 教你一招克死所有病毒
“色情终结者”病毒专删PC内色情电影
精心设置卡巴斯基 加快杀毒速度

杀毒防毒 中的 脚本图片类后门病毒的完美使用方法


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-28   浏览: 34 ::
收藏到网摘: n/a

 

  前两天,看了一篇《脚本注入图片新方法》的文章,相信很多人都通过这篇文章了解了如何在图片中加入脚本,以及如何在正常的asp(或php)文件中通过include函数使图片中的脚本产生效用。

  但是,这种方法的问题又随之而来了:有人问道:通常脚本网页文件中如果想要插入一个图片,简简单单的一个html标签就解决了,如果我们用include代替的话,是否太过明显?虽然这种语句放在大型页面中手工查找有点麻烦,但如果是杀毒软件用特征码查找,看到include的是以.gif.jpg等扩展名结尾的语句,相信肯定会报警。

  而我们若不用类似于include之类的函数的话,图片中的asp(或php)语句又怎会执行呢?难道要打电话叫网管帮忙吗?嘿嘿…… 所以问题就集中在用什么方法可以替代include函数的作用上了,因为注入图片的脚本可以变,所以可以不怕杀,怕就怕那句该死的include。

  有什么方法呢?我曾经想过我们在入侵成功后可以在IIS中添加应用程序映射,把.gif等图片的扩展名用asp.dll(或php.exe)解析,并把这虚拟目录的应用程序保护改为低,这样我们的后门就会有System权限了。当我们注入图片的脚本的作用是执行cmd命令的,我们就可以通过本地表单POST我们要执行的命令给图片,当然也可以是GET: 代码 http://www.xxx.com/1.gif?cmd=dir 这种方法当然是好,可以突破include执行脚本了。但仍有不足,而且是明显的:这种方式虽然杀毒软件是查不出了,但是仍可明显看出:管理员只要查看一下应用程序映射,那么我们所有的工作都白费了。

  想到这里,我突然想到了IIS的那个著名漏洞(涉及IIS5.0及IIS5.1),我们可以在任意一个站点下建立一个不可见的虚拟目录(指的是intenet服务管理器中不可见,但利用adsutil.vbs依然可见),而且由于IIS的特性,虚拟目录的应用程序映射及应用程序保护是与IIS的默认站点分开设置的。由于虚拟目录不可见,他所有的属性当然也就不可见了。

  所以我们可以安全的设置此目录的属性,而不用怕管理员发现。 当我们把这个虚拟目录指向服务器上另一个装满图片的物理目录(至于那找这种目录?我找到个好地方:Windowz默认的墙纸目录,我的xp上是%SystemRoot%\Web\Wallpaper\目录)时……呵呵,大家想到什么了没?一旦我们修改其中两个图片,注入我们的脚本后门,然后把此目录的图片映射到asp.dll(或php.exe)上,应用程序保护改为低,就可以通过我上面讲的方法进行访问执行命令了。

  而且是System权限哦!呵呵,是不是很爽?管理员怎么也不会想到自己的图片却会是致命的后门!(其实这种方法动鲨曾在x档案上发文章说过,但他的方法有一个缺陷:在非web目录中有asp(或php)文件,一旦发现,的确让人怀疑。而我们利用的是图片,相信管理员看到图片不会情绪过激的非要撕开了看个明白才罢休吧?呵呵……) 那么如何建立这个虚拟目录呢?我们可以在图形界面也可以利用自编脚本或是直接用IIS自带的adsutil.vbs操作。

  在此之前我先简单说明一下这个IIS漏洞的原因:我们知道IIS的配置文件是MetaBase.bin。这个文件位于%SystemRoot%\system32\inetsrv\MetaBase.bin,包含了几乎所有IIS的配置信息,是非常重要的系统文件。简单的说,我们在“intenet服务管理器”中所作的一切设置最终都会被保存在MetaBase.bin中。在日常的系统管理中除了通过“intenet服务管理器”来对MetaBase.bin进行操作外,Windows还提供了一个脚本adsutil.vbs可以对MetaBase.bin进行操作。

  MetaBase的结构类似于注册表,也是树形结构,有类似键、值、项的概念。事实上在IIS3和PWS中,MetaBase的内容就是存储在注册表中的。MetaBase有两个主键:LM和Schema。其中,Schema保存了系统默认的一些配置,通常不需要修改,一旦改错也非常危险,所以无论是“intenet服务管理器”还是adsutil.vbs都没有提供修改Schema的机制。LM中包含了IIS的HTTP服务,FTP服务,SMTP服务等的配置信息。其中,LM/W3SVC/下是我们要用到的HTTP服务的配置信息。

  其中有一个值:ScriptMaps,代表脚本映射。当我们在某个虚拟目录下设定ScriptMaps值后,则向该目录请求的特定扩展名的文件都会交给指定的ISAPI执行。需要强调的是,设定ScriptMaps的目录并不一定要真实存在的,只要在MetaBase中某个HTTP实例的root键下建了一个子键,对该字键同名的虚拟目录的HTTP请求IIS会认为是合法的,并会交由映射的ISAPI处理。

  这样说可能谁都晕了(包括我),其实简单的作个类比:MetaBase的就够类似于注册表,我们知道,我们在安装有些程序的时候,安装程序会在注册表中建立一些必要的值,可我们一旦非正规把它安装的文件删除了时(比如有些朋友删游戏时就是直接往回收站一拉了事),注册表中的那些项就会被留下,没有用处,而造成注册表垃圾。MetaBase中也是那么回事,我们正常建立一个虚拟目录时,MetaBase中就会建立一些项。而当我们通过非正常手段删除了此虚拟目录时,那些项就会留下,与注册表不同的是,那些项还会起作用,只要我们用http请求了那个