[漏洞复现] [Vulhub靶机] OpenSSL Heartbleed Vulnerability (CVE-2014-0160)
免责声明:本文仅供学习研究,严禁从事非法活动,任何后果由使用者本人负责。
0x00 背景知识
传输层安全协议SSL
安全套接字协议SSL(Secure Sockets Layer),及其继任者传输层安全协议TLS(Transport Layer Security)是为网络通信提供安全及数据完整性的一种安全协议,它们在传输层与应用层之间对网络连接进行加密。
例如,常见的HTTPS协议,就是由HTTP加上SSL/TLS协议构建的可进行加密传输、身份认证的网络协议,实现互联网数据传输安全。当用户访问安全网站时,在URL地址旁会有一个“锁”,就表明我们与该网站之间的通讯信息都被加密。在 Microsoft Edge 中安全浏览 Web。

另外,这两种协议没有固定的端口。根据是否使用了传输层安全协议,应用层协议的端口会有不同。例如:http协议是80端口,https是443端口,常用的邮件服务器SSL/非SSL协议端口号。

OpenSSL
OpenSSL是一个开源的SSL安全软件包,是SSL协议的实现程序。网站的开发者要使用SSL,就会选择在自己的网站中导入openSSL软件包,实现网站数据加密。
0x01 漏洞介绍
漏洞成因
OpenSSL有一个叫Heartbeat(心跳检测)的拓展,它允许连接SSL一端的电脑发出一条简短的信息Client Hello问询来检测对方服务器是否正常在线,若服务器返回Server hello,则表明可以正常SSL通讯。
每次问询,A都会向服务器B发送请求包,其中含有包的类型(type)和数据长度(Length)等信息,而服务器B返回一个包含有请求包内容的响应包。OpenSSL心脏出血漏洞产生的主要原因是,OpenSSL的心跳处理逻辑没有检测心跳包中的长度字段值是否和实际长度相吻合,导致攻击者可以构造异常数据包,来直接获取心跳数据所在的内存区域的后续数据,于是形成了内存数据的越界访问(信息泄露)。通过不断进行心跳检测,就能一点点泄露服务器的数据,这就是心脏滴血(Heartbleed)漏洞。
当B收到A的请求包后,并没有的验证A包的实际长度,而是简单的把请求包data中说明的长度当作data的实际长度,于是当请求包中说明的长度与请求包数据实际长度不同时,问题就产生了。假设A构造一个请求包,它的实际内容长度只有1,而却告诉B的它的长度是65535,那么B接受到这个包后就会把A的内容完全当作65535来处理,其实到这里,问题还并不严重,最严重的问题出在,心跳的响应包还需要附带请求包的全部内容,这就需要程序做一次将请求包的数据从它所在的内存拷贝到响应包的内存里的操作。
这下就出大问题了,当拷贝的时候,程序认为A包的内容长度是65535个字节,结果A包在内存里面实际只有1个字节,于是程序不仅拷贝出了A包的内容,还“傻傻”地将A包数据在内存中位置后额外的65534个字节拷贝进了响应包里,并将这个响应包发还给了A,于是A便轻易地获得了B内存中这65534个字节的数据。想象一下,如果这65534个字节数据中包括一些敏感信息,那么后果将非常严重。而且A还可以简单地通过连续的发送心跳包,获取B机器内存中n个65534字节的数据。
摘自:https://blog.csdn.net/weixin_39190897/article/details/106879383
漏洞危害
攻击者可以利用该漏洞,远程读取服务器内存中64K的敏感数据(OpenSSL分配的缓存为64KB),这些数据里可能包括用户的登录账号密码、电子邮件甚至是加密私钥,用户cookie等信息。
不同OpenSSL版本,Heartbleed漏洞存在情况

漏洞影响
由于互联网应用最广泛的安全传输方法就是SSL,而OpenSSL又是多数SSL加密网站使用的开源软件包,所以漏洞影响范围广大,一时间席卷全球各个互联网相关领域,网银、在线支付、电商网站、门户网站、电子邮件等无一幸免。
0x02 漏洞复现
环境搭建
漏洞扫描/检测
- URL“心脏滴血”漏洞检测网站
- 使用Nmap扫描脚本对靶机进行漏洞检测:

- 使用AWVS对目标服务器进行漏洞扫描

使用Vulnhub官方POC复现
Python2运行ssltest.py,拿到敏感数据:

使用MSF进行漏洞利用
- 搜索openssl_heartbleed

- 使用auxiliary/scanner/ssl/openssl_heartbleed模块,设置好常规选项后还要使用
set verbose true设置verbose参数为真,才能显示详细信息看到获取到的服务器内存信息。


