Un nouvel outil pour collecter des captures d'écran RDP, Web et VNC en un seul endroit
Cet outil est encore en cours de développement et devrait être en grande partie utilisable mais n'est pas encore terminé. Veuillez signaler tout bug ou demande de fonctionnalité en tant que problème GitHub.
Depuis qu'Eyewitness a récemment abandonné la prise en charge de RDP, il n'existe pas d'outil CLI fonctionnel pour capturer des captures d'écran RDP. Nessus fonctionne toujours, mais c'est pénible d'extraire les images et elles ne sont pas incluses dans le fichier d'exportation.
J'ai pensé que c'était une bonne opportunité d'écrire un nouvel outil plus puissant que ceux qui l'ont précédé. Consultez la liste des fonctionnalités !
Pour les captures d'écran Web, la recherche dépend actuellement de l'installation de Chromium ou de Google Chrome. Installez avec pacman -S chromium
ou l'équivalent pour votre système d'exploitation.
Téléchargez la dernière version à partir de l'onglet versions. Un package Debian est disponible pour les distributions qui les utilisent (installé avec sudo dpkg -i scrying*.deb
) et des binaires compressés pour Windows, Mac et autres Linux.
Récupérez une seule page Web, un serveur RDP ou un serveur VNC :
$ scrying -t http://example.com $ scrying -t rdp://192.0.2.1 $ scrying -t 2001:db8::5 --mode web $ scrying -t 2001:db8::5 --mode rdp $ scrying -t 192.0.2.2 $ scrying -t vnc://[2001:db8::53]:5901
Exécutez sur un serveur sans tête :
# apt install xvfb # or OS equivalent $ xvfb-run scrying -t http://example.com
Récupérez automatiquement des captures d'écran à partir d'une sortie nmap :
$ nmap -iL targets.txt -p 80,443,8080,8443,3389 -oX targets.xml $ scrying --nmap targets.xml
Choisissez un autre répertoire de sortie pour les images :
$ scrying -t 2001:db8::3 --output-dir /tmp/scrying_outputs
Exécuter à partir d'un fichier cibles :
$ cat targets.txt http://example.com rdp://192.0.2.1 2001:db8::5 $ scrying -f targets.txt
Exécutez via un proxy Web :
$ scrying -t http://example.com --web-proxy http://127.0.0.1:8080 $ scrying -t http://example.com --web-proxy socks5://[::1]:1080
Les fichiers image sont enregistrés au format PNG dans la structure de répertoires suivante :
output ├── report.html ├── rdp │ └── 192.0.2.1-3389.png ├── vnc │ └── 192.0.2.1-5900.png └── web └── https_example.com.png
Consultez le rapport sur output/report.html
!
Les fonctionnalités cochées à côté d'elles ont été implémentées, d'autres sont TODO
✔️ Décidez automatiquement si une entrée doit être traitée comme une adresse Web ou un serveur RDP
✔️ Créez automatiquement le répertoire de sortie s'il n'existe pas déjà
✔️ Enregistrez les images avec des noms de fichiers cohérents et uniques dérivés de l'hôte/IP
✔️ Prise en charge complète des littéraux IPv6 et IPv4 ainsi que des noms d'hôte
✔️ Lisez les cibles à partir d'un fichier et décidez si elles sont RDP ou HTTP ou utilisez des astuces
✔️ Analyser intelligemment les cibles à partir des sorties Nmap et Nessus
✔️ HTTP - utilise le moteur de rendu Web de la plateforme, fournit éventuellement des chemins à essayer sur chaque serveur
✔️ Produit un rapport HTML pour permettre une navigation facile dans les résultats
✔️ VNC - prend en charge l'envoi d'authentification
✔️ RDP - fonctionne principalement, ne prend pas en charge le mode "plain RDP", voir #15
✔️ Personnalisez la taille des images capturées (web & RDP ; VNC ne le permet généralement pas)
Prise en charge du proxy - SOCKS fonctionne pour RDP. Le Web est actuellement interrompu en attendant l'inclusion de la commande set_proxy dans webkit2gtk #11
Flux vidéo – problème de suivi n°5
option pour les horodatages dans les noms de fichiers
Lire les cibles à partir d'une sortie msf services -o csv
OCR sur les noms d'utilisateurs RDP, en direct ou sur un répertoire d'images
NLA/auth pour tester les informations d'identification
Analyser la sortie JSON de Dirble pour récupérer des captures d'écran d'un site Web entier - en attente de nccgroup/dirble#51
Prise en charge multiplateforme complète - testée sous Linux et Windows ; Le support Mac a été dépriorisé en attendant de bonnes idées pour capturer la vue Web de Cocoa.
USAGE: scrying [OPTIONS] <--file <FILE>|--nmap <NMAP XML FILE>|--nessus <NESSUS XML FILE>|--target <TARGET>> OPTIONS: --disable-report Don't create a report.html [aliases: no-report] -f, --file <FILE> Targets file, one per line -h, --help Print help information -l, --log-file <LOG FILE> Save logs to the given file -m, --mode <MODE> Force targets to be parsed as `web`, `rdp`, `vnc` [default: auto] [possible values: web, rdp, vnc, auto] --nessus <NESSUS XML FILE> Nessus XML file --nmap <NMAP XML FILE> Nmap XML file -o, --output <OUTPUT DIR> Directory to save the captured images in [default: output] --proxy <PROXY> Default SOCKS5 proxy to use for connections e.g. socks5://[::1]:1080 --rdp-domain <RDP DOMAIN> Domain name to provide to RDP servers that request one --rdp-pass <RDP PASS> Password to provide to RDP servers that request one --rdp-proxy <RDP PROXY> SOCKS5 proxy to use for RDP connections e.g. socks5://[::1]:1080 --rdp-timeout <RDP TIMEOUT> Seconds to wait after last bitmap before saving an image [default: 2] --rdp-user <RDP USER> Username to provide to RDP servers that request one -s, --silent Suppress most log messages --size <SIZE> Set the size of captured images in pixels. Due to protocol limitations, sizes greater than 65535x65535 may get truncated in interesting ways. This argument has no effect on VNC screenshots. [default: 1280x1024] -t, --target <TARGET> Target, e.g. http://example.com, rdp://[2001:db8::4] --test-import Exit after importing targets --threads <THREADS> Number of worker threads for each target type [default: 10] -v, --verbose Increase log verbosity -V, --version Print version information --vnc-auth <VNC AUTH> Password to provide to VNC servers that request one --web-mode <WEB MODE> Choose between headless Chrom{e,ium} or native webview (GTK on Linux, Edge WebView2 on Windows, Cocoa WebView on Mac [default: chrome] [possible values: chrome, native] --web-path <WEB PATH> Append a path to web requests. Provide multiple to request each path sequentially --web-proxy <WEB PROXY> HTTP/SOCKS Proxy to use for web requests e.g. http://[::1]:8080