OpenSSL 手动检查

释放双眼,带上耳机,听听看~!
隐藏内容,您需要满足以下条件方可查看
End

在分析网站的通信时,它使用的脚本之一是TestSSL,因为它是测试网站的加密和证书的快速方法。但是,在最终报告中,不应将此脚本的结果用作证据。这就是为什么我要对如何手动检查SSL / TLS漏洞做一个总结。

通讯协定

SSLv2

SSLv2有很多弱点,可能使攻击者可以解密修改的通信。

要检查是否在远程主机上启用了SSLv2,可以使用以下命令:

openssl s_client –ssl2 -connect example.com:443

如果支持SSLv2,则握手将完成,并且将返回服务器证书信息。否则,它将返回握手失败错误。

SSLv3

它具有一个称为POODLE的漏洞,如果攻击者使用密码块链接(CBC)模式对密码进行“ padding oracle”攻击,则该漏洞允许对通信进行解密并公开会话cookie。此外,SSLv3支持的唯一非CBC密码是RC4,它被称为加密弱密码。

要测试系统是否支持SSLv3,可以使用以下OpenSSL命令:

openssl s_client –ssl3 -connect example.com:443

如果支持SSLv3,则握手将完成并且服务器证书信息将返回,并且服务器容易受到POODLE攻击。否则,它将返回握手失败错误。

TLS> v1.0

要测试系统是否支持TLS,可以使用以下OpenSSL命令:

openssl s_client -tls1_1 -connect example.com:443
openssl s_client -tls1_2 -connect example.com:443

如果未连接,则服务器可能容易受到攻击,因为它可能会使用SSLv2或SSLv3协议。

密码

所选的密码套件指定了一组算法,客户端和服务器将使用这些算法来执行密钥交换,加密和消息身份验证。通常以类似于以下格式描述密码套件:

TLS_RSA_WITH_AES_128_CBC_SHA

其中RSA是密钥交换算法,AES_128_CBC是加密密码(使用以密码块链接模式运行的128位密钥的AES),而SHA是消息身份验证代码(MAC)算法。

服务器配置为支持的密码套件应由其安全要求来决定。通常建议将以下准则作为基准:

* The key exchange algorithm should be restricted to those which provide "perfect forward secrecy", such as Ephemeral Diffie-Hellman (DHE) or Ephemeral Elliptic Curve Diffie-Hellman (ECDHE).
* The cipher should not suffer from known cryptanalytic flaws. This rules out RC4 which has been known to have flaws for many years and in the past few years has been shown to be significantly weaker than originally thought.
* The cipher should use at least a 128 bit key (which rules out DES and Triple-DES).
* Cipher-Block Chaining (CBC) mode is prone to padding oracle attacks and should ideally be avoided altogether, but specifically it should not be used in conjunction with SSLv3 or TLSv1.0 as this can lead to vulnerability to the BEAST attack. An alternative is Galois Counter Mode (GCM) which is not affected by these problems and offers authenticated encryption.
* The message authentication algorithm should ideally be SHA256. MD5 is known to be cryptographically weak and should be avoided, and SHA1 (just denoted SHA in the cipher suite specifications) has its own weaknesses which place attacks within the realm of possibility.
* For all three algorithms, the NULL / anon setting should be avoided as these provide no security at all. "Export" algorithms should also be disabled as their short key lengths make them susceptible to brute-force attacks and other attacks such as the FREAK attack.

有两种测试密码的方法。第一个是使用openSSL:

openssl s_client -cipher NULL,EXPORT,LOW,3DES,aNULL -connect example.com:443

如果某些密码成功,则服务器的密码较弱。

第二个选项是使用Nmap,但是应手动检查结果:

nmap --script ssl-enum-ciphers -p 443 example.com

服务器首选项

可以看出可用协议的密码顺序。如果将Diffie-Hellman用作密钥交换,则密钥应为=> 2048位

证明书

服务器证书使客户端能够验证其是否连接到正确的主机。尽管SSL / TLS通常不用于HTTPS,但它还可以支持相互身份验证,在该身份验证中,客户端通过提供自己的证书来证明自己的身份。

要查看服务器证书的详细信息,可以使用以下命令:

openssl s_client -connect example.com:443 | openssl x509 -noout -text

