2021-12-05

OpenSSL Heartbleed Vulnerability (CVE-2014-0160)

一 什么是心脏滴血漏洞

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

二 什么是ssl

    OpenSSL是一个开放源代码的软件库包,应用程序可以使用这个包来进行安全通信,避免窃听,同时确认另一端连接者的身份。这个包广泛被应用在互联网的网页服务器上。下图是知名的心脏滴血漏洞图片。


心脏滴血漏洞

三  漏洞描述

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

四 漏洞危害

   可能可以获取到服务器的私钥,用户cookie和密码等。

五 漏洞复现详解

1 首先打开vulhub 启动docker环境 docker-compose up -d 如图所示

启动

2 然后打开http://192.168.213.129  看到如下界面 hello

hello

3  使用nmap 的脚本进行检测漏洞是否存在。nmap -sV -p 443 --script ssl-heartbleed.nse 127.0.0.1如下图所示 

检测漏洞

4 使用msf进行漏洞利用。我们打开msf 查找heartbleed模块:如下图所示  #msf>search heartbleed

查找heartbleed模块:

5 查看需要设置哪些选项      msf6 auxiliary(scanner/ssl/openssl_heartbleed)> show options

这里我们需要设置RHOSTS,RPORT  设置verbose,这个设置要设置成true才能看到泄露的信息

具体如下图所示

查看选项

6  执行exploit 会得到结果 如下图所示 这就是整个漏洞复现过程 

结果

六 漏洞修复

1.将受影响的服务器下线,避免它继续泄露敏感信息。

2.停止旧版的 openssl 服务,升级 openssl 到新版本,并重新启动。

3.生成新密钥。(因为攻击者可能通过漏洞获取私钥。)将新密钥提交给你的CA,获得新的认证之后在服务器上安装新密钥。

你可能感兴趣的:(2021-12-05)