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

杀毒防毒
来自微软的免费杀毒软件抢先试用
金山毒霸全新功能体验版抢先曝光
IRC后门病毒技术分析及手动清除方法
MSN性感鸡变种刚过,QQ病毒又来捣乱
Win XP中震荡波后应采取的措施
病毒应急处理中心提醒防范高波病毒及其变种
北京公安局、瑞星发布6月13日危险病毒警报
防御计算机病毒十大必知步骤
网吧用QQ隐私难保 黑客工具窥视QQ聊天记录
用MailSpy拦截局域网内危险的病毒邮件
如何根据名称识别计算机病毒
Norton AntiVirus 2005测试版截图大赏
快速干掉感染Internet Explorer的恶意程序
邮件病毒入侵后五个清除步骤
Win 2000防毒从安装系统时开始
木马病毒清除的通用解法
快速有效地封杀—巧利用Iris来查找蠕虫病毒
防病毒必务宝典—计算机病毒专杀进程列表
网络安全之特洛伊木马攻防战略
3721上网助手清除专家

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-28   浏览: 45 ::
收藏到网摘: 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请求了那个