- 实际攻击需要多次获取内存信息并进行整理,提取有用信息。
0x03 漏洞修复
升级openssl,还可以配合措施:修改服务器密码、重新配置私钥、重新配置证书。
相关链接
- SSL相关
SSL证书在线工具
心脏出血?这是什么漏洞? - 参考文章
Heartbleed心脏滴血漏洞总结(CVE-2014-0106)
渗透测试-Openssl心脏出血漏洞复现
心脏滴血漏洞详解及利用--HeartBleed With OpenSSL - 有待研究
心脏滴血HeartBleed漏洞研究及其POC
[漏洞复现] [Vulhub靶机] OpenSSL Heartbleed Vulnerability (CVE-2014-0160)的更多相关文章
- [漏洞复现] [Vulhub靶机] Tomcat7+ 弱口令 && 后台getshell漏洞
免责声明:本文仅供学习研究,严禁从事非法活动,任何后果由使用者本人负责. 0x00 背景知识 war文件 0x01 漏洞介绍 影响范围:Tomcat 8.0版本 漏洞类型:弱口令 漏洞成因:在tomc ...
- [漏洞复现] [Vulhub靶机] Struts2-045 Remote Code Execution Vulnerablity(CVE-2017-5638)
免责声明:本文仅供学习研究,严禁从事非法活动,任何后果由使用者本人负责. 0x00 背景知识 Apache Struts 2是美国Apache软件基金会的一个开源项目,是一套用于创建企业级Java W ...
- CVE-2019-11043 Nginx PHP 远程代码执行漏洞复现
漏洞背景:来自Wallarm的安全研究员Andrew Danau在9月14-16号举办的Real World CTF中,意外的向服务器发送%0a(换行符)时,服务器返回异常信息.由此发现了这个0day ...
- OpenSSL Heartbleed “心脏滴血”漏洞简单攻击示例
OpenSSL Heartbleed漏洞的公开和流行让许多人兴奋了一把,也让另一些人惊慌了一把. 单纯从攻击的角度讲,我已知道的,网上公开的扫描工具有: 1. Nmap脚本ssl-heartblee ...
- OpenSSL Heartbleed "心脏滴血"漏洞简单攻击示例
转自:http://www.lijiejie.com/openssl-heartbleed-attack/ OpenSSL Heartbleed漏洞的公开和流行让许多人兴奋了一把,也让另一些人惊慌了一 ...
- SSRF——weblogic vulhub 漏洞复现及攻击内网redis(一)(附批量检测脚本)
0X01 概述 SSRF(Server-Side Request Forgery, 服务端请求伪造)利用漏洞可以发起网络请求来攻击内网服务.利用SSRF能实现以下效果:1) 扫描内网(主 ...
- 漏洞复现环境集锦-Vulhub
0x01 Vulhub简介 Vulhub是一个面向大众的开源漏洞靶场,无需docker知识,简单执行两条命令即可编译.运行一个完整的漏洞靶场镜像. 0x02 安装 # 安装pip curl -s ht ...
- CVE¬-2020-¬0796 漏洞复现(本地提权)
CVE-2020-0796 漏洞复现(本地提权) 0X00漏洞简介 Microsoft Windows和Microsoft Windows Server都是美国微软(Microsoft)公司的产品 ...
- 【Vulhub】CVE-2019-3396 Confluence RCE漏洞复现
CVE-2019-3396 Confluence RCE漏洞复现 一.环境搭建 选择的vulhub里的镜像,进入vulhub/Confluence/CVE-2019-3396目录下,执行 docker ...
随机推荐
- 无需Flash录视频——HTML5中级进阶
前言 HTML5的权限越来越大了,浏览器可以直接调用摄像头.麦克风了,好激动啊.我们要用纯洁的HTML代码造出自己的天地. 视频采集 本篇介绍的栗子 都是在chrome 47 版本以上的,低版本的可能 ...
- Vue小说阅读器(仿追书神器)
一个vue阅读器项目,目前已升级到2.0,阅读器支持横向分页并滑动翻页(没有动画,需要动画的可以自己设置,增加transitionDuration即可) 技术栈 vue全家桶+mint-ui gith ...
- 从八道面试题看JavaScript DOM事件机制
As we all know,事件机制其实很简单,无非冒泡和捕获这两点,笔者不再赘述,网上相关文章一大堆,下面让我们直接看面试题 题目一到七,统一设置css .test2 { height: 50px ...
- Blazor技术开发了一个访客管理系统
简单介绍一下系统功能 该系统为了在疫情期间能很好管理访客登记做好风险管控,同时可以整合智能设备做到自动确认并跟踪访客的行动轨迹,该项目完全开源. 系统流程 访客可以同通过手机进行预注册,同时上传照片, ...
- 论文解读(S^3-CL)《Structural and Semantic Contrastive Learning for Self-supervised Node Representation Learning》
论文信息 论文标题:Structural and Semantic Contrastive Learning for Self-supervised Node Representation Learn ...
- 自己写的一个Hash文件校验软件
原因 学校网络安全课讲到了Hash函数,老师提了一句上机操作的时候可以用自己的写的文件校验软件,所以我干脆就自己写一个. 说明 支持算法 MD5 SHA1 SHA256 SHA512 SHA384 为 ...
- Problem N: 输出回字形
这个题如果用for循环直接做的话恐怕得做上几个小时吧,加上一点小技巧,用坐标法来写这个题.就像下面这样: 坐标原点不在矩形的角上,而在矩形的中心处,这只是算是一个技巧,理解起来好理解而已.
- JavaWeb学习day7-Response初学4
重定向和转发的区别 相同 页面都会实现跳转 不同 请求转发的时候url不会发生变化,编码是307 重定向的时候url会变化,编码是302
- Dockerfile 命令详解及最佳实践
Dockerfile 命令详解 FROM 指定基础镜像(必选) 所谓定制镜像,那一定是以一个镜像为基础,在其上进行定制.就像我们之前运行了一个 nginx 镜像的容器,再进行修改一样,基础镜像是必须指 ...
- golang内存对齐分析(转载)
问题 type Part1 struct { a bool b int32 c int8 d int64 e byte } 在开始之前,希望你计算一下 Part1 共占用的大小是多少呢? func m ...