Skip to main content

The client component of the Bug Bounty Reconnaissance Framework (BBRF)

Project description

PyPI PyPI - Downloads

Introduction

The client component of the Bug Bounty Reconnaissance Framework (BBRF) is intended to facilitate the workflows of security researchers across multiple devices.

Read the blog post: https://honoki.net/2020/10/08/introducing-bbrf-yet-another-bug-bounty-reconnaissance-framework/

The primary function of the client is providing easy access to information that is stored in a centralized BBRF document store. For example, to quickly create and initialize a new program with a couple of domains, you can try:

# create a new program
~# bbrf new vzm
~# bbrf inscope add '*.yahoo.com' '*.yahoo.be'
~# bbrf domain add www.yahoo.com www.yahoo.be

To add a list of ips from a file or other program, you can pipe into bbrf:

~# bbrf use vzm
~# cat ips.txt | bbrf ip add -

Now, to list all known domains belonging to the active program:

~# bbrf domains

Documentation

  • Install the BBRF server - ensure you have a BBRF server running before making use of the client;
  • AWS Lambda - for more advanced use cases, deploy a BBRF client to AWS Lambda to integrate with BBRF agents and other lambdas;
  • Usage - view a number of more advanced examples, and learn how to set up a listener.

Installation

~# pip install bbrf
~# bbrf --version

Configuration

To start using the command line interface, you need to create the config file ~/.bbrf/config.json with the following contents:

{
    "username": "bbrf",
    "password": "<your secure password>",
    "couchdb": "https://<your-instance>:6984/bbrf",
    "slack_token": "<a slack token to receive notifications>"
}

Now you're ready to use BBRF from your command line:

~# bbrf programs

Python module

To use BBRF in your Python projects, use the interface as follows:

from bbrf.bbrf import BBRFClient as bbrf

# this will use the system's default ~/.bbrf/config.json file:
programs = bbrf('programs').run()

# to specify a custom configuration, provide a second argument:
conf = {
    "username": "bbrf",
    "password": "<your secure password>",
    "couchdb": "https://<your-instance>:6984/bbrf",
    "slack_token": "<a slack token to receive notifications>"
}

domains = bbrf('domains --view resolved', conf).run()

Dashboard

If you like browsing through your recon data with a GUI, you can make use of the bbrf dashboard on https://bbrf.me. Just plug in your server URL, username and password, and the dashboard will pull your data and make it searchable. Note that all communication to the server happens via your browser, so your data remains safe!

asciicast

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

bbrf-1.0.8.tar.gz (16.0 kB view hashes)

Uploaded Source

Built Distribution

bbrf-1.0.8-py3-none-any.whl (18.3 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page