CLI Rust pour la reconnaissance réseau bornée : découverte de ports TCP/UDP, identification de services, collecte de preuves DNS/TLS/HTTP et recherche de noms d'utilisateur à partir de sources publiques avec corrélation.
Raw Excess Scan
Reconnaissance bornée et corrélation de preuves en Rust.
RXScan combine la reconnaissance réseau, la recherche dans des sources publiques, l'investigation et la corrélation de preuves dans une seule CLI.
Il peut découvrir des hôtes et des ports, identifier les services observés, collecter des preuves bornées de protocole et web, rechercher auprès de fournisseurs publics, corréler les résultats, et persister les résultats pour une analyse et une comparaison ultérieures.
RXScan est volontairement prudent sur ce qu'il rapporte. Un numéro de port n'identifie pas un service, un succès HTTP ne confirme pas à lui seul un compte, et une couverture incomplète est maintenue distincte d'un résultat négatif.
Compiler et installer depuis le dépôt :
git clone https://github.com/DarkRX1/RXScan.git
cd RXScan
cargo install --path . --locked
Vérifier la version installée :
rxscan --version
rxscan --help
Lancer un scan de reconnaissance normal :
rxscan example.test
Rechercher dans des sources publiques :
rxscan search --username exampleuser
Investiguer et corréler les résultats publics :
rxscan investigate --username exampleuser
Ce sont les trois points d'entrée principaux :
rxscan TARGET
rxscan search ...
rxscan investigate ...
Le scan par défaut utilise le workflow recon, le niveau 3, et des paramètres d'exécution équilibrés.
rxscan example.test
Spécifier les ports lorsque vous souhaitez une sélection exacte :
rxscan example.test --ports 22,80,443
rxscan example.test --ports 1-1024
rxscan example.test --ports 22,80,443,8000-8100
Scanner la plage complète des ports TCP :
rxscan example.test --all-ports
La découverte UDP est explicite :
rxscan example.test --udp
Afficher le plan effectif et des détails d'exécution supplémentaires :
rxscan example.test --explain
RXScan prend en charge :
rxscan example.test --scan-mode auto
rxscan example.test --scan-mode connect
rxscan example.test --scan-mode syn
Le scan TCP connect est la voie de scan portable actuellement utilisée par RXScan sur sa plateforme prise en charge.
Le scan SYN brut est disponible pour IPv4 sous Linux lorsque la capacité requise est disponible. Lorsque la voie SYN demandée ne peut pas être utilisée, RXScan signale le repli effectif plutôt que de présenter silencieusement un scan connect comme un scan SYN.
Le scan UDP utilise des sondes natives bornées et reste optionnel.
La découverte UDP actuelle, consciente des protocoles, inclut de petites sondes pour des services tels que DNS, NTP et SSDP.
Le silence UDP n'est pas rapporté comme preuve qu'un port est ouvert ou fermé. RXScan préserve l'incertitude résultante open|filtered.
RXScan identifie les services à partir du comportement de protocole observé plutôt que d'attribuer un service uniquement à partir de son numéro de port.
L'identification native actuelle couvre des protocoles courants, notamment :
Selon le protocole et les preuves disponibles, les observations peuvent inclure des informations de produit/version, des bannières, des points de terminaison et titres HTTP, des faits sur les certificats TLS, des informations d'identité SSH, et des preuves technologiques normalisées.
Les services inconnus restent inconnus lorsque RXScan ne dispose pas de suffisamment de preuves pour les identifier.
Aucune authentification n'est requise pour ces sondes d'identification.
La recherche par nom d'utilisateur est disponible via :
rxscan search --username exampleuser
La sortie normale se concentre sur les résultats positifs et incertains utiles plutôt que d'afficher chaque résultat négatif d'un fournisseur.
Un résultat peut distinguer entre un profil observé, une autre ressource observée, et un emplacement candidat non confirmé.
Par exemple :
FINDINGS
✓ provider / exampleuser
Profile https://example.test/exampleuser
high · 94% · public profile
? another-provider / exampleuser
Candidate https://example.test/u/exampleuser
low · 25% · weak evidence
Les libellés sont intentionnels :
| Libellé | Signification |
|---|---|
Profile | profil public observé spécifique à une identité |
Resource | ressource observée spécifique à une identité qui n'est pas nécessairement un profil public |
Candidate | emplacement spécifique à une identité qui n'a pas été confirmé |
Les pages d'accueil génériques de fournisseurs ou les points de terminaison d'API ne sont pas présentés comme des URL de profil confirmées.
RXScan conserve également les issues de fournisseurs telles que bloqué, limité en débit, inconnu, erreur et non scanné comme distinctes plutôt que de les convertir en faux résultats négatifs.
Afficher l'ensemble complet des résultats lisibles par un humain avec :
rxscan search --username exampleuser --all
Afficher des détails supplémentaires d'exécution et de classification avec :
rxscan search --username exampleuser --explain
Les résultats publics peuvent être passés dans le pipeline d'investigation et de corrélation de RXScan :
rxscan investigate --username exampleuser
La vue par défaut se concentre sur les comptes, les URL utiles, la confiance et les relations significatives.
Les ressources web secondaires telles que le JavaScript statique, les feuilles de style, les polices et les images sont conservées lorsqu'elles sont pertinentes pour les preuves sous-jacentes, mais ne dominent pas le rapport humain par défaut.
Les vues détaillées peuvent exposer davantage des données de relations collectées.
L'investigation reste passive par défaut. La découverte d'une cible réseau via des preuves publiques n'autorise ni ne déclenche automatiquement un scan réseau.
RXScan stocke les observations sous forme de preuves typées utilisées par ses chemins de rapport, d'investigation, de graphe, d'historique et d'analyse.
Plusieurs règles sont délibérément appliquées dans tout le projet :
200 seul n'établit pas qu'un compte public existe ;Cette distinction entre observation et interprétation est un élément central de la conception de RXScan.