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

心脏出血(Heartbleed)漏洞浅析、复现一、漏洞介绍心脏出血(英语:Heartbleed),也简称为心血漏洞,是一个出现在加密程序库OpenSSL的安全漏洞,该程序库广泛用于实现互联网的传输层安全(TLS)协议。它于2012年被引入了软件中,2014年4月首次向公众披露。只要使用的是存在缺陷的OpenSSL实例,无论是服务器还是客户端,都可能因此而受到攻击。此问题的原因是在实现TLS的心跳扩展时没有对输入进行适当验证(缺少边界检查),因此漏洞的名称来源于“心跳”(heartbeat)。该程序错误属于缓冲区过读,即可以读取的数据比应该允许读取的还

大家好,又见面了,我是你们的朋友全栈君。

一、漏洞介绍
心脏出血(英语:Heartbleed),也简称为心血漏洞,是一个出现在加密程序库OpenSSL的安全漏洞,该程序库广泛用于实现互联网的传输层安全(TLS)协议。它于2012年被引入了软件中,2014年4月首次向公众披露。只要使用的是存在缺陷的OpenSSL实例,无论是服务器还是客户端,都可能因此而受到攻击。此问题的原因是在实现TLS的心跳扩展时没有对输入进行适当验证(缺少边界检查),因此漏洞的名称来源于“心跳”(heartbeat)。该程序错误属于缓冲区过读,即可以读取的数据比应该允许读取的还多。
Heartbleed漏洞是由于未能在memcpy()调用受害用户输入内容作为长度参数之前正确进行边界检查。攻击者可以追踪OpenSSL所分配的64KB缓存、将超出必要范围的字节信息复制到缓存当中再返回缓存内容,这样一来受害者的内存内容就会以每次64KB的速度进行泄露。
二、漏洞复现
靶机:centos7 192.168.81.136
攻击机:kali 192.168.81.135
确保两台测试机网络能通

使用docker+vulhub搭建漏洞环境,在centos7上搭建vulhub的步骤如下:
1、安装docker依赖包
yum install -y yum-utils device-mapper-persistent-data lvm2
2、安装docker
yum install docker
3、启动docker
systemctl start docker
4、下载vulhub
https://github.com/vulhub/vulhub/archive/master.zip
5、找到heartbleed,并进入,输入命令docker-compose up -d运行漏洞环境
在这里插入图片描述
在这里插入图片描述

6、查看运行情况
在这里插入图片描述
7、打开kali,运行metaspolit
在这里插入图片描述
8、使用metasploit进行攻击
1)搜索相关漏洞模块儿
search Heartbleed
在这里插入图片描述
2)使用相关攻击模块
use auxiliary/scanner/ssl/openssl_heartbleed
在这里插入图片描述
3)查看需要配置的选项
Show options
在这里插入图片描述
4)对required为yes但是current setting为空的项进行设置,这里我们只需要设置rhosts(靶机ip)
set rhosts 192.168.81.136
在这里插入图片描述
5)开始攻击并查看结果,出现白框字样表示漏洞存在
Run
在这里插入图片描述
6)set verbose true#(设置verbose,这个设置要设置成true才能看到泄露的信息) 此设置主要是为了显示整个过程以及leak出来的数据
在这里插入图片描述
在这里插入图片描述
注意:1、关闭防火墙 2、关闭selinux

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/160550.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • JVM调优工具总结

    JVM调优工具总结一、jps:虚拟机进程状况工具它可以列出正在运行的虚拟机进程,并显示虚拟机执行主类(MainClass,main()函数所在的类)名称以及正在运行的本地虚拟机唯一ID(LVMID);它是使用率最高的一个JDK命令行工具,因为其他的命令行工具都需要输入查询到的ID来确定要监控的是哪一个虚拟机进程。命令格式:jps[options][hostid]选项作用-q只…

    2022年5月6日
    41
  • python服务器运维步骤_python运维服务器

    python服务器运维步骤_python运维服务器好久没有写东西了.一直做服务器开发需要写一些脚本来控制服务器的启动.本来Windows自带了任务计划,但不是特别方便,还是用python写了一下.需求:在固定的时间启动服务器先看源代码:defstart_process(date):cwd=os.getcwd();globallist_threads;globaliskill;iskill=False;foriinrange(n…

    2022年7月12日
    14
  • yum安装于卸载软件常见命令

    yum安装于卸载软件常见命令1.使用yum安装和卸载软件,有个前提是yum安装的软件包都是rpm格式的。   安装的命令是,yuminstall~,yum会查询数据库,有无这一软件包,如果有,则检查其依赖冲突关系,如果没有依赖冲突,那么最好,下载安装;如果有,则会给出提示,询问是否要同时安装依赖,或删除冲突的包,你可以自己作出判断;       删除的命令是,yumremove~,同安装一样,yum也会查

    2022年6月11日
    37
  • plsql 安装使用教程「建议收藏」

    plsql 安装使用教程「建议收藏」plsql客户端连接工具是oralce数据库最常用,最专业的使用工具,但是使用起来不是那么方便,记录一下使用的过程吧首先下载instantclient-basic-win32-11.1.0.7.0然后创建tnsnames.ora文件内容#tnsnames.oraNetworkConfigurationFile:D:\Oracle-Install\network\admin\tnsnames.ora#GeneratedbyOracleconfigurationtools.

    2022年5月2日
    64
  • linux下 opencv 和 ffmpeg安装「建议收藏」

    linux下 opencv 和 ffmpeg安装「建议收藏」1、要先安装ffpmeg下载地址http://www.ffmpeg.org/download.html这里选择版本3.4.8直接下载包上传或者linux直接下载wgethttp://www.ffmpeg.org/releases/ffmpeg-3.4.8.tar.gz解压当前包tar-zxvfffmpeg-3.4.8.tar.gzcdffmpeg-3.4.8/安装ffmpeg过程中,执行./configure时,报yasm/nasmnotfoundortooold.U

    2025年9月6日
    7
  • 打开redis远程访问端口_linux端口开放命令

    打开redis远程访问端口_linux端口开放命令一、问题详情最近我在阿里云ESC上购买了一台服务器,但是在安装完redis后,我在本地的电脑上怎么也没法调用这台服务器上面的redis服务。最后,我终于解决了,所以来记录一下。二、解决方案想要解决这个问题,前提条件是已经在阿里云的安全组设置里面已经开放了3679这个端口。接着我们要修改两个配置文件。redis.conf尽量将最初始的redis.conf复制一份,防止以后修改该配置文件出现问题。 执行修改配置文件的命令 vim/opt/myRedis/redis.co

    2025年11月24日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号