我想在一个服务器上编译和安装一个Heartbleed容易受到攻击的OpenSSL版本,这个服务器是为团队networking安全挑战而设置的(因为这些无法从Ubuntu的仓库安装,原因很明显)。
我使用提供的说明(运行./config ,然后make和make install )从源代码OpenSSL 1.0.1f下载并编译,然后尝试从我的PC 上运行GitHub中公开的可用的Heartbleed POC,但是脚本不禁止我已经收到心跳响应,并且服务器可能不易受到攻击。
运行openssl version产生以下输出: OpenSSL 1.0.1f 2014年1月6日 。 我当然安装了一个SSL证书,并且SSL访问在服务器上工作。
安装OpenSSL以与Apache 2.4.7一起工作。
谁能帮忙?
有两件事情可能在这里:
一个简单的“./configure; make; make install”默认将共享库放在/usr/local/lib 。 但是,系统安装的库将位于库searchpath的较早版本/usr/lib中。 除非您删除系统安装的OpenSSL版本,否则将无法find易受攻击的版本。
即使您正在覆盖系统库,在您重新启动Apache之前也不会提取更改。 删除的文件仍然可以访问(并占用磁盘上的空间),直到所有具有打开文件句柄的程序closures这些文件句柄。
什么服务器软件正在使用?
尽pipeOpenSSL二进制文件易受攻击,但从OS软件包安装的Web服务器很可能使用了不易受攻击的库版本。
让一个容易受到攻击的监听程序运行的最简单的方法是openssl s_server – 如果你需要一个完整的web服务器容易受到攻击,你可能需要针对易受攻击的OpenSSL进行编译。