服务器

服务器

有没有办法检查一些内部服务CVE-2014-0160(最好使用opensslCLI)?

不能仅使用以下命令测试所有内容:测试你的服务器是否存在 Heartbleed(CVE-2014-0160)

答案1

您可以尝试:

openssl s_client -connect domain.com:443 -tlsextdebug 2>&1 | grep 'server extension "heartbeat" (id=15)' || echo safe

https://devcentral.f5.com/questions/openssl-and-heart-bleed-vuln

答案2

例如,您可以使用这个脚本: http://rehmann.co/projects/heartbeat/ssltest.py

答案3

以下是几个本地 Heartbleed 漏洞检测器/检查器:

github 上的 titanous似乎仍在积极开发中,而 titanous 还发布了用于 Heartbleed 检测的 Go 编程代码,截至今天早上,其消息比 Filippo 更好,并且上次更新时间是 32 分钟前。它似乎遵循 Go 许可证,但我没有进行全面比较;类似于 BSD 3 条款许可证。

github 上的 musalbas发布了 Python 程序“ssltest.py”,这是 @MichelZ 的答案链接的代码的一个变体,经过修改,可以一次处理大量列表,未列出许可证。Musalbas 还发布了截至大约 5 小时前扫描前 100、1000、10000 和 100 万个互联网网站的结果列表。

Filippo.io 是最早的网站之一,他们在 github 上发布了他们的代码具有 MIT 许可证(Go 编程语言)。

Codenomicon 防御系统似乎也能检测到 Heartbleed。

莱肯施泰因当然发布了几个小时前修改过的 Pacemaker Python 客户端检查器,以及原始的 Stafford 版本的 ssltest.py。没有列出特定的许可证。

Metasploit也正在迅速获得 Heartbleed 测试,包括此处链接的服务器检查来自@HDMoore 和 @Lekensteyn 的客户检查

此外,您可能希望通过安装新的 Snort 规则来获得一些自动攻击检测和中断实时入侵指标,因为攻击是双向的(如果您的客户端存在漏洞,它也可能受到攻击)。这不会告诉您过去是否有人攻击过该网站,但它可能会告诉您现在是否有人在攻击您。

  • 警报 tcp any [!80,!445] -> any [!80,!445] (msg:“FOX-SRT - 可疑 - SSLv3 大型心跳响应”;流程:established,to_client;内容:“|18 03 00|”;深度:3;byte_test:2,>,200,3,big;byte_test:2,<,16385,3,big;阈值:类型限制,跟踪 by_src,计数 1,秒 600;参考:cve,2014-0160;类类型:bad-unknown;sid:1000000;修订版:4;)

  • 警报 tcp any [!80,!445] -> any [!80,!445] (msg:“FOX-SRT - 可疑 - TLSv1 大型心跳响应”;流程:established,to_client;内容:“|18 03 01|”;深度:3;byte_test:2,>,200,3,big;byte_test:2,<,16385,3,big;阈值:类型限制,跟踪 by_src,计数 1,秒 600;参考:cve,2014-0160;类类型:bad-unknown;sid:1000001;修订版:4;)

  • 警报 tcp any [!80,!445] -> any [!80,!445] (msg:"FOX-SRT - 可疑 - TLSv1.1 大型心跳响应"; flow:established,to_client; content:"|18 03 02|";depth:3;byte_test:2,>,200,3,big;byte_test:2,<,16385,3,big;阈值:type limit,track by_src,count 1,seconds 600;reference:cve,2014-0160;classtype:bad-unknown;sid:1000002;rev:4;)

  • 警报 tcp any [!80,!445] -> any [!80,!445] (msg:"FOX-SRT - 可疑 - TLSv1.2 大型心跳响应"; flow:established,to_client; content:"|18 03 03|";depth:3;byte_test:2,>,200,3,big;byte_test:2,<,16385,3,big;阈值:type limit,track by_src,count 1,seconds 600;reference:cve,2014-0160;classtype:bad-unknown;sid:1000003;rev:4;)

