辦事端撐持heartbeat是存在heartbleed縫隙的需要前提,假定鑒定出某SSL端口不撐持heartbeat,那根基上便可以解除風(fēng)險了。

在SSL握手階段,假定Client Hello里聲了然客戶端撐持heartbeat,那么辦事端會在Server Hello中聲明本身是不是也撐持heartbeat。

在ssl-enum-ciphers.nse的根本上,改了一個nse腳本(http://pan.百度.com/s/1pJ37kF5),來按照上述特點鑒定SSL是不是撐持Heartbeat,該腳本在nmap 6.40下正常工作,貌似在5.x下會犯錯,一些定義有沖突。
[kussa@Kussa scripts]$ nmap --script ssl-heartbeat -p 443 passport.百度.com
Starting Nmap 6.40 ( http://nmap.org) at 2014-04-10 09:59 CST
Nmap scan report for passport.百度.com (61.135.185.194)
Host is up (0.0039s latency).
PORT STATE SERVICE
443/tcp open https
|_ssl-heartbeat: no
[kussa@Kussa scripts]$ nmap --script ssl-heartbeat -p 443 login.taobao.com
Starting Nmap 6.40 ( http://nmap.org) at 2014-04-10 10:00 CST
Nmap scan report for login.taobao.com (42.156.184.11)
Host is up (0.030s latency).
PORT STATE SERVICE
443/tcp open https
|_ssl-heartbeat: yes
這個腳本可能對我們?nèi)缭S利用閉源方案比較多的公司比較有效,主如果為了借用nmap比較成熟的掃描機制,可以對公司做一次全網(wǎng)掃描,以解除暗藏的風(fēng)險,然后對掃描出的撐持hearbeat的端口再做重點排查。
nmap --script ssl-heartbeat -Pn -p 443,993,995 -iL ip.txt -oN hb.txt
當(dāng)然對腳本后面再加一個heartbeat的要求,就和阿誰python的PoC一樣了……
PS(下面的說法沒有顛末嚴(yán)格驗證):
1.此刻的阿誰python的PoC貌似在措置有些辦事器發(fā)來的Server Hello要求時會犯錯,辦事端明明發(fā)還了Server Hello,但因為格局不兼容這個腳本而被忽視,就卡在等候Server Hello這一步了,底子沒發(fā)heartbeat包。所以用阿誰PoC檢測出有標(biāo)題問題標(biāo)必然是有標(biāo)題問題,但檢測沒標(biāo)題問題標(biāo)不必然沒標(biāo)題問題。
2.這個腳本恰好相反。
3.貌似不管是客戶端仍是辦事端,微軟的產(chǎn)品都不撐持heartbeat,除非出格引進了OpenSSL的。