我想在为团队网络安全挑战设置的服务器上编译并安装存在 Heartbleed 漏洞的 OpenSSL 版本(因为出于显而易见的原因,这些版本无法从 Ubuntu 的存储库中安装)。
我按照提供的说明(运行./config
,然后make
和make install
)从源 OpenSSL 1.0.1f 下载并编译,并尝试运行公开的 Heartbleed POC来自 GitHub从我的电脑,然而脚本通知我没有收到心跳响应并且服务器可能不存在漏洞。
运行openssl version
产生以下输出:OpenSSL 1.0.1f 2014 年 1 月 6 日。我当然安装了 SSL 证书,并且 SSL 访问在服务器上有效。
OpenSSL 已安装,可与 Apache 2.4.7 配合使用。
有人可以帮忙吗?
答案1
这里可能发生两件事:
简单的“./configure; make; make install”将默认将共享库放在 中
/usr/local/lib
。但是,系统安装的库将放在 中/usr/lib
,它在库搜索路径中的位置较早。除非您删除系统安装的 OpenSSL 版本,否则将找不到易受攻击的版本。即使您正在覆盖系统库,更改也不会生效,直到您重新启动 Apache。已删除的文件仍可访问(并占用磁盘空间),直到所有打开这些文件句柄的程序都关闭这些文件句柄为止。
答案2
正在使用什么服务器软件?
尽管 OpenSSL 二进制文件存在漏洞,但从 OS 包安装的 Web 服务器很可能正在使用不易受攻击的库版本。
运行易受攻击的监听器的最简单方法是openssl s_server
- 如果您需要一个完整的 Web 服务器来抵御攻击,则您可能需要针对易受攻击的 OpenSSL 进行编译。