应检查以下属性:*通用名称,主题替代名称和颁发者是一致的*信任链是可信的*证书不是自签名的*签名算法很强*服务器密钥大小> = 2048位*证书未过期

漏洞

伤心欲绝

(CVE-2009-3555)在通信过程中,OpenSSL使用“心跳”消息,该消息回显数据以验证是否正确接收了该数据。问题是,在OpenSSL 1.0.1到1.0.1f中,攻击者可以通过发送单个字节的信息来欺骗OpenSSL,但告诉服务器它发送了多达64K字节的数据,需要检查并回显。服务器将使用其内存中的随机数据作为响应。

以下版本的OpenSSL容易受到攻击:* OpenSSL 1.0.1至1.0.1f(含)

以下版本的OpenSSL不容易受到攻击:* OpenSSL 1.0.1g * OpenSSL 1.0.0分支* OpenSSL 0.9.8分支

可以使用Nmap检查此漏洞:

nmap -sV --script=ssl-heartbleed example.com -p 443

也可以使用“辅助/扫描仪/ ssl / openssl_heartbleed”模块进行检查。

概念证明:https://github.com/mpgn/heartbleed-PoC

的CSS

(CVE-2014-0224)仅当服务器和客户端都容易受到此问题的影响时,才可以利用此漏洞。如果两者之一易受伤害,则没有被剥削的风险。

此问题要求攻击者实时拦截和更改网络流量以利用此漏洞。这降低了可以利用此漏洞但并非不可能的风险,无论如何利用漏洞,更新都应是主要的补救重点。

可以使用Nmap检查此漏洞:

nmap -sV --script=ssl-ccs-injection example.com -p 443

安全重新协商

(CVE-2009-3555)TLS协议和SSL协议3.0以及更早的版本无法正确地将重新协商握手与现有连接相关联,从而允许中间人攻击者将数据插入HTTPS会话,甚至可能其他类型的受TLS或SSL保护的会话,方法是发送未经身份验证的请求,该请求由服务器在重新协商后的上下文中进行追溯处理,与“纯文本注入”攻击有关。

可以使用OpenSSL检查此漏洞:

openssl s_client -connect example.com:443

如果OpenSSL报告“不支持安全重新协商”,则服务器容易受到攻击。

安全的客户端启动的重新协商DoS

在协商新的SSL连接时,服务器通常比客户端花费更多的CPU资源。因此,如果每秒请求许多新的SSL连接,则最终可能会使用服务器的所有CPU。

可以使用OpenSSL检查此漏洞:

openssl s_client -connect example.com:443

如果按“ R”键开始连接后重新协商成功(返回HTTP响应),则服务器容易受到攻击。

犯罪

(CVE-2012-4929)轻松实现压缩率信息泄漏(CRIME)攻击是针对TLS压缩的侧通道攻击。为了进行攻击,攻击者需要对客户端发出的请求内容进行部分控制(例如,通过使用跨站点脚本漏洞强制用户的浏览器发出请求)。然后,攻击者可以观察网络上这些请求的压缩大小,并根据获得的压缩级别从中推断出其余请求的内容(例如会话cookie)。

可以使用OpenSSL检查此漏洞:

openssl s_client -connect example.com:443

在支持压缩的服务器上,将收到类似于以下内容的响应,其中包含有关压缩的详细信息。“压缩:zlib压缩”和“压缩:1(zlib压缩)”行表示远程服务器容易受到CRIME攻击。否则,“压缩:无”表示该服务器拒绝使用TLS级压缩。

破坏

(CVE-2013-3587)BREACH攻击类似于CRIME攻击,但是这次利用HTTP压缩再次推断出受攻击者影响的请求的内容。

可以使用OpenSSL检查此漏洞:

openssl s_client -connect example.com:443

提交以下内容将使我们了解服务器是否支持HTTP压缩:

GET / HTTP/1.1
Host: example.com
Accept-Encoding: compress, gzip

如果响应中包含编码数据,则表明支持HTTP压缩;因此,远程主机容易受到攻击。否则,服务器将以未压缩的数据作为响应,表明它不容易受到攻击。

泡菜

(CVE-2013-3587)在某些条件下,可以使用密码块链接(CBC)模式对密码进行“填充预言”攻击。这可以允许通信的解密和会话cookie的公开。

如果服务器支持SSLv3,则容易受到POODLE攻击。

