
Microsoft Remote Desktop Web Access (RDWA) アプリケーションから情報を抽出し、パスワードのスプレー攻撃やブルートフォース攻撃を行うためのPython製オールインワンツール。
このPythonツールは、Microsoft Remote Desktop Web Access (RDWA) アプリケーションから、リモートサーバーのFQDN、内部ADドメイン名(FQDNから)、リモートWindows Serverのバージョンなど、さまざまな情報を抽出できます。
$ rdwatool -h
____ ____ _ _____ __ __
/ __ \/ __ \ | / / | / /_____ ____ / /
/ /_/ / / / / | /| / / /| |/ __/ __ \/ __ \/ / @podalirius_
/ _, _/ /_/ /| |/ |/ / ___ / /_/ /_/ / /_/ / /
/_/ |_/_____/ |__/|__/_/ |_\__/\____/\____/_/ v2.0
usage: rdwatool recon [-h] [-tf TARGETS_FILE] [-tu TARGET_URLS] [-v] [--no-colors] [--debug] [-T THREADS] [-PI PROXY_IP] [-PP PROXY_PORT] [-rt REQUEST_TIMEOUT] [-k] [-L] [--export-xlsx EXPORT_XLSX] [--export-json EXPORT_JSON]
[--export-sqlite EXPORT_SQLITE]
options:
-h, --help ヘルプメッセージを表示して終了します。
-v, --verbose 冗長モード。(デフォルト: False)
--no-colors 色付き出力を無効にします。(デフォルト: False)
--debug デバッグモード、非常に冗長な出力になります。(デフォルト: False)
-T THREADS, --threads THREADS
スレッド数(デフォルト: 250)
ターゲット:
-tf TARGETS_FILE, --targets-file TARGETS_FILE
ターゲットを1行ずつリストしたファイルへのパス。
-tu TARGET_URLS, --target-url TARGET_URLS
RDWAログインページのターゲットURL。
高度な設定:
-PI PROXY_IP, --proxy-ip PROXY_IP
プロキシIP。
-PP PROXY_PORT, --proxy-port PROXY_PORT
プロキシポート。
-rt REQUEST_TIMEOUT, --request-timeout REQUEST_TIMEOUT
HTTPリクエストのタイムアウトを設定します。
-k, --insecure SSL使用時に安全でないサーバー接続を許可します(デフォルト: False)
-L, --location リダイレクトに従います(デフォルト: False)
結果のエクスポート:
--export-xlsx EXPORT_XLSX
結果を保存するXLSXファイル。
--export-json EXPORT_JSON
結果を保存するJSONファイル。
--export-sqlite EXPORT_SQLITE
結果を保存するSQLITE3ファイル。
reconモード:
rdwatool recon -tf ./subdomains.txt

sprayモード:
rdwatool spray -tu https://rds.podalirius.net/RDWeb/Pages/en-US/login.aspx
bruteモード:
rdwatool brute -tu https://rds.podalirius.net/RDWeb/Pages/en-US/login.aspx
プルリクエストは歓迎します。他の機能を追加したい場合は、遠慮なくIssueを開いてください。
Remote Desktop Web Access (RDWA) アプリケーションの login.aspx ページには、あらかじめ入力された情報が多数あります。入力フィールド WorkSpaceID や RedirectorName にはリモートサーバーのFQDNが、WorkspaceFriendlyName にはワークスペースのテキストによる説明が含まれている場合があります。
<form id="FrmLogin" name="FrmLogin" action="login.aspx?ReturnUrl=%2FRDWeb%2FPages%2Fen-US%2FDefault.aspx" method="post" onsubmit="return onLoginFormSubmit()">
<input type="hidden" name="WorkSpaceID" value="DC01.lab.local"/>
<input type="hidden" name="RDPCertificates" value="E7100C72B6C11A5D14DE115D801E100C79143C19"/>
<input type="hidden" name="PublicModeTimeout" value="20"/>
<input type="hidden" name="PrivateModeTimeout" value="240"/>
<input type="hidden" name="WorkspaceFriendlyName" value="Workspace%20friendly%20name%20or%20description"/>
<input type="hidden" name="EventLogUploadAddress" value=""/>
<input type="hidden" name="RedirectorName" value="DC01.lab.local"/>
<input type="hidden" name="ClaimsHint" value=""/>
<input type="hidden" name="ClaimsToken" value=""/>
<input name="isUtf8" type="hidden" value="1"/>
<input type="hidden" name="flags" value="0"/>
...
</form>
rdwatoolツールはこのフォームを自動的に解析し、すべての情報を抽出します。
リモートのRDWebインストールが強化されていない場合、デフォルトのバージョン画像ファイル /RDWeb/Pages/images/WS_h_c.png が(ログインページにリンクされていなくても)まだアクセス可能である可能性が高いです。これは非常に素晴らしいことで、そのsha256ハッシュ値を、このサービスのWindowsバナーの既知のテーブルと直接比較できます。
rdwatoolツールは自動的にこのファイルを取得し、そのハッシュを比較してリモートのWindows Serverのバージョンを取得します。
| Windows OS | SHA256 ハッシュ | バナー |
|---|
| Windows Server 2008 R2 | 5a8a77dc7ffd463647987c0de6df2c870f42819ec03bbd02a3ea9601e2ed8a4b | ![]() |
| Windows Server 2012 R2 | 4560591682d433c7fa190c6bf40827110e219929932dc6dc049697529c8a98bc | ![]() |
| Windows Server 2012 R2 | 3d9b56811a5126a6d3b78a692c2278d588d495ee215173f752ce4cbf8102921c | ![]() |
| Windows Server 2016 | fb1505aadeab42d82100c4d23d421f421c858feae98332c55a4b9595f4cea541 | ![]() |
| Windows Server 2016 | 3dbbeff5a0def7e0ba8ea383e5059eaa6acc37f7f8857218d44274fc029cfc4b | ![]() |
| Windows Server 2019 | 2da4eb15fda2b7c80a94b9b2c5a3e104e2a9a2d9e9b3a222f5526c748fadf792 | ![]() |
| Windows Server 2022 | 256a6445e032875e611457374f08acb0565796c950eb9c254495d559600c0367 | ![]() |