
このスクリプトは、IP/範囲/CIDR をスキャンし、検出された Microsoft Exchange Server とそのバージョンを出力します。指定された IP/範囲/CIDR は、masscan を使用してポート tcp/443 でスキャンされます。スキャン成功後、curl で "/owa/auth/logon.aspx" に HTTP GET を試み、Outlook Web Access ページのソースを取得してビルドバージョンを表示します。
Small Business Server 2011(Exchange Server 2010 SP3 Update Rollup 30 搭載)では、"/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 Server は脆弱ではなく、現時点で最新です。
スクリプトの出力には、IP の DNS 逆引きや証明書のサブジェクト名などの追加情報が含まれます。
masscan(Robert David Graham 作成)
-n フラグで IP/範囲/CIDR を指定します:
$ ./CVE-2020-0688-Scanner.sh -n <ip/range/cidr>
-v フラグで冗長出力を有効にします(非常にノイズが多い):
$ ./CVE-2020-0688-Scanner.sh -n <ip/range/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
複数の脆弱な Microsoft Exchange Server を含む /19 ネットワークのスキャン結果です。
しばらく更新するつもりはありません。目的は果たしました。