TLS_FALLBACK_SCSV

(RFC 7507)TLS代理应协商客户端和服务器支持的协议的最高版本。客户端广告他们支持的协议的最高版本。服务器选择其支持的最高版本,然后在ServerHello消息中发送协商的版本号。

许多广泛使用的破坏性TLS实现无法应对他们不了解的版本。这导致大量TLS会话在TLS 1.1推出期间中断,并允许攻击者攻击较旧的SSL版本。

怪物

(CVE-2015-0204)它允许攻击者拦截易受攻击的客户端和服务器之间的HTTPS连接,并迫使它们使用弱化的加密,攻击者可以破坏该加密能力以窃取或操纵敏感数据。该站点专用于跟踪攻击的影响并帮助用户测试他们是否容易受到攻击。

可以使用OpenSSL检查此漏洞:

openssl s_client -cipher EXPORT -connect example.com:443

如果某些服务器允许使用EXPORT密码,则它很容易受到攻击。

(CVE-2016-0703)DROWN使攻击者能够破坏加密并读取或窃取敏感通信,包括密码,信用卡号,商业秘密或财务数据。

可以使用OpenSSL检查此漏洞:

openssl s_client –ssl2 -connect example.com:443

如果支持SSLv2,则服务器容易受到攻击。

洛迦

(CVE-2015-4000)Logjam攻击使中间人攻击者可以将易受攻击的TLS连接降级为512位导出级加密。这使攻击者可以读取和修改通过连接传递的所有数据。该攻击使人联想到FREAK攻击,但这是由于TLS协议中的缺陷而不是实施漏洞,并且攻击了Diffie-Hellman密钥交换而不是RSA密钥交换。攻击会影响所有支持DHE_EXPORT密码的服务器

可以使用OpenSSL检查此漏洞:

openssl s_client -cipher EXPORT -connect example.com:443

如果某些服务器允许使用EXPORT密码,则它很容易受到攻击。

(CVE-2011-3389)此漏洞是在很短时间内对HTTPS连接的机密性的攻击。也就是说,它提供了一种从加密会话中提取未加密明文的方法。TLS 1.0上的某些配置通过使用带有链接初始化矢量的密码块链接(CBC)模式对数据进行加密,这允许中间人攻击者通过HTTP会话上的按块选择边界攻击(BCBA)获得纯文本HTTP标头。 。

有两件事要检查。它使用sslv3或tls1和CBC密码:

openssl s_client -[sslv3/tls1] -cipher CBC_CIPHER -connect example.com:443

如果服务器允许SSLv3或TLS1,并且正在使用带有CBC的密码,则服务器容易受到BEAST攻击。

RC4

RC4攻击暴露了RC4加密算法的弱点。更准确地说,在大多数使用RC4的情况下,这些弱点可用于揭示以前被认为已安全加密的信息。

可以使用OpenSSL检查此漏洞:

openssl s_client -cipher RC4 -connect example.com:443

如果连接,则服务器容易受到攻击。

好运13

(CVE-2013-0169)幸运的十三攻击是针对使用TLS连接的CBC密码套件的传输层安全性(TLS)协议实现的加密定时攻击,该协议未正确考虑对MAC检查的定时侧信道攻击处理格式错误的填充的要求,使远程攻击者可以进行区分攻击和明文恢复攻击。

可以使用OpenSSL检查此漏洞:

openssl s_client -cipher CBC_CIPHER -connect example.com:443

如果服务器支持CBC3密码,则容易受到攻击。

甜32

(CVE-2016–2183和CVE-2016–6329)将小块大小(64位)与CBC(密码块链)操作模式(如Triple-DES和Blowfish)结合使用,可使攻击者解密流量在服务器与其客户端之间。这些算法通常用于多种应用程序和协议中,例如VPN,SSH,SSL和IPSec。要执行此攻击,必须能够生成和捕获大量网络流量(通常约为78GB)。

可以使用OpenSSL检查此漏洞:

openssl s_client -cipher 3DES -connect example.com:443

如果服务器支持3DES或Blowfish,则容易受到攻击。

/content_hide]

系统安全质量好文

粘滞键

2020-7-4 17:43:50

系统安全质量好文

SSH 隧道

2020-7-4 17:50:51

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
有新私信 私信列表
搜索