
Un script Python pour extraire des informations d'une application Microsoft Remote Desktop Web Access (RDWA)

Un outil python tout-en-un pour extraire des informations, pulvériser et forcer les mots de passe sur une application Microsoft Remote Desktop Web Access (RDWA).
Cet outil python permet d'extraire diverses informations d'une application Microsoft Remote Desktop Web Access (RDWA), telles que le FQDN du serveur distant, le nom de domaine AD interne (à partir du FQDN) et la version du serveur Windows distant.
$ 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 show this help message and exit
-v, --verbose Verbose mode. (default: False)
--no-colors Disable colored output. (default: False)
--debug Debug mode, for huge verbosity. (default: False)
-T THREADS, --threads THREADS
Number of threads (default: 250)
Targets:
-tf TARGETS_FILE, --targets-file TARGETS_FILE
Path to file containing a line by line list of targets.
-tu TARGET_URLS, --target-url TARGET_URLS
Target URL of the RDWA login page.
Advanced configuration:
-PI PROXY_IP, --proxy-ip PROXY_IP
Proxy IP.
-PP PROXY_PORT, --proxy-port PROXY_PORT
Proxy port
-rt REQUEST_TIMEOUT, --request-timeout REQUEST_TIMEOUT
Set the timeout of HTTP requests.
-k, --insecure Allow insecure server connections when using SSL (default: False)
-L, --location Follow redirects (default: False)
Export results:
--export-xlsx EXPORT_XLSX
Output XLSX file to store the results in.
--export-json EXPORT_JSON
Output JSON file to store the results in.
--export-sqlite EXPORT_SQLITE
Output SQLITE3 file to store the results in.
En mode recon :
rdwatool recon -tf ./subdomains.txt

En mode spray :
rdwatool spray -tu https://rds.podalirius.net/RDWeb/Pages/en-US/login.aspx
En mode brute :
rdwatool brute -tu https://rds.podalirius.net/RDWeb/Pages/en-US/login.aspx
Les pull requests sont les bienvenues. N'hésitez pas à ouvrir une issue si vous souhaitez ajouter d'autres fonctionnalités.
Il y a beaucoup d'informations pré-remplies sur la page login.aspx de l'application Remote Desktop Web Access (RDWA). Dans les champs WorkSpaceID et/ou RedirectorName, on peut trouver le FQDN du serveur distant, et WorkspaceFriendlyName peut contenir une description textuelle de l'espace de travail.
<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>
L'outil rdwatool analyse automatiquement ce formulaire et extrait toutes les informations.
Si l'installation RDWeb distante n'est pas durcie, il y a une forte probabilité que le fichier d'image de version par défaut /RDWeb/Pages/images/WS_h_c.png soit toujours accessible (même s'il n'est pas lié sur la page de connexion). C'est vraiment génial car on peut comparer directement sa valeur de hachage sha256 avec une table connue des bannières Windows de ce service :
L'outil rdwatool récupère automatiquement ce fichier et compare son hachage pour obtenir la version du serveur Windows distant.
| Windows OS | SHA256 hash | Bannière |
|---|
| 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 | ![]() |