SSL 不支持的协议错误

SSL 不支持的协议错误

我正在尝试使用 ncat 连接虚拟 Windows7 和 Linux 机器。

在 Linux 上:

ncat -vnl 4444 --ssl

在 Windows 上:

ncat -v 10.10.14.2 4444 --ssl

当我尝试从客户端连接时出现此错误:

Ncat: Failed SSL connection from 10.10.14.2: error:1417D102:SSL routines:
tls_process_client_hello:unsupported protocol

我尝试过但没有效果的方法:

  • 添加额外参数 --ssl-cert test-cert.pem --ssl-key test-key.pem
  • 尝试其他方法(Linux 客户端,Windows 服务器),我也在 Google 上搜索了很多,但是,我找不到真正的解决方案,这可能是所有问题所在。

我可以使用 openssl s_client 来实现这一点。但我需要使用 ncat,我该如何解决这个问题?

答案1

问题在于 Linux ncat 服务器仅使用 TLS1.2 进行 SSL 连接。Windows ncat 未使用 TLS1.2。这会导致不支持的协议错误。

我可以使用 Linux 上的 ncat 版本 7.60 复制此问题,并使用不同的协议选项通过 openssl s_client 连接到它。ncat 7.60 仅使用 tls1.2 进行 ssl 连接。

为了使用 ncat 实现此功能,请在两个系统上安装相同版本的 ncat。

答案2

检查/ect/ssl/openssl.conf是否有设置最低 TLS 版本的内容。

例如,我在我的配置底部发现了这一点:

[system_default_sect]
MinProtocol = TLSv1.2
CipherString = DEFAULT@SECLEVEL=2

我认为你的问题是MinProtocol设置为仅接受 TCP 1.2

这是一个更安全的配置,但如果您正在执行 PWK,那么您可能需要注释掉此部分,以便使用 ncat 可以实现反向 shell。

答案3

由于您似乎来自 PWK,请查看其论坛上的勘误表。

从他们的论坛来看,这似乎是openssl s_client可以接受的,至少直到这个问题在 Windows7 虚拟机上得到解决。

如果你真的需要要使用ncat,升级到最新版本应该有帮助。

答案4

如果你使用的是 Kali 的更新版本,则文件位于 /etc/ssl/openssl.cnf,转到 MinProtocol 选项并将其设置为 TLSv1.0。要运行的快速命令是

locate openssl.c

相关内容