此脚本扫描一个IP/范围/CIDR,并输出发现的 Microsoft Exchange 服务器及其版本。指定IP/范围/CIDR后,脚本会使用 masscan 在 tcp/443 端口上进行扫描。扫描成功后,它会尝试通过 curl 向 "/owa/auth/logon.aspx" 发送 HTTP GET 请求,获取 Outlook Web Access 页面源码,从而提取构建版本并显示。
在安装了 Exchange Server 2010 SP3 Update Rollup 30 的 Small Business Server 2011 上,"/owa/auth/logon.aspx" 中的版本信息并未更新。页面源码显示的构建版本是 "14.3.487"(很可能是 Exchange Server 2010 SP3 CU29,存在漏洞),而不是 "14.3.496"(Remy S 在 blog.rapid7.com 中提到的版本)。在这种情况下,脚本会尝试获取以下文件:"/ecp/14.3.496.0/Scripts/microsoftajax.js",如果该文件存在,则表明该 Exchange 服务器不存在该漏洞,且截至撰写本文时已是最新状态。
脚本的输出会附带额外信息,例如 IP 的 DNS 反向解析结果以及证书的主题名称。
masscan(来自 Robert David Graham)
使用 -n 标志指定 IP/范围/CIDR:
$ ./CVE-2020-0688-Scanner.sh -n <ip/范围/cidr>
使用 -v 标志开启详细输出(信息量很大):
$ ./CVE-2020-0688-Scanner.sh -n <ip/范围/cidr> -v
$ ./CVE-2020-0688-Scanner.sh -n xxx.xxx.xxx.xxx
$ ./CVE-2020-0688-Scanner.sh -n xxx.xxx.xxx.0/24
$ ./CVE-2020-0688-Scanner.sh -n xxx.xxx.xxx.10-xxx.xxx.xxx.45
$ ./CVE-2020-0688-Scanner.sh -n xxx.xxx.xxx.xxx,xxx.xxx.xxx.10-xxx.xxx.xxx.45,xxx.xxx.xxx.0/19
对 /19 网络的扫描,发现了多个存在漏洞的 Microsoft Exchange 服务器。
我不认为短期内会更新这个工具,它已经完成了任务