有没有办法检查一些内部服务与CVE – CVE-2014-0160 (最好使用openssl CLI)?
我无法仅使用以下方法testing所有内容: testing您的服务器是否为Heartbleed(CVE-2014-0160) 。
你可以尝试:
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
您可以使用此脚本,例如: http : //rehmann.co/projects/heartbeat/ssltest.py
这里有几个本地Heartbleed漏洞检测器/检查器:
github上的titanous似乎还在积极的开发之中,而titanous也发布了Go的Heartbleed检测编程代码,截至今天早上比Filippo有更好的信息,并且在32分钟前更新了。 虽然我没有做一个完整的比较,但似乎是Go的许可证。 类似于BSD 3条款许可证。
github上的musalbas发布了python程序“ssltest.py”,这个代码的变体@ MichelZ的答案链接被修改为一次执行大型列表,没有列出许可证。 Musalbas还发布了大约5小时前扫描前100,100,1,000和100万个互联网站点的结果列表。
Filippo.io是第一批网站之一,他们使用MIT许可证(Go编程语言) 在github上发布了他们的代码 。
Codenomicon Defensics似乎也能检测到Heartbleed。
Lekensteyn当然发布了几个小时前修改的pacemaker python客户端检查器,以及ssltest.py的原始Stafford版本。 没有列出特定的许可证。
Metasploit也非常迅速地获得Heartbleedtesting,包括链接在这里的服务器检查以及来自@HDMoore和@Lekensteyn的客户端检查
此外,您可能希望通过从实时攻击指标安装新的Snort规则来获得一些自动攻击检测和中断,因为攻击可能是双向的(如果客户端易受攻击,也可能会受到攻击)。 这不会告诉你是否有其他人曾经攻击过这个网站,但它可能会告诉你是否有人攻击你。
警报tcp任何[!80,!445] – >任何[!80,!445](msg:“FOX-SRT-可疑 – SSLv3大心跳响应”;stream:build立,to_client;内容:“| 18 03 00 | “; depth:3; byte_test:2,>,200,3,big; byte_test:2,<,16385,3,big;阈值:types限制,track by_src,count 1,seconds 600; reference:cve,2014- 0160; classtype:bad-unknown; sid:1000000; rev:4;)
警告tcp任何[!80,!445] – >任意[!80,!445](msg:“FOX-SRT-可疑 – TLSv1大心跳响应”;stream:build立,to_client;内容:“| 18 03 01 | “; depth:3; byte_test:2,>,200,3,big; byte_test:2,<,16385,3,big;阈值:types限制,track by_src,count 1,seconds 600; reference:cve,2014- 0160; classtype:bad-unknown; sid:1000001; rev:4;)
alert tcp any [!80,!445] – > any [!80,!445](msg:“FOX-SRT – Suspicious – TLSv1.1 Large Heartbeat Response”; flow:established,to_client; content:“| 02 |“; depth:3; byte_test:2,>,200,3,big; byte_test:2,<,16385,3,big;阈值:types限制,track by_src,count 1,seconds 600; reference:cve, 2014-0160; classtype:bad-unknown; sid:1000002; rev:4;)
alert tcp any [!80,!445] – > any [!80,!445](msg:“FOX-SRT-Suspicious -TLSv1.2 Large Heartbeat Response”; flow:established,to_client; content:“| 03 |“; depth:3; byte_test:2,>,200,3,big; byte_test:2,<,16385,3,big;阈值:types限制,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任何 – > $ HOME_NET 443(msg:“SERVER-OTHER OpenSSL SSLv3心跳读取溢出尝试”; flow:to_server,established; content:“| 18 03 00 |”; depth:3; dsize:> 40; detection_filter:track by_src,计数3,秒数1;元数据:策略平衡ips丢弃,策略安全性ips丢弃,服务ssl;引用:cve,2014-0160;types:尝试重新侦听; sid:30510; rev:2; )
alert tcp $ EXTERNAL_NET any – > $ HOME_NET 443(msg:“SERVER-OTHER OpenSSL TLSv1 heartbeat read overrun attempt”; flow:to_server,established; content:“| 18 03 01 |”; depth:3; dsize:> 40; detection_filter:track by_src,计数3,秒数1;元数据:策略平衡ips丢弃,策略安全性ips丢弃,服务ssl;引用:cve,2014-0160;分类:尝试重新侦听; sid:30511; rev:2; )
alert tcp $ EXTERNAL_NET any – > $ HOME_NET 443(msg:“SERVER-OTHER OpenSSL TLSv1.1 heartbeat read overrun attempt”; flow:to_server,established; content:“| 18 03 02 |”; depth:3; dsize:> 40; detection_filter:track by_src,count 3,seconds 1;元数据:策略均衡-ip掉,策略security-ips drop,service ssl;引用:cve,2014-0160;types:attempt-recon; sid:30512; rev: 2)
alert tcp $ EXTERNAL_NET any – > $ HOME_NET 443(msg:“SERVER-OTHER OpenSSL TLSv1.2 heartbeat read overrun attempt”; flow:to_server,established; content:“| 18 03 03 |”; depth:3; dsize:> 40; detection_filter:track by_src,count 3,seconds 1;元数据:策略均衡-ip掉,策略安全-ip掉,服务ssl;引用:cve,2014-0160;分类:尝试-rep; sid:30513; rev: 2)
alert tcp $ HOME_NET 443 – > $ EXTERNAL_NET any(msg:“SERVER-OTHER SSLv3大心跳响应 – 可能ssl heartbleed企图”; flow:to_client,established; content:“| 18 03 00 |”; depth:3; byte_test: 2,>,128,0,relative; detection_filter:track by_dst,count 5,seconds 60;元数据:策略均衡 – 丢弃,策略安全性 – 丢弃,服务ssl;引用:cve,2014-0160;分类:企图 – recon; sid:30514; rev:3;)
alert tcp $ HOME_NET 443 – > $ EXTERNAL_NET any(msg:“SERVER-OTHER TLSv1 large heartbeat response – possible ssl heartbleed attempt”; flow:to_client,established; content:“| 18 03 01 |”; depth:3; byte_test: 2,>,128,0,relative; detection_filter:track by_dst,count 5,seconds 60;元数据:策略均衡 – 丢弃,策略安全性 – 丢弃,服务ssl;引用:cve,2014-0160;分类:企图 – recon; sid:30515; rev:3;)
警告tcp $ HOME_NET 443 – > $ EXTERNAL_NET any(msg:“SERVER-OTHER TLSv1.1大心跳响应 – 可能的ssl heartbleed企图”;stream:to_client,build立;内容:“| 18 03 02 |”;深度:3; byte_test:2,>,128,0,relative; detection_filter:track by_dst,count 5,seconds 60;元数据:策略平衡 – 丢弃,策略安全性 – 丢弃,服务ssl;引用:cve,2014-0160;分类:企图侦察; sid:30516; rev:3;)
alert tcp $ HOME_NET 443 – > $ EXTERNAL_NET any(msg:“SERVER-OTHER TLSv1.2 large heartbeat response – possible ssl heartbleed attempt”; flow:to_client,established; content:“| 18 03 03 |”; depth:3; byte_test:2,>,128,0,relative; detection_filter:track by_dst,count 5,seconds 60;元数据:策略平衡 – 丢弃,策略安全性 – 丢弃,服务ssl;引用:cve,2014-0160;分类:企图侦察; sid:30517; rev:3;)
可以使用ssltest.py工具testing服务器。 客户可以使用起搏器工具进行testing。 两者都可以在https://github.com/Lekensteyn/pacemaker中find。
运行testing客户端,它会显示服务器是否易受攻击:
python2 ssltest.py example.com
启动服务器(默认为端口4433 ):
./pacemaker.py
现在让客户端连接到https://address.of.machine:4433/并查看服务器输出。 MySQL也支持。 在撰写本文时,我还没有添加STARTTLS支持。
一定要添加 – 帮助任何工具更多的select。