也请感谢 snort.org发布一套 Heartbleed 检测规则这些通常只会在进入社区之前的前 30 天出现在他们的 VRT(付费订阅)规则列表中:

  • 警报 tcp $EXTERNAL_NET any -> $HOME_NET 443(msg:“SERVER-OTHER OpenSSL SSLv3 心跳读取溢出尝试”;流:to_server,已建立;内容:“|18 03 00|”;深度:3;dsize:>40;检测过滤器:跟踪 by_src,计数 3,秒 1;元数据:策略平衡 ips 丢弃,策略安全 ips 丢弃,服务 ssl;参考:cve,2014-0160;类类型:尝试侦察;sid:30510;修订:2;)

  • 警报 tcp $EXTERNAL_NET any -> $HOME_NET 443(msg:“SERVER-OTHER OpenSSL TLSv1 心跳读取溢出尝试”;流:to_server,已建立;内容:“|18 03 01|”;深度:3;dsize:>40;检测过滤器:跟踪 by_src,计数 3,秒 1;元数据:策略平衡 ips 丢弃,策略安全 ips 丢弃,服务 ssl;参考:cve,2014-0160;类类型:尝试侦察;sid:30511;修订:2;)

  • 警报 tcp $EXTERNAL_NET any -> $HOME_NET 443(msg:“SERVER-OTHER OpenSSL TLSv1.1 心跳读取溢出尝试”;流:to_server,已建立;内容:“|18 03 02|”;深度:3;dsize:>40;检测过滤器:跟踪 by_src,计数 3,秒 1;元数据:策略平衡 ips 丢弃,策略安全 ips 丢弃,服务 ssl;参考:cve,2014-0160;类类型:尝试侦察;sid:30512;修订:2;)

  • 警报 tcp $EXTERNAL_NET any -> $HOME_NET 443(msg:“SERVER-OTHER OpenSSL TLSv1.2 心跳读取溢出尝试”;流:to_server,已建立;内容:“|18 03 03|”;深度:3;dsize:>40;检测过滤器:跟踪 by_src,计数 3,秒 1;元数据:策略平衡 ips 丢弃,策略安全 ips 丢弃,服务 ssl;参考:cve,2014-0160;类类型:尝试侦察;sid:30513;修订:2;)

  • 警报 tcp $HOME_NET 443 -> $EXTERNAL_NET 任何(msg:“SERVER-OTHER SSLv3 大型心跳响应 - 可能的 ssl heartbleed 尝试”;流:to_client,已建立;内容:“|18 03 00|”;深度:3;byte_test:2,>,128,0,相对;检测过滤器:跟踪 by_dst,计数 5,秒 60;元数据:策略平衡 ips 丢弃,策略安全 ips 丢弃,服务 ssl;参考:cve,2014-0160;类类型:尝试侦察;sid:30514;修订:3;)

  • 警报 tcp $HOME_NET 443 -> $EXTERNAL_NET 任何(msg:“SERVER-OTHER TLSv1 大型心跳响应 - 可能的 ssl heartbleed 尝试”;流程:to_client,已建立;内容:“|18 03 01|”;深度:3;byte_test:2,>,128,0,相对;检测过滤器:跟踪 by_dst,计数 5,秒 60;元数据:策略平衡 ips 丢弃,策略安全 ips 丢弃,服务 ssl;参考:cve,2014-0160;类类型:尝试侦察;sid:30515;修订:3;)

  • 警报 tcp $HOME_NET 443 -> $EXTERNAL_NET 任何(msg:“SERVER-OTHER TLSv1.1 大型心跳响应 - 可能的 ssl heartbleed 尝试”;流程:to_client,已建立;内容:“|18 03 02|”;深度:3;byte_test:2,>,128,0,相对;检测过滤器:跟踪 by_dst,计数 5,秒 60;元数据:策略平衡 ips 丢弃,策略安全 ips 丢弃,服务 ssl;参考:cve,2014-0160;类类型:尝试侦察;sid:30516;修订:3;)

  • 警报 tcp $HOME_NET 443 -> $EXTERNAL_NET 任何(msg:“SERVER-OTHER TLSv1.2 大型心跳响应 - 可能的 ssl heartbleed 尝试”;流程:to_client,已建立;内容:“|18 03 03|”;深度:3;byte_test:2,>,128,0,相对;检测过滤器:跟踪 by_dst,计数 5,秒 60;元数据:策略平衡 ips 丢弃,策略安全 ips 丢弃,服务 ssl;参考:cve,2014-0160;类类型:尝试侦察;sid:30517;修订:3;)

答案4

可以使用 ssltest.py 工具测试服务器。可以使用 pacemaker 工具测试客户端。两者都可以在https://github.com/Lekensteyn/pacemaker

服务器

运行测试客户端,它将显示服务器是否存在漏洞:

python2 ssltest.py example.com

客户

启动服务器(默认端口4433):

./pacemaker.py

现在让客户端连接到https://address.of.machine:4433/服务器并查看输出。MySQL 也受支持。截至撰写本文时,我尚未添加 STARTTLS 支持。

请务必添加--help任一工具以获得更多选项。

相关内容