
ein asynchrones Zielenumerationstool
:mag: ein asynchrones Werkzeug zur Ziel-Erkundung :mag_right:
bscan ist ein Kommandozeilenwerkzeug zur Durchführung aktiver Informationssammlung und Dienstaufzählung. Im Kern startet bscan asynchron Prozesse bekannter Scan-Dienstprogramme und verwendet die Scan-Ergebnisse für farblich hervorgehobene Konsolenausgaben und eine klar definierte Verzeichnisstruktur.
bscan ist nur für Bildungszwecke und Veranstaltungen wie CTFs gedacht und sollte niemals auf Maschinen und/oder Netzwerken ohne ausdrückliche vorherige Zustimmung ausgeführt werden. Dieser Code wird unter der MIT-Lizenz veröffentlicht.
bscan wurde für die Verwendung auf Kali Linux geschrieben, aber es gibt nichts, was die Ausführung auf einem Betriebssystem mit den entsprechenden installierten Tools grundsätzlich verhindert. Es gibt verschiedene Arten von paketierten Veröffentlichungen und Möglichkeiten, diese zu installieren.
Der einfachste Weg, um loszulegen, ist, die entsprechende ausführbare Einzeldatei-Version des Programms für Ihr Betriebssystem herunterzuladen (keine Python-Installation erforderlich):
# auf Linux (z.B. Kali)
wget -O bscan https://releases.brianwel.ch/bscan/linux
# auf Windows
powershell -c "[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; wget 'https://releases.brianwel.ch/bscan/windows' -OutFile 'bscan.exe'"
# um eine bestimmte Version herunterzuladen, verwenden Sie das folgende Schema
wget -O bscan https://releases.brianwel.ch/github/bscan/linux/0.1.4
Sie können auch die neueste paketierte Version von PyPI herunterladen (beachten Sie, dass dies eine vorhandene Python 3.6+-Installation erfordert):
pip install bscan
Ebenso könnten Sie die neueste Version aus der Versionsverwaltung beziehen:
pip install https://github.com/welchbj/bscan/archive/master.tar.gz
bscan hat eine Vielzahl von Konfigurationsoptionen, die verwendet werden können, um Scans an Ihre Bedürfnisse anzupassen. Hier ein kurzes Beispiel:
$ bscan \
> --max-concurrency 3 \
> --patterns [Mm]icrosoft \
> --status-interval 10 \
> --verbose-status \
> scanme.nmap.org
Was passiert hier?
--max-concurrency 3 bedeutet, dass nicht mehr als 3 gleichzeitige Scan-Subprozesse gleichzeitig ausgeführt werden--patterns [Mm]icrosoft definiert ein benutzerdefiniertes Regex-Muster, mit dem Übereinstimmungen in der generierten Scan-Ausgabe hervorgehoben werden--status-interval 10 weist bscan an, alle 10 Sekunden Laufzeitstatus-Updates auszugeben--verbose-status bedeutet, dass jeder dieser Status-Updates Details aller derzeit laufenden Scan-Subprozesse ausgibtscanme.nmap.org ist der Host, den wir aufzählen möchtenbscan verlässt sich auch auf einige zusätzliche Konfigurationsdateien. Die Standarddateien befinden sich im Verzeichnis bscan/configuation und dienen folgenden Zwecken:
patterns.txt gibt die Regex-Muster an, die in der Konsolenausgabe hervorgehoben werden sollen, wenn sie mit der Scan-Ausgabe übereinstimmenrequired-programs.txt gibt die installierten Programme an, die bscan verwenden möchteport-scans.toml definiert die Port-Erkennungs-Scans, die auf dem/den Ziel(en) ausgeführt werden, sowie die regulären Ausdrücke zum Parsen von Portnummern und Dienstnamen aus der Scan-Ausgabeservice-scans.toml definiert die Scans, die auf dem/den Ziel(en) pro Dienst ausgeführt werdenHier ist, was Sie sehen sollten, wenn Sie bscan --help ausführen:
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