
un outil asynchrone d'énumération de cibles
:mag: un outil d'énumération de cibles asynchrone :mag_right:
bscan est un utilitaire en ligne de commande pour effectuer la collecte active d'informations et l'énumération de services. À la base, bscan lance de manière asynchrone des processus d'outils de scan bien connus, en réutilisant les résultats des scans pour produire une sortie console surlignée et une structure de répertoires bien définie.
bscan est destiné uniquement à des fins éducatives et à des événements tels que les CTF ; il ne doit jamais être exécuté sur des machines et/ou réseaux sans autorisation préalable explicite. Ce code est publié sous la licence MIT.
bscan a été écrit pour être exécuté sur Kali Linux, mais rien ne l'empêche de fonctionner sur tout OS disposant des outils appropriés installés. Il existe plusieurs types de versions packagées et différentes façons de les installer.
Le moyen le plus simple de démarrer est de télécharger la version exécutable en un seul fichier adaptée à votre système d'exploitation (aucune installation Python requise) :
# sur Linux (par exemple Kali)
wget -O bscan https://releases.brianwel.ch/bscan/linux
# sur Windows
powershell -c "[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; wget 'https://releases.brianwel.ch/bscan/windows' -OutFile 'bscan.exe'"
# pour télécharger une version spécifique, utiliser le modèle suivant
wget -O bscan https://releases.brianwel.ch/github/bscan/linux/0.1.4
Vous pouvez également télécharger la dernière version packagée depuis PyPI (notez que cela nécessite une installation Python 3.6+ existante) :
pip install bscan
De même, vous pouvez obtenir la version de pointe depuis le contrôle de version :
pip install https://github.com/welchbj/bscan/archive/master.tar.gz
bscan offre une grande variété d'options de configuration pour adapter les scans à vos besoins. Voici un exemple rapide :
$ bscan \
> --max-concurrency 3 \
> --patterns [Mm]icrosoft \
> --status-interval 10 \
> --verbose-status \
> scanme.nmap.org
Que se passe-t-il ici ?
--max-concurrency 3 signifie qu'au maximum 3 sous-processus de scan simultanés seront lancés à la fois--patterns [Mm]icrosoft définit un motif regex personnalisé pour surligner les correspondances dans la sortie du scan--status-interval 10 indique à bscan d'afficher des mises à jour de statut toutes les 10 secondes--verbose-status signifie que chaque mise à jour de statut affichera les détails de tous les sous-processus de scan en coursscanme.nmap.org est l'hôte que nous souhaitons énumérerbscan s'appuie également sur des fichiers de configuration supplémentaires. Les fichiers par défaut se trouvent dans le répertoire bscan/configuation et servent aux fins suivantes :
patterns.txt spécifie les motifs regex à surligner dans la sortie console lorsqu'ils correspondent à la sortie du scanrequired-programs.txt spécifie les programmes installés que bscan prévoit d'utiliserport-scans.toml définit les scans de découverte de ports à exécuter sur la ou les cibles, ainsi que les expressions régulières utilisées pour analyser les numéros de port et les noms de services à partir de la sortie du scanservice-scans.toml définit les scans à exécuter sur la ou les cibles pour chaque serviceVoici ce que vous devriez voir en exécutant bscan --help :
usage: bscan [OPTIONS] targets
_
| |__ ___ ___ __ _ _ __
| '_ \/ __|/ __/ _` | '_ \
| |_) \__ \ (__ (_| | | | |
|_.__/|___/\___\__,_|_| |_|
an asynchronous service enumeration tool
positional arguments:
targets the targets and/or networks on which to perform enumeration
optional arguments:
-h, --help show this help message and exit
--brute-pass-list F filename of password list to use for brute-forcing
--brute-user-list F filename of user list to use for brute-forcing
--cmd-print-width I the maximum integer number of characters allowed when printing
the command used to spawn a running subprocess (defaults to 80)
--config-dir D the base directory from which to load the configuration files;
required configuration files missing from this directory will
instead be loaded from the default files shipped with this
program
--hard force overwrite of existing directories
--max-concurrency I maximum integer number of subprocesses permitted to be running
concurrently (defaults to 20)
--no-program-check disable checking the presence of required system programs
--no-file-check disable checking the presence of files such as configured
wordlists
--no-service-scans disable running scans on discovered services
--output-dir D the base directory in which to write output files
--patterns [ [ ...]] regex patterns to highlight in output text
--ping-sweep enable ping sweep filtering of hosts from a network range
before running more intensive scans
--quick-only whether to only run the quick scan (and not include the
thorough scan over all ports)
--qs-method S the method for performing the initial TCP port scan; must
correspond to a configured port scan
--status-interval I integer number of seconds to pause in between printing status
updates; a non-positive value disables updates (defaults to 30)
--ts-method S the method for performing the thorough TCP port scan; must
correspond to a configured port scan
--udp whether to run UDP scans
--udp-method S the method for performing the UDP port scan; must correspond
to a configured port scan
--verbose-status whether to print verbose runtime status updates, based on
frequency specified by `--status-interval` flag
--version program version
--web-word-list F the wordlist to use for scans