openssl漏洞介绍

linuxopenssl教程(openssl漏洞介绍和复现报告)(1)

Heartbleed(心脏滴血)漏洞(CVE-2014-0160,CNNVD-201404-073)是Openssl中的一个重大安全漏洞,2014年4月7号,由国外黑客曝光。该漏洞可以让攻击者获得服务器上64K内存中的数据内容。由于使用OpenSSL的源代码的网站数量巨大,因此该漏洞影响十分严重。

受影响系统:

OpenSSL Project OpenSSL 1.0.2-beta1

OpenSSL Project OpenSSL 1.0.2-beta

OpenSSL Project OpenSSL 1.0.1f

OpenSSL Project OpenSSL 1.0.1e

OpenSSL Project OpenSSL 1.0.1d

OpenSSL Project OpenSSL 1.0.1c

OpenSSL Project OpenSSL 1.0.1b

OpenSSL Project OpenSSL 1.0.1a

OpenSSL Project OpenSSL 1.0.1

linuxopenssl教程(openssl漏洞介绍和复现报告)(2)

不受影响系统:

OpenSSL Project OpenSSL 1.0.2-beta2

OpenSSL Project OpenSSL 1.0.1g

OpenSSL Project OpenSSL 1.0.0

OpenSSL Project OpenSSL 0.9.8

OpenSSL中的ccs注入漏洞(CVE-2014-0224)。在OpenSSL建立握手连接的阶段,会发送一种名为ChangeCipherSpec(CCS)的请求,在发送该请求时,攻击者可以通过中间人攻击来劫持服务端与客户端之间的加密通信。

受影响系统:

OpenSSL Project OpenSSL < 1.0.1h

OpenSSL Project OpenSSL < 1.0.0m

OpenSSL Project OpenSSL < 0.9.8za

不受影响系统:

OpenSSL Project OpenSSL 1.0.1h

OpenSSL Project OpenSSL 1.0.0m

OpenSSL Project OpenSSL 0.9.8za

linuxopenssl教程(openssl漏洞介绍和复现报告)(3)

无效的DTLS碎片漏洞(CVE-2014-0195):向OpenSSL DTLS的客户端或服务端发送无效的DTLS碎片能够导致缓冲区溢出攻击。潜在的攻击者能够利用该漏洞在受影响的客户端或服务端中执行任意代码。

受影响系统:

OpenSSL Project OpenSSL < 1.0.1h

OpenSSL Project OpenSSL < 1.0.0m

OpenSSL Project OpenSSL < 0.9.8za

不受影响系统:

OpenSSL Project OpenSSL 1.0.1h

OpenSSL Project OpenSSL 1.0.0m

OpenSSL Project OpenSSL 0.9.8za

DTLS死循环DOS攻击(CVE-2014-0221):远程攻击者能够发送无效的DTLS握手请求来使目标的处理逻辑进入死循环状态并最终耗尽资源而崩溃。该攻击仅影响将OpenSSL作为DTLS客户端的应用。

受影响系统:

OpenSSL Project OpenSSL < 1.0.1h

OpenSSL Project OpenSSL < 1.0.0m

OpenSSL Project OpenSSL < 0.9.8za

不受影响系统:

OpenSSL Project OpenSSL 1.0.1h

OpenSSL Project OpenSSL 1.0.0m

OpenSSL Project OpenSSL 0.9.8za

通过上面的漏洞,我们进行一个内网安全测试检测。

Openssl使用脚本

开始使用msf脚本,serarch 漏洞编号

linuxopenssl教程(openssl漏洞介绍和复现报告)(4)

linuxopenssl教程(openssl漏洞介绍和复现报告)(5)

linuxopenssl教程(openssl漏洞介绍和复现报告)(6)

第四个漏洞在msf脚本里面没有搜索到,故而针对前两个漏洞进行测试。其实第二个和第三个漏洞以及第四个漏洞影响的版本都是一样的。

首先看第一个漏洞

CVE-2014-0160(心脏出血漏洞)

步骤:

use auxiliary/scanner/ssl/openssl_heartbleed

set RHOSTS 192.168.10.0/24

set THREADS 100

run

linuxopenssl教程(openssl漏洞介绍和复现报告)(7)

扫描发现10网段的几个服务器存在该漏洞,查看漏洞服务器openssl版本都为:

linuxopenssl教程(openssl漏洞介绍和复现报告)(8)

再看第二个漏洞

CVE-2014-0224(ccs注入漏洞)

步骤:

use auxiliary/scanner/ssl/openssl_ccs

set RHOSTS 172.16.201.0/24

set TLS_VERSION 1.2(如果是SSLv3的请自己选填)

run

linuxopenssl教程(openssl漏洞介绍和复现报告)(9)

发现该版本为:

linuxopenssl教程(openssl漏洞介绍和复现报告)(10)

发现得到的结果为无效的ccs消息,说明这个版本应该是防御住了ccs注入漏洞。

然后再试试10网段服务器进行扫描:

set RHOSTS 192.168.10.0/24

run

linuxopenssl教程(openssl漏洞介绍和复现报告)(11)

发现openssl 1.0.1h版本的也显示为无效的ccs消息。

通过上面的分析,如果升级为openssl 1.0.1h版本虽然也可以防御ccs注入漏洞问题。但有意思的是,openss 1.0.1h 版本的会导致服务器出现心脏出血漏洞。

修复建议:

1.存在心脏出血漏洞的服务器补丁修复为openssl为1.0.1g版本。

,