CVE-2014-0160

Heartbleed 复现

实验环境

环境仅供参考

  • CentOS Linux release 7.7.1908
  • VMware® Workstation 15 Pro - 15.0.0 build-10134415

安装 openssl 1.0.1c

下载源码包

wget http://www.openssl.org/source/openssl-1.0.1c.tar.gz

解压缩源码包

tar -zxvf openssl-1.0.1c.tar.gz
cd openssl-1.0.1c

安装依赖包

yum install -y gcc
yum install -y make

安装 openssl-1.0.1c

./config
make

# 编译安装时报错:" POD document had syntax errors ",主要是因为 openssl-1.0.1c 版本和 perl 的版本不兼容.
# 解决方案:删除 pod2man 文件( rm -rf /usr/bin/pod2man)
make install

配置环境变量(在文件末尾添加如下内容)

vim /etc/profile
# add openssl short path
export OPENSSL=/usr/local/ssl/bin
export PATH=$OPENSSL:$PATH:$HOME/bin
source /etc/profile

验证配置

openssl

OpenSSL> version
OpenSSL 1.0.1c 10 May 2012

创建安装目录

cd /usr/local/
mkdir httpd
cd httpd

mkdir {apache,apr,apr-util}

安装依赖包 libtools-ltdl-devel、expat-devel

在网站 http://www.rpmfind.net/linux/rpm2html/search.php?query=libtool-ltdl-devel,
下载 libtool-ltdl-devel-2.4.2-22.el7_3.x86_64.rpm

wget https://www.rpmfind.net/linux/centos/7.6.1810/os/x86_64/Packages/libtool-ltdl-devel-2.4.2-22.el7_3.x86_64.rpm

yum -y install expat-devel
rpm -ivh libtool-ltdl-devel-2.4.2-22.el7_3.x86_64.rpm

安装 apr、apr-until

wget http://mirrors.tuna.tsinghua.edu.cn/apache//apr/apr-1.6.5.tar.gz
wget http://mirrors.tuna.tsinghua.edu.cn/apache//apr/apr-util-1.6.1.tar.gz

cd /usr/local/
tar -xvf apr-1.6.5.tar.gz
cd apr-1.6.5
./configure --prefix=/usr/local/httpd/apr
make
make install
cd /usr/local/

tar -xvf apr-util-1.6.1.tar.gz
cd apr-util-1.6.1
./configure --prefix=/usr/local/httpd/apr-util/ --with-apr=/usr/local/httpd/apr
make && make instal

安装 httpd 2.2.34(记得配置防火墙:开启 80 和 443 端口)

cd
wget http://archive.apache.org/dist/httpd/httpd-2.2.34.tar.gz
tar -zvxf httpd-2.2.34.tar.gz
cd httpd-2.2.34
export LDFLAGS=-ldl
./configure --prefix=/usr/local/httpd/apache --enable-so --enable-rewrite --enable-ssl --with-ssl=/usr/local/ssl --with-apr=/usr/local/httpd/apr --with-apr-util=/usr/local/httpd/apr-util
make && make install

firewall-cmd --zone=public --add-service=http --permanent
firewall-cmd --zone=public --add-service=https --permanent
firewall-cmd --reload

修改配置(修改 98 行和 417 行的内容)

cd /usr/local/httpd/apache/conf/
vim httpd.conf
ServerName localhost:80
Include conf/extra/httpd-ssl.conf

添加认证秘钥

cd /usr/local/httpd/apache/conf/
openssl genrsa -out server.key 2048
openssl req -new -key server.key -out server.csr
openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt

运行服务

cd
cd httpd-2.2.34
./httpd

漏洞利用

下载 payload:https://www.exploit-db.com/exploits/32745

执行命令:python Heartbleed.py xxx.xxx.xxx.xxx

  • 仅供学习,在自己的局域网环境中复现实验,切勿用于商业用途,后果自负。