我希望在网络上找到使用较早版本的tls/ssl的计算机。
到目前为止,我一直在使用nmap的ssl-enum-ciphers和ssl-poodle脚本,但是输出并不有用,因为它显示了所有可用的密码,例如:
Nmap scan report for x.x.x.x
Host is up (0.017s latency).
PORT STATE SERVICE
443/tcp open https
| ssl-enum-ciphers:
| SSLv3:
| ciphers:
| TLS_RSA_WITH_AES_256_CBC_SHA (rsa 2048) - A
| TLS_RSA_WITH_AES_128_CBC_SHA (rsa 2048) - A
| compressors:
| NULL
| cipher preference: server
| warnings:
| CBC-mode cipher in SSLv3 (CVE-2014-3566)
| TLSv1.0:
| ciphers:
| TLS_RSA_WITH_AES_256_CBC_SHA (rsa 2048) - A
| TLS_RSA_WITH_AES_128_CBC_SHA (rsa 2048) - A我已经看到nmap有一个很好的输出选项"-oG“,但是我不确定它与脚本一起工作,或者我没有正确地使用它。
我一直在使用以下命令的变体
nmap -sV --script ssl-enum-ciphers -p 443 {ip address/netmask}理想情况下,我希望输出看起来像
IP地址/主机名SSLv3 TLS1.0TLS1.2
但是,即使将其转换为.csv格式也是有帮助的。有更好的方法吗?也许我在这里缺少一些grep知识。
谢谢!
发布于 2020-06-08 11:42:42
如果您不介意awk,我已经编写了一个checkciphers.sh脚本,如下所示:
#! /usr/bin/ksh
nmap -sV --script ssl-enum-ciphers -p 443 | awk '
/^Nmap scan report for /{
currhost = $5 " " $6
}
/^443\/tcp /{
if ($2 != "open") {
currhost = ""
}
}
/^\| (TLS|SSL)/{
currciph = $2
}
/^\| ciphers:/{
count = 1
next
}
/^\| [^ ]/{
count = 0
}
/^\| [^ ]/{
if ("$currhost" && count > 0) {
host[currhost] = 1
ciph[currhost][currciph] += 1
}
}
END {
for (H in host) {
CC=""
for (C in ciph[H]) {
CC=CC " " C ciph[H][C]
}
print H,CC
}
}
'https://serverfault.com/questions/1020494
复制相似问题