/faraday

Collaborative Penetration Test and Vulnerability Management Platform

Primary LanguagePython

About

Faraday introduces a new concept - IPE (Integrated Penetration-Test Environment) a multiuser Penetration test IDE. Designed for distributing, indexing, and analyzing the data generated during a security audit.

Made for true pentesters!

Faraday was made to let you take advantage of the available tools in the community in a truly multiuser way.

Designed for simplicity, users should notice no difference between their own terminal application and the one included in Faraday. Developed with a specialized set of functionalities, users improve their own work. Do you remember the last time you programmed without an IDE? What IDEs are to programming, Faraday is to pentesting.

GUI - GTK

Faraday crunches the data you load into different visualizations that are useful to managers and pentesters alike.

GUI - Web

To read about the latest features check out the release notes!

Quickstart

Refer to the releases page for the latest pre-made installers for all supported operating systems.

Check out our documentation for detailed information on how to install Faraday in all of our supported platforms:

Supported Os

To begin the installation process, check out our Installation Wiki.

Development

You need Python 3.6+ and postgres to run the faraday server.

Install OS Dependencies

You need python 3.6+ and postgres. E.g. in Ubuntu

apt install postgresql python3.6

Make sure postgres is up and running before the next steps.

Install Python dependencies

get the latest source

git clone https://github.com/infobyte/faraday

create a virtual environment and install Python dependencies. For example:

cd faraday
python3 -m venv .venv
source .venv/bin/activate
python3 setup.py develop

Run the server

In the virtual environment, initialize the faraday database:

sudo faraday-manage initdb

This will give you a randomly generated password to log into the web UI. Now you can start the server

faraday-server

In your browser, now you can go to localhost:5985 and login with "faraday" as username, and the password generated in the initdb step.

New Features!

All of Faraday's latest features and updates are always available on our blog. There are new entries every few weeks, don't forget to check out our amazing new improvements on its latest entry!

Plugins list

You feed data to Faraday from your favorite tools through Plugins. Right now there are more than 70+ supported tools, among which you will find:

There are three Plugin types: console plugins which intercept and interpret the output of the tools you execute, report plugins which allows you to import previously generated XMLs, and online plugins which access Faraday's API or allow Faraday to connect to external APIs and databases.

Read more about Plugins.

Features

Workspaces

Information is organized into various Workspaces. Each Workspace contains a pentest team's assignments and all the intel that is discovered.

Conflicts

If two plugins produce clashing information for an individual element, a conflict that the user will have to resolve is generated. An example is if user1 incorporates host 127.0.0.1 OS:Linux and user2 incorporates 127.0.0.1 OS: Linux Ubuntu 13.10.

On our GTK interface there's a button on the bottom right corner of the main window displaying the number of conflicts in the current workspace. To resolve them, just click on the button and a window will open where you can edit the conflicting objects and select which one to keep.

Faraday plugin

Using our plugin you can perform various actions using the command line, for example:

$ cd faraday-dev/bin/
$ ./fplugin create_host 192.154.33.222 Android
1a7b2981c7becbcb3d5318056eb29a58817f5e67
$ ./fplugin filter_services http ssh -p 21 -a
Filtering services for ports: 21, 22, 80, 443, 8080, 8443

192.168.20.1    ssh     [22]    tcp open    None
192.168.20.1    http    [443]   tcp open    None
192.168.20.7    ssh     [22]    tcp open    Linux
192.168.20.7    http    [443]   tcp open    Linux
192.168.20.11   ssh     [22]    tcp open    Linux

Read more about the Faraday Plugin.

Notifications

Updating objects on other Faraday instances result in notifications on your Faraday GTK Client.

CSV Exporting

Faraday supports CSV Exporting from its WEB UI. More information

Links

Presentations