最近关于一个新的OpenSSL漏洞的消息(只影响1.0.2 ),我希望进行一些研究,我想知道是否有一种方法来识别服务器正在运行的OpenSSL版本(不使用Nmap)。理想情况下,我希望使用OpenSSL本身来识别服务器版本。
有任何方法可以使用s_client和其他params来强制服务器丢弃正在使用的版本吗?也许是关键的重新谈判?
谢谢。
发布于 2016-02-02 14:28:45
在TLS规范中没有什么比"TLS堆栈类型和版本“更好的了。OpenSSL本身也没有一种非标准特性,它允许您向服务器询问版本。因此,您无法在协议级别上获得这样明确的信息。您可能会尝试根据行为更改或特定密码来猜测版本,这些密码只存在于特定的OpenSSL版本之后,但不太可能以这种方式得到非常具体的结果。
您还可以在HTTP服务器的服务器头中获得一个版本,即类似于Apache/2.2.24 (Unix) mod_ssl/2.2.24 OpenSSL/1.0.0.e的内容。但这很容易被伪造。
另一方面,我怀疑远程获取OpenSSL版本是否有用。至少,这不能用于确定服务器是否受到特定安全问题的影响。针对安全问题的修复通常是由分发服务器支持的,因此它可能仍然是一些OpenSSL 1.0.2e,但是它包含了来自后期版本的安全性修复(而不是特性)。
发布于 2016-02-02 20:16:32
横幅很容易被伪造。但是,如果服务器使用AES-GCM和TLS1.2进行应答,那么您知道在另一端得到了一个非常新的OpenSSL。我会使用nmap的ssl-密码-枚举插件来确定哪些协议和密码可用,并将它们映射回支持它们的版本。
https://security.stackexchange.com/questions/112525
复制相似问题