SMB协议利用之ms17-010-永恒之蓝漏洞抓包分析SMB协议

实验环境:

Kali msf以及wireshark

Win7开启网络共享(SMB协议)

实验步骤:

1、查看本机数据库是否开启,发现数据库是关闭的,需要开启

  

2、 打开本机数据库

  

3、再次查看postgresql数据库状态,发现postgresql数据库已经开启

  

4、打开msf,查看msf是否连接上数据库,下图显示连接上数据库了

  

5、如果没有连上数据库,并且发现数据库服务也开启了,这时可以通过初始化msf 数据库,便能解决问题

  

6、接下来便进行再msf中一些操作了,发现哪些主机开启445端口

利用auxiliary/scanner/smb/smb_version脚本搜索有哪些主机开放了smb服务

  

7、使用hosts查看有总共哪些主机开放了445端口

  

8、得到主机开放了445端口(SMB)之后,然后判断是否存在ms17-010-永恒之蓝漏洞

利用auxiliary/scanner/smb/smb_ms17_010脚本扫描判断目标是否存在ms17-010-永恒之蓝漏洞,这里以其中一个为例,当然也可以跳过445端口扫描,直接进行MS17-010漏洞扫描。

  

9、运行后,可以看到扫描结果,说明192.168.43.111可能存在MS17-010漏洞

 

10、接下来就是利用exploit/windows/smb/ms17_010_eternalblue脚本扫描刚才可能存在MS17-010漏洞的主机,为了以后可以持久化控制目标,这里需要加载一个payload(这里用windows/x64/meterpreter/reverse_tcp),同时在本地开启监听

 

11、开始攻击,把抓包,从下图可以看到攻击成功

  

12、抓包对整个攻击过程进行分析

12.1、首次首先客户端发送一个SMB negotiate protocolrequest请求数据报,并列出它仅支持SMBv1   #注意在这里与正常的不同,正常的会列出好多版本,正常的SMB通信过程见我的博客相关内容。

  

12.2、服务端一般默认开启SMBv1,下图说明,服务端同意与客户端建立连接并用SMBv1版本通信。

  

12.3、协议确定之后, 客户端进程向服务器发起一个用户或共享的认证,这个过程是通过发送session setup request请求数据报实现的。可以看到下图使用匿名用户登录。

  

12.4、服务器通过发送一个session setup response应答数据报来允许或拒绝本次连接,下图没有提示出错,可以说明允许本次连接。

  

12.5、当客户端和服务器完成了磋商和认证之后,它会发送一个tree connect andx rerquest SMB数据报并列出它想访问网络资源的名称。

  

12.6、服务器会发送一个tree connect andx response应答数据报以表示此次连接是否被接受或拒绝,下图可以看到没有提示错误,说明连接成功。

  

12.7、在接下来就是连接到相应资源后,SMB客户端进行的一些操作了,这里不进行分析了。

------------------------------------------------------------------------------------------------------------

SMB协议原理抓包分析请参考:https://www.cnblogs.com/yuzly/p/10480438.html

