解决方案: 禁用 RSA key exchange:只支持临时密钥交换算法(如 ECDHE_RSA 或 ECDHE_ECDSA)。 强制 TLS 1.2 或 TLS 1.3,并优先选择支持前向保密的密码套件,比如: TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
简短几句话,弄死人。服务器Apache和nginx并没有开启ssl,根据报告中,服务器开放的端口,发现可能是RDP服务,没错,远程桌面使用了这个协议。
Windows 2012 R2 修复处理办法,其他操作系统没有尝试:
两个脚本,分别以管理员权限运行
先运行Enhanced开头的,再运行Force开头的,运行完以后,按 Win+R 输入 gpedit.msc 打开组策略编辑器。
导航至:
计算机配置 → 管理模板 → 网络 → SSL配置设置
找到 “SSL 密码套件顺序” 策略(若为英文系统则是 SSL Cipher Suite Order)。
双击打开,选择 “已启用”,在 “SSL 密码套件” 输入框中仅填入 ECDHE 套件:
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256,TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256_P256,TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384_P256
最后,重启服务器,搞定。
验证方法:
nmap -p 63333 --script ssl-enum-ciphers [目标IP] #nmap需要安装扫描工具,一般服务器不让安,也可以安装openssl来解决,对应命令是: # 检测TLS 1.0下的RSA套件 openssl s_client -connect [目标IP]:[目标端口] -tls1 -cipher RSA 2>NUL | findstr "Cipher" # 检测TLS 1.2下的RSA套件 openssl s_client -connect [目标IP]:[目标端口] -tls1_2 -cipher RSA 2>NUL | findstr "Cipher"
要注意,openssl一定要确认安装了,才能使用上面命令。
最后,如果出现:
表示,处理完毕。
------------正 文 已 结 束, 感 谢 您 的 阅 读 (折雨的天空)--------------------
转载请注明本文标题和链接:《目标主机支持RSA密钥交换【原理扫描】》
发表评论