
リモートデスクトップゲートウェイのスキャン(未パッチの可能性がある CVE-2020-0609 および CVE-2020-0610)
このスキャナには2つの動作モードがあります:
https://github.com/MalwareTech/RDGScanner の脆弱性スキャンコードを使用します。
メモリ破壊の脆弱性をスキャンすることは危険であり、システムをクラッシュさせる可能性があります。 このツールはクラッシュを引き起こさないように設計されていますが、安定性を100%保証することはできません。 自己責任で使用し、テストする許可を得たシステムのみをスキャンしてください。
スキャナはマルチスレッドで、CIDR ネットマスクを含むファイルを解析できますが、より大規模なネットワークでは、脆弱性スキャンを行う前に、開いている UDP 3391 ポートを見つけるために nmap を使いたいかもしれません。現時点ではこれはそのままでは機能しません。nmap-payloads の DTLS セクションに 3391 を追加する必要があります(通常は /usr/share/nmap にあります。PR は準備中です)。その後、例えば次のようにスキャンします:
nmap -Pn -p 3391 -sU -oA rdg_scan_yyyymmdd 10.0.0.0/24(root 権限が必要です)
脆弱性スキャンのデフォルトポートは UDP 3391 です。--port で変更できます。
すべての RD ゲートウェイが UDP 3391 を有効にしている、またはファイアウォールで公開しているわけではありません。おそらく、HTTPS のみでも動作し、管理者がドキュメントを読まなかったためです。それらの RD ゲートウェイも見つけたい場合は、webcheck を使用してください(CVE-2020-0609 がパッチ適用されていないサーバーと、オペレーターが「高遅延ネットワークでのパフォーマンス向上」のために 6 か月後に UDP 3391 を開くことを懸念している場合かもしれません)。
HTTPS でスキャンするには、パラメータ --webcheck または -w を使用します。 webcheck のデフォルトポートは TCP 443 です。--port で変更できます。
最近の Debian/Kali にはデフォルトの openssl 設定があり、python、curl などを含むあらゆるプログラムが、TLSv1.2 より低いものなど、安全でない SSL 実装への接続を妨げることに注意してください。これはオンラインバンキングには妥当ですが、SSLv3 をまだ使用している古いホストも見つけたい脆弱性スキャンには適していません。/etc/ssl/openssl.cnf でこれを変更する以外に良い解決策は見つかりませんでした。[system_default_sect] セクションを見つけるか挿入して、次のように変更します:
[system_default_sect]
MinProtocol = SSLv3
CipherString = DEFAULT@SECLEVEL=1
デリケートな作業では元に戻すことを忘れないでください! この設定を python スクリプトだけに変更する方法をご存知でしたら、ぜひ教えてください ;)
スキャン中に表示される SSL エラーは、IPS システムによるものかもしれません。
スキャナは以下を解析できます:
Example: python3 rdg_scanner_cve-2020-0609.py 192.168.1.1/24 # vuln scan for cve-2020-0609 on UDP 3391
Example2 python3 rdg_scanner_cve-2020-0609.py 192.168.1.1/24 --webcheck # check webpage for RD gateway
Example3: python3 rdg_scanner_cve-2020-0609.py 192.168.1.1
Example4: python3 rdg_scanner_cve-2020-0609.py fakewebsiteaddress.com
Example5: python3 rdg_scanner_cve-2020-0609.py as15169
Example6: python3 rdg_scanner_cve-2020-0609.py file:hostfile.txt
usage: rdg_scanner_cve-2020-0609.py [-h] [--port PORT] [--webcheck]
[--verbose]
target
No installation required.
Debian/Kali needs: apt-get install python3-netaddr
TODO: