Skip to content

A user-friendly HTTP(s) brute-forcing tool featuring customizable plugin functionality and support for standard proxies and Tor anonymity network.

License

Notifications You must be signed in to change notification settings

kayake/cerberus

Repository files navigation

Cerberus

Warning

THIS PROJECT IS IN BETA. IF THERE ARE ANY BUGS OR PROBLEMS, PLEASE REPORT THEM TO Issue

Cerberus offers customizable plugin functionality and proxy support, encompassing both standard proxies and Tor. Its user-friendly interface includes a custom terminal, and it features a flexible response check mechanism accepting Status Code, JSON Data, Status Text, and Full Response Text as valid responses.

Note

Significantly, the process verifies the presence of a designated key within the JSON response.

Installation

git clone /~https://github.com/kayake/cerberus.git && cd cerberus && pip install -r requirements.txt

Note

We recommend using git clone /~https://github.com/kayake/cerberus.git && cd cerberus && poetry install.

🅘 If your PIP version is 23.x.x, please review the documentation Python package installation failure (PIP: >= 23.0.0).

Usage

python3 crbs.py

Warning

For version compatibility details, please consult the Security Policy document.

Configuration

To enhance anonymity, proxy servers or Tor should be configured. Cerberus simplifies this configuration process, thereby improving overall anonymity.

Setting up proxies

Two methods exist for proxy configuration: command-line interface or a configuration file (config.yaml)

Using shell

cerberus > config --set proxy.address 127.0.0.1:8080
cerberus > config --set proxy.protocol http

The file should be formatted as follows:

proxy:
    address: 127.0.0.1:8080
    protocol: http

Furthermore, you can generate and configure a proxy list as follows:

cerberus > config --set proxies your/proxies_list

Important

The proxy list must follow a structure. Proxies List Stucture

Edit .yaml file

As previously discussed, modifying the .yaml file offers the simplest approach, as follows:

proxies: my/proxy/list
proxy:
    address: 127.0.0.1
    protocol: http

Note

As previously discussed, adherence to a defined structure for proxy list configuration is required.

Proxies List Structure

The proxy list must adhere to the following structure:

host:port protocol
user:password@host:port protocol

Setting up Tor

To utilize Tor, adhere to these fundamental steps:

Set up Control Port and Password

On Linux

~$ tor --hash-password "<your_plain_text_password>"
~$ sudo nano /etc/tor/torrc

Important

The password is optional

ControlPort 9051  # Control port (you can choose another port if needed)
HashedControlPassword <hashed_password>  # Encrypted password (Optional)
# CookieAuthentication 1  # Optional (cookie-based authentication)

On Windows

C:\> cd "C:\Users\<YourUser>\Desktop\Tor Browser\Browser\TorBrowser\Tor"
C:\> tor.exe --hash-password "<your_plain_text_password>"

Note

This step is optional

If you installed the Tor Browser, the torrc file is usually located at:

C:\Users\<YourUser>\Desktop\Tor Browser\Browser\TorBrowser\Data\Tor\torrc

Open it with a text editor (e.g., Notepad++)

ControlPort 9051
HashedControlPassword <hashed_password>

Configure Tor in .yaml File

tor:
    protocol: socks5
    port: 9050
    control_port: 9051
    password: my_hashed_password # if there ins't password, leave it null

Now we can use Tor. Use option --tor (in attack command).

Commands

Start an Attack

cerberus > attack -u https://example.com/ -D user=^USER^&pass=^PASS^ -R 401 -T 6 --tor --random-agent -l admin -P password/list.txt

Tip

When using Tor, limit the number of threads.

The --tor option may be replaced with --proxy or --proxies.

Plugins

To extend functionality, plugins may be added. Should you require a new plugin, please create a single file and place it within the lib/plugins/ directory. The file must adhere to the following structure:

# lib/plugins/test/hello.world.py

class MyClass:
    description = "My First Plugin!"
    """ A generic Class Name """
    def __init__(self, this):
        self.this = this # lib/core/shell/handler.py properties

    def run(self, arguments):
        print("Hello world!")
        """ Getting arguments """
        for argument in arguments:
            print(argument)

Subsequently, execute the plugin.

cerberus > plugin list
==================================================
test/hello.world.py - My First Plugin!
==================================================
cerberus > plugin use test/hello.world.py
cerberus test(test/hello.world.py) > a ay au
Hello world!
a
ay
au
cerberus test(test/hello.world.py) > 

Help

cerberus > ?

help - It helps you
attack - Start the bruteforce attack
plugin - Use any plugins in /lib/plugins/
config - Configure your configuration file

cerberus > 

About

A user-friendly HTTP(s) brute-forcing tool featuring customizable plugin functionality and support for standard proxies and Tor anonymity network.

Topics

Resources

License

Security policy

Stars

Watchers

Forks

Packages

No packages published

Languages