Roger Lipscombe
2014-10-15 14:54:13 UTC
為了緩解“貴賓犬”漏洞,我想在我的服務器(在這種情況下為TLS,而不是HTTPS)中禁用SSLv3支持。如何使用 openssl s_client
來驗證我是否已完成此操作?
為了緩解“貴賓犬”漏洞,我想在我的服務器(在這種情況下為TLS,而不是HTTPS)中禁用SSLv3支持。如何使用 openssl s_client
來驗證我是否已完成此操作?
要檢查是否已禁用SSLv3支持,請運行以下
openssl s_client -connect example.com:443 -ssl3
,它應產生類似
3073927320:error:14094410:SSL例程:SSL3_READ_BYTES:sslv3警報握手失敗:s3_pkt.c:1258:SSL警報編號403073927320:錯誤:1409E0E5:SSL例程:SSL3_WRITE_BYTES:ssl握手失敗:s3_pkt.c:596:
意味著服務器上的SSLv3已禁用。否則,連接將成功建立。
或者,您可以使用nmap 掃描服務器以獲取受支持的版本:
#nmap --script ssl-enum-ciphers example.com在2014-10-15 03:19啟動Nmap 6.47(http://nmap.org)PDTNmap掃描報告example.com(203.0.113.100)主機已啟動(0.090秒延遲).r記錄為203.0.113.100的rDNS記錄:edge.example.com未顯示:997個過濾的端口端口狀態服務80 / tcp打開http443 / tcp打開https | ssl-enum-ciphers:| ** SSLv3:找不到支持的密碼** | TLSv1.0:
在旁注中,可以將 nmap
與ssl-enum-ciphers腳本一起使用,如下所示
nmap --script ssl-enum-ciphers -p 443示例.com
您將收到這樣的響應。
端口狀態服務443 / tcp打開https | ssl-enum-ciphers:| SSLv3:|密碼: TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA-強| TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA-強| TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA-強| TLS_RSA_WITH_RC4_128_MD5-強| TLS_RSA_WITH_RC4_128_SHA-強|壓縮機: NULL | TLSv1.0:|密碼: TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA-強| TLS_RSA_WITH_RC4_128_MD5-強| TLS_RSA_WITH_RC4_128_SHA-強|壓縮機: NULL | TLSv1.1:|密碼: TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA-強| TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA-強|壓縮機: NULL | TLSv1.2:|密碼: TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA-強| TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA-強| TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256-強|壓縮機: NULL | _最低強度:強大
如您所見,它列出了所有受支持的ssl / tls版本以及密碼套件
我針對SSLv3協議的可用性創建了此測試。可能有一種更好的方法來搜索一個字符串,該字符串還表明正在使用CBC密碼,但是大多數人似乎只是想知道SSLv3是否完全可用。
需要注意的幾件事:
腳本:
for'awk'{print $ 1}'< allexternal.txt`;如果gtimeout 30 openssl s_client -connect $ ip:443 -ssl3 | grep -q'協議:SSLv3';然後回顯$ ip SSLv3檢測到>> sslv3output;否則,echo $ ip SSLv3未檢測到>> sslv3output; fi;完成
如果僅禁用了SSLv3,則還可以強制 openssl s_client
僅使用TLS:
openssl s_client -connect exmaple.com:443 -tls1 代碼>
值得注意的是,現在必須在編譯時啟用OpenSSL中的-ssl3選項。如果您在預編譯的二進製文件上運行,則該選項可能不可用。看到此問題: https://github.com/openssl/openssl/issues/6801
替代方法是testssl.sh。這將檢查協議,密碼和選定的漏洞: https://github.com/drwetter/testssl.sh