Bscan : An Asynchronous Target Enumeration Tool

Bscan is a command-line utility to perform active information gathering and service enumeration.

At its core, bscan asynchronously spawns processes of well-known scanning utilities, repurposing scan results into highlighted console output and a well-defined directory structure.

Also Read : Bincat : Binary Code Static Analyser With IDA Integration

Installation

It was written to be run on Kali Linux, but there is nothing inherently preventing it from running on any OS with the appropriate tools installed. There’s a few different types of packaged releases and ways to install them.

The easiest way to get up and running is to install the appropriate single-file executable version of the program for your operating system (no Python installation required):

on Linux (i.e., Kali)
wget -O bscan https://releases.brianwel.ch/bscan/linux
on Windows
powershell -c “[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; wget ‘https://releases.brianwel.ch/bscan/windows’ -OutFile ‘bscan.exe'”
to download a specific version, use the following pattern
wget -O bscan https://releases.brianwel.ch/github/bscan/linux/0.1.4

You can also download the latest packaged version from PyPI (note that this requires an existing Python 3.6+ installation);

pip install bscan

Similarly, you could get the bleeding-edge version from version control:

pip install https://github.com/welchbj/bscan/archive/master.tar.gz

Basic Usage

bscan has a wide variety of configuration options which can be used to tune scans to your needs. Here’s a quick example:

$ bscan \
–max-concurrency 3 \
–patterns [Mm]icrosoft \
–status-interval 10 \
–verbose-status \
scanme.nmap.org

What’s going on here?

  • –max-concurrency 3 means that no more than 3 concurrent scan subprocesses will be run at a time
  • –patterns [Mm]icrosoft defines a custom regex pattern with which to highlight matches in the generated scan output
  • –status-interval 10 tells bscan to print runtime status updates every 10 seconds
  • –verbose-status means that each of these status updates will print details of all currently-running scan subprocesses
  • scanme.nmap.org is the host upon which we want to enumerate

bscan also relies on some additional configuration files. The default files can be found in the bscan/configuation directory and serve the following purposes:

  • patterns.txt specifies the regex patterns to be highlighted in console output when matched with scan output
  • required-programs.txt specifies the installed programs that bscan plans on using
  • port-scans.toml defines the port-discovering scans to be run on the target(s), as well as the regular expressions used to parse port numbers and service names from scan output
  • service-scans.toml defines the scans be run on the target(s) on a per-service basis

Detailed Options

Here’s what you should see when running 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

R K

Recent Posts

rmmod Command in Linux: Remove Kernel Modules and Blacklisting

The rmmod command in Linux removes a loaded module from the running kernel. Because the kernel has…

20 hours ago

free Command in Linux: Check Memory Usage and Interpret Output

The free command in Linux gives you a quick summary of RAM and swap usage. It reads…

20 hours ago

diff Command in Linux: Compare Files and Create Patches

The diff command in Linux compares two text files line by line and shows the lines that…

20 hours ago

Flush DNS Cache on Windows, Linux, and macOS: Quick Commands

DNS cache is a temporary database your OS and browser build as you browse. Each time you visit a website, the domain-to-IP mapping is saved locally, cutting out the round trip to a remote DNS server on repeat visits. Stale entries are the most common reason to flush the DNS cache: a server moves to a new IP, but your OS or browser still routes to the old address. This guide covers how to clear the DNS cache on Windows, Linux, and macOS, and how to flush the separate cache stored inside Chrome and Firefox. Flush DNS Cache on Windows The command is the same on Windows 10, Windows 11, and earlier supported releases. Open Command Prompt with administrator privileges. Type cmd in the Windows search bar, right-click Command Prompt, and select Run as…

20 hours ago

Change User Password in Ubuntu: Command Line and GNOME GUI

Using a strong, unique password for every account is one of the most effective security…

2 days ago

Enable and Disable the Root Account in Ubuntu: Full Guide

Ubuntu locks the root account by default. New users often wonder what the root password…

2 days ago