SMB协议利用之ms17-010-永恒之蓝漏洞抓包分析SMB协议的更多相关文章

  1. wireshark 抓包分析 TCPIP协议的握手

    wireshark 抓包分析 TCPIP协议的握手 原网址:http://www.cnblogs.com/TankXiao/archive/2012/10/10/2711777.html 之前写过一篇 ...

  2. Wireshark数据抓包分析——网络协议篇

                   Wireshark数据抓包分析--网络协议篇     watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZGF4dWViYQ==/ ...

  3. Ubuntu 12.04 LTS 下配置 apache支持SPDY, 使用wireshark 抓包分析SPDY 协议

    1.安装apache sudo apt-get install apache2 root@ubuntu:/etc/apache2/mods-enabled# apache2 -v Server ver ...

  4. Wireshark抓包分析TCP协议

      版权声明:本文为作者原创文章,可以随意转载,但必须在明确位置表明出处!!! 之前有一篇文章介绍了http协议「初识http协议」, http协议协议是基于tcp协议的,所以作者觉得有必要针对tcp ...

  5. 网络协议抓包分析——ARP地址解析协议

    前言 计算机之间可以相互通信的前提是要知道对方的地址,才可以发送信息给其他计算机,就像别人要联系你也得先知道你的电话号码一样.这里的地址因为网络分层的原因就包括IP地址和MAC地址(即网卡地址.硬件地 ...

  6. SMB协议原理抓包分析

    SMB协议原理抓包分析 目录: 1.SMB概述 2.SMB原理 3.SMB配置 一.SMB概述 SMB(全称是Server Message Block)是一个协议名,可用于在计算机间共享文件.打印机. ...

  7. FTP协议的粗浅学习--利用wireshark抓包分析相关tcp连接

    一.为什么写这个 昨天遇到个ftp相关的问题,关于ftp匿名访问的.花费了大量的脑细胞后,终于搞定了服务端的配置,现在客户端可以像下图一样,直接在浏览器输入url,即可直接访问. 期间不会弹出输入用户 ...

  8. EternalBlue永恒之蓝漏洞复现

    EternalBlue漏洞复现 1.    实训目的 永恒之蓝(EternalBlue)是由美国国家安全局开发的漏洞利用程序,对应微软漏洞编号ms17-010.该漏洞利用工具由一个名为”影子经济人”( ...

  9. “永恒之蓝"漏洞的紧急应对--毕业生必看

    早上6点多起床了,第一次起这么早,昨天晚上12点多,看到了一则紧急通知,勒索软件通过微软"永恒之蓝"漏洞针对教育网进行了大规模的攻击,而且有很多同学中招.中招后的结果如下图所示. ...

随机推荐

  1. thinkphp自动验证分析

    thinkphp有一个自动验证的方法验证规则如下 array( array(验证字段1,验证规则,错误提示,[验证条件,附加规则,验证时间]), array(验证字段2,验证规则,错误提示,[验证条件 ...

  2. thinkphp自动创建数据对象分析

    thinkphp有一个自动创建数据对象的create方法,核心代码如下 public function create($data='',$type='') { // 如果没有传值默认取POST数据 i ...

  3. MySQL中字段字符集不同导致索引不能命中

    今天写了一个sql,其中涉及的表中的数据量都差不多为50w左右,查询发现用了8s.这个只是测试服上数据,放到正式服上,肯定一运行就挂了. SELECT Orders. NO, GuidNo, Orde ...

  4. Perl读取标准输入<STDIN>、读取文件输入<>和chomp函数

    读取标准输入<STDIN> <STDIN>表示从标准输入中读取内容,如果没有,则等待输入.<STDIN>读取到的结果中,如果没有意外,都会自带换行符. 例如,tes ...

  5. Ubuntu使用(二)——eclipse配置与问题

    eclipse启动错误 修改eclipse.init的配置,主要加-vm以及下面的jre路径,路径前别留空格 之前因为加了空格,一直找不到原因,差点就打算装回windows了 openFile --l ...

  6. 深入理解Redis内存模型

    前言 Redis是目前最火爆的内存数据库之一,通过在内存中读写数据,大大提高了读写速度,可以说Redis是实现网站高并发不可或缺的一部分. 我们使用Redis时,会接触Redis的5种对象类型(字符串 ...

  7. 我是这样搞懂一个神奇的BUG

    摘要: 通过分析用户的行为,才想得到为什么会出现这种情况! 前两天在BearyChat收到这样的一个报警消息: 409 ?Conflict ? 平时很少遇到这样的错误,貌似很严重的样子,吓得我赶紧查看 ...

  8. git参考, 小结

    git官网: https://git-scm.com 菜鸟教程: http://www.runoob.com/git/git-tutorial.html 廖雪峰: https://www.liaoxu ...

  9. thinkphp模板中,checkbox回显问题

    thinkphp 模板里面可以这样写包含操作 //in 标签 <in name="变量名" value="值1,值2,...">要输出的内容< ...

  10. 使用JavaScript获取URL中的参数(两种方法)

    本文给大家分享两种方法使用js获取url中的参数,其中方法二是使用的正则表达式方法,大家可以根据需要选择比较好的方法,废话不多说了,直接看详细介绍吧. 方法一: //取url参数 var type = ...