指令類型:portrule
Nmap Script摘要
檢測服務器是否容易受到 SSL/TLS「CCS 注入」漏洞(CVE-2014-0224)的影響,該漏洞首次由 Masashi Kikuchi 發現。該腳本基於 Ramon de C Valle 撰寫的 ccsinjection.c 代碼(https://gist.github.com/rcvalle/71f4b027d61a78c42607)。
為了利用該漏洞,中間人攻擊者將執行以下操作:
等待一個新的 TLS 連接,隨後是 ClientHello 和 ServerHello 握手消息。
向兩個方向發送 CCS 包,這導致 OpenSSL 代碼使用零長度的預主密鑰。該包被發送到連接的兩端。會話密鑰使用零長度的預主密鑰衍生,未來的會話密鑰也共享這個弱點。
重新協商握手參數。
攻擊者現在能夠解密甚至修改傳輸中的數據包。
該腳本通過發送一個「ChangeCipherSpec」消息並檢查服務器是否返回一個「UNEXPECTED_MESSAGE」警報記錄來工作。由於未打補丁的服務器會簡單地接受這條消息,因此 CCS 包被發送兩次,以迫使服務器發出警報。如果警報類型不同於「UNEXPECTED_MESSAGE」,我們可以得出服務器是容易受到攻擊的。
Nmap Script參數
tls.servername
參見tls庫的文檔。
smbdomain, smbhash, smbnoguest, smbpassword, smbtype, smbusername
參見smbauth庫的文檔。
mssql.domain, mssql.instance-all, mssql.instance-name, mssql.instance-port, mssql.password, mssql.protocol, mssql.scanned-ports-only, mssql.timeout, mssql.username
參見mssql庫的文檔。
smtp.domain
參見smtp庫的文檔。
randomseed, smbbasic, smbport, smbsign
參見smb庫的文檔。
vulns.short, vulns.showall
參見vulns庫的文檔。
Nmap Script範例
nmap -p 443 --script ssl-ccs-injection <target>
Nmap Script輸出
PORT STATE SERVICE
443/tcp open https
| ssl-ccs-injection:
| VULNERABLE:
| SSL/TLS MITM vulnerability (CCS Injection)
| State: VULNERABLE
| Risk factor: High
| Description:
| OpenSSL before 0.9.8za, 1.0.0 before 1.0.0m, and 1.0.1 before
| 1.0.1h does not properly restrict processing of ChangeCipherSpec
| messages, which allows man-in-the-middle attackers to trigger use
| of a zero-length master key in certain OpenSSL-to-OpenSSL
| communications, and consequently hijack sessions or obtain
| sensitive information, via a crafted TLS handshake, aka the
| "CCS Injection" vulnerability.
|
| References:
| https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-0224
| http://www.cvedetails.com/cve/2014-0224
|_ http://www.openssl.org/news/secadv_20140605.txt
Nmap Script作者:
Claudiu Perta <claudiu.perta@gmail.com>
License: Same as Nmap--See https://nmap.org/book/man-legal.html