MS08-067远程代码执行漏洞(CVE-2008-4250) | Windows Server服务RPC请求缓冲区溢出漏洞复现
MS08-067远程代码执行漏洞(CVE-2008-4250) | Windows Server服务RPC请求缓冲区溢出漏洞复现
文章目录
- MS08-067远程代码执行漏洞(CVE-2008-4250) | Windows Server服务RPC请求缓冲区溢出漏洞复现
- 1. 概述
- 1.1 SMB
- What is SMB?
- SMB工作原理是什么?
- 1.2 漏洞简述
- 1.3 风险等级
- 1.4 影响范围
- 1.5 漏洞详情/原理
- 2. 环境配置
- 访问测试
- 3. 漏洞复现
- 4. 修复建议
- 5. 总结
- 6. 漏洞成因
- 7. References
1. 概述
1.1 SMB
What is SMB?
SMB(Server Message Block)是一个协议服务器信息块,它是一种客户机/服务器、请求/响应协议,通过SMB协议可以在计算机间共享文件、打印机、命名管道等资源,电脑上的网上邻居就是靠SMB实现的;SMB协议工作在应用层和会话层,可以用在TCP/IP协议之上,SMB使用TCP139端口和TCP445端口,SMB使用了NetBIOS的API。
SMB工作原理是什么?
首先客户端发送一个SMB negport 请求数据报,,并列出它所支持的所有SMB的协议版本。服务器收到请求消息后响应请求,并列出希望使用的SMB协议版本。如果没有可以使用的协议版本则返回0XFFFFH,结束通信。
协议确定后,客户端进程向服务器发起一个用户或共享的认证,这个过程是通过发送SessetupX请求数据包实现的。客户端发送一对用户名和密码或一个简单密码到服务器,然后通过服务器发送一个SessetupX应答数据包来允许或拒绝本次连接。
当客户端和服务器完成了磋商和认证之后,它会发送一个Tcon或TconX SMB数据报并列出它想访问的网络资源的名称,之后会发送一个TconX应答数据报以表示此次连接是否接收或拒绝。
连接到相应资源后,SMB客户端就能够通过open SMB打开一个文件,通过read SMB读取文件,通过write SMB写入文件,通过close SMB关闭文件。
1.2 漏洞简述
MS08-067漏洞全称是“Windows Server服务RPC请求缓冲区溢出漏洞”,攻击者利用受害者主机默认开放的SMB服务端口445,发送特殊RPC(Remote Procedure Call,远程过程调用)请求,造成栈缓冲区内存错误,从而被利用实施远程代码执行。
1.3 风险等级
评定方式 | 等级 |
---|---|
CVSS Score | 10.0 |
Confidentiality Impact | Complete |
Integrity Impact | Complete |
Availability Impact | Complete |
实现难度 | 低 |
基础权限 | 不需要 |
漏洞类型 | 代码执行+缓存区溢出 |
1.4 影响范围
Windows 2000 SP4
Windows Server 2003 SP1-2
Windows Server 2008
Windows Vista SP0-1
Windows XP SP1-3
1.5 漏洞详情/原理
MS08-067漏洞是通过MSRPC over SMB通道调用Server程序中的NEtPathCanonicalize函数时触发的。NetPathCanonicalize函数在远程访问其他主机时,会调用NetpwPathCanonicalize函数,对远程访问的路径进行规范化,而在NetpwPathCanonicalize函数中发生了栈缓冲区内存错误(溢出),造成可被利用实施远程代码执行(Remote Code Execution)。后续部分我将分析该漏洞的CFG流程图及漏洞成因。
2. 环境配置
主机 | 系统 | IP |
---|---|---|
靶机 | Windows XP | 192.168.189.129 |
攻击机 | Kaili | 192.168.189.128 |
注:在配置靶机Windows XP或其他受影响的版本时需要打开TCP默认445端口
访问测试
3. 漏洞复现
Nmap扫描,发现端口及服务漏洞
nmap -Pn -sV --script=vuln -oN nmap.out victim_ip
发现445端口开放,及两个漏洞,编号如图
打开Matespioit,搜索相应漏洞利用模块,并选用
search ms08-067
use 0
设置相应参数,并选着目标所用系统版本
检查有无遗漏
运行模块
成功利用
提权
进入Shell
可能会遇到乱码问题,是选用了中文版XP系统所致,这里换成了英文版就没有乱码了,或者通过
chcp 65001
解决创建高权限用户
这里也可以打开默认端口3389进行远程桌面连接
方法如下远程桌面默认端口3389,CMD命令如下
打开:
REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 00000000 /f
关闭命令:
REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 11111111 /f
4. 修复建议
- 升级到最新的Windows系统,安装KB958644补丁
- 修改远程桌面默认端口,或关闭该服务
- …
5. 总结
6. 漏洞成因
等我学会了再写吧…
可以先参考如下文章
- MS08-067复现与简单分析
- 漏洞考古:MS08-067详细分析
7. References
CVE Details (2020) CVE-2008-4250. Available at: https://www.cvedetails.com/cve/CVE-2008-4250/…(Accessed: 30 Aug 2022).
MS08-067远程代码执行漏洞(CVE-2008-4250) | Windows Server服务RPC请求缓冲区溢出漏洞复现相关推荐
- [系统安全] 九.Windows漏洞利用之MS08-067远程代码执行漏洞复现及深度防御
您可能之前看到过我写的类似文章,为什么还要重复撰写呢?只是想更好地帮助初学者了解病毒逆向分析和系统安全,更加成体系且不破坏之前的系列.因此,我重新开设了这个专栏,准备系统整理和深入学习系统安全.逆向分 ...
- [系统安全] 十.Windows漏洞利用之SMBv3服务远程代码执行漏洞(CVE-2020-0796)及防御详解
您可能之前看到过我写的类似文章,为什么还要重复撰写呢?只是想更好地帮助初学者了解病毒逆向分析和系统安全,更加成体系且不破坏之前的系列.因此,我重新开设了这个专栏,准备系统整理和深入学习系统安全.逆向分 ...
- Windows漏洞:MS08-067远程代码执行漏洞复现及深度防御
摘要:详细讲解MS08-067远程代码执行漏洞(CVE-2008-4250)及防御过程 本文分享自华为云社区<Windows漏洞利用之MS08-067远程代码执行漏洞复现及深度防御>,作者 ...
- [网络安全自学篇] 五十九.Windows安全缺陷利用之MS08-067远程代码执行及深度防御解析
这是作者的网络安全自学教程系列,主要是关于安全工具和实践操作的在线笔记,特分享出来与博友们学习,希望您们喜欢,一起进步.前文分享了Windows远程桌面服务漏洞(CVE-2019-0708)复现,利用 ...
- CVE-2021-1675: Windows Print Spooler远程代码执行漏洞
** 赶紧点击上方话题进行订阅吧!** 报告编号:B6-2021-062902 报告来源:360CERT 报告作者:360CERT 更新日期:2021-06-29 1 漏洞简述 2021年06月29日 ...
- CVE-2021-34527: Windows Print Spooler 蠕虫级远程代码执行漏洞
报告编号:B6-2021-062902 报告来源:360CERT 报告作者:360CERT 更新日期:2021-07-02 1 更新概览 1.漏洞简述新增360CERT对CVE-2021-34527( ...
- linux内核远程漏洞,CVE-2019-11815:Linux内核竞争条件漏洞导致远程代码执行
*本文中涉及到的相关漏洞已报送厂商并得到修复,本文仅限技术研究与讨论,严禁用于非法用途,否则产生的一切后果自行承担. 运行了Linux发行版的计算机设备,如果内核版本小于5.0.8的话,将有可能受到一 ...
- linux内核竞争条件漏洞,Linux内核竞争条件漏洞-导致远程代码执行
原标题: Linux内核竞争条件漏洞-导致远程代码执行 导读*本文中涉及到的相关漏洞已报送厂商并得到修复,本文仅限技术研究与讨论,严禁用于非法用途,否则产生的一切后果自行承担. 运行了Linux发行版 ...
- Windows 2003 Server远程代码执行漏洞集合
目录 MS08-067 CVE-2017-7269 MS08-067 发布日期:2008/10/22 针对端口:139.445 漏洞等级:高危 漏洞影响:服务器服务中的漏洞可能允许远程执行代码 受影响 ...
最新文章
- Maven编译jar出现:无法确定 T 的类型参数的异常的原因和处理方案
- POJ3270 Cow Sorting ——置换群
- 'React/RCTBridgeDelegate.h' file not found
- 智能窗帘研究制作_基于51单片机智能窗帘的研究与设计
- Oracle X$Tables
- rabbitmq 常用的一些命令
- Linux常用脚本命令总结
- android 自定义view之雷达扫描,基于Android自定义控件实现雷达效果
- bootstrap 右自适应 左_Bootstrap自适应布局-网格系统
- 4.2V锂电池充电、放电保护电路分享
- java设计模式5,接口隔离原则
- 安全产品的部署方式及位置
- 单条视频播放量破2000w,一首《孤勇者》就能盘活一个账号?
- expected `;' before ‘iter’
- Linux终端设备文件介绍
- 【点云配准-4PCS(2008)】4-Points Congruent Sets for Robust Pairwise Surface Registration
- Kali扫描 w3af的使用(一)用户界面和身份认证
- 39、基于51单片机声控光控灯人体感应路灯照明灯系统设计
- 【Linux之Ubantu——乱记】5.U盘重装Linux系统(惠普)
- Redis中如何批量删除key