題:
如何使用“ openssl s_client”測試SSLv3支持(不存在)?
Roger Lipscombe
2014-10-15 14:54:13 UTC
view on stackexchange narkive permalink

為了緩解“貴賓犬”漏洞,我想在我的服務器(在這種情況下為TLS,而不是HTTPS)中禁用SSLv3支持。如何使用 openssl s_client 來驗證我是否已完成此操作?

五 答案:
P4cK3tHuNt3R
2014-10-15 15:16:31 UTC
view on stackexchange narkive permalink

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 掃描服務器以獲取受支持的版本:

 #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: 
openssl命令有效;但是,我無法使nmap腳本正常工作。
啊。非默認端口。根據http://stackoverflow.com/a/17175548/8446使用`--script + ssl-enum-ciphers`。
您的nmap命令的輸出是什麼?
HTTPS://gist.GitHub.com/如Lipscomb哦/惡報941發08發24016份額5成都0
@RogerLipscombe是的,那什麼不起作用? SSLv3未列出,因此不支持。
工作正常;我解決了我使用的是非標準端口,因此必須在腳本名稱前加上'+'才能強制其運行。
另請參閱以下答案以了解如何解釋openssl輸出:https://security.stackexchange.com/a/169738/60157
Anonymous Platypus
2015-07-06 17:57:55 UTC
view on stackexchange narkive permalink

在旁注中,可以將 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版本以及密碼套件

這是獲取遠程端點上可用密碼列表的最快方法。與往常一樣,nmap規則!;)
theterribletrivium
2014-10-16 03:43:35 UTC
view on stackexchange narkive permalink

我針對SSLv3協議的可用性創建了此測試。可能有一種更好的方法來搜索一個字符串,該字符串還表明正在使用CBC密碼,但是大多數人似乎只是想知道SSLv3是否完全可用。

需要注意的幾件事:

  • 是為Mac OS X上的bash而編寫的,因此不能肯定地說它可以在任何地方都可以使用
  • 使用gtimeout與timeout,因為Mac對這些核心實用程序很奇怪/li>
  • allexternal.txt是每行一個主機名或IP的文件

腳本:

  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;完成 
對於格式的道歉,不確定如何將重音符號顯示為文字,而不是將其變成代碼塊。
感謝您的分享,但我建議您使用echo'QUIT',這樣就不必安裝gtimeout。第二行應顯示為...如果echo'QUIT'| openssl s_client -connect $ ip:443 -ssl3 | grep -q'協議:SSLv3';然後
使用“協議:SSLv3”似乎也令人懷疑。在此頁面上:http://security.stackexchange.com/a/71459/51963,"Cipher:0000“可能是更好的搜索字符串。
Mathias R. Jessen
2015-02-26 06:29:15 UTC
view on stackexchange narkive permalink

如果僅禁用了SSLv3,則還可以強制 openssl s_client 僅使用TLS:

  openssl s_client -connect exmaple.com:443 -tls1 代碼> 
對於TLS 1.0及更高版本,您也應該使用`-servername`選項。加入SNI。
這不會驗證ssl3是否已禁用,它只是告訴您使用TLS 1
matttyg
2018-09-12 16:00:41 UTC
view on stackexchange narkive permalink

值得注意的是,現在必須在編譯時啟用OpenSSL中的-ssl3選項。如果您在預編譯的二進製文件上運行,則該選項可能不可用。看到此問題: https://github.com/openssl/openssl/issues/6801

替代方法是testssl.sh。這將檢查協議,密碼和選定的漏洞: https://github.com/drwetter/testssl.sh



該問答將自動從英語翻譯而來。原始內容可在stackexchange上找到,我們感謝它分發的cc by-sa 3.0許可。
Loading...