GithubHelp home page GithubHelp logo

c0rv4x / project-black Goto Github PK

View Code? Open in Web Editor NEW
284.0 13.0 48.0 9.11 MB

Pentest/BugBounty progress control with scanning modules

License: GNU General Public License v2.0

Python 66.21% JavaScript 33.48% HTML 0.05% CSS 0.12% Dockerfile 0.09% Shell 0.05%
pentest bugbounty scope-control

project-black's Introduction

Project Black

Scope control, scope scanner and progress tracker for easier working on a bug bounty or pentest project

Anatoly Ivanov of Positive Technologies

What is this tool for?

The tools encourages more methodical work on pentest/bugbounty, tracking the progress and general scans information.

It can launch

  • masscan
  • nmap
  • dirsearch
  • amass
  • patator

against the scope you work on and store the data in a handy form. Perform useful filtering of the project's data, for instance:

  • find me all hosts, which have open ports, but not 80
  • find me all hosts, whose ips start with 82.
  • find me hosts where dirsearch has found at least 1 file with 200 status code

Installation

Basic setup via docker-compose will run on any system which has docker and docker-compose dependency

If you don't have docker installed then

Docker for Ubuntu/Debian

sudo apt install docker.io

Tool installation

If you have docker set up, then for Ubuntu/Debian simply

sudo curl -L "https://github.com/docker/compose/releases/download/1.23.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
git clone https://github.com/c0rvax/project-black
cd project-black
sudo docker-compose up

If you see some SQL errors, try stopping docker-compose (Ctrl + C once and wait for nice shutdown) and run docker-compose up

This might take some time but that's it! Other distros should have very similar guidance.

Now head to http://localhost:5000, enter the credentials. They can be found in https://github.com/c0rvax/project-black/blob/master/config/config_docker.yml under application

For a more complex setup or something failed, see the wiki.

Resources notice

None of the docker containers restrict the amount of resources usage, you are on your own here, however, you can change the amount of parallel tasks for each worker separately. See the wiki for that

How to work?

After a setup, create a project and head to the respective page.

Open project

Now we will follow the basic steps which you can do within the application

Add scope

Let's say we are assessing hackerone.com and all it's subdomains. Write hackerone.com into the add scope field and press Add to scope

Scope add

Entrypoint has been added.

There are other ways to add scope, see wiki

Quick note on working

All of the tasks can read parameters from the user, however, lauching with some options won't diplay any new result as it is pretty difficult to parse all possible outputs of a program. So to start, try working duplicating the options from this manual.

Available options can be found on this page

Start amass

Click the blue button Launch task.

Launch task

A popup with parameters will appear.

amass options

It is recommended to click the All_top_level_domains check box and in argv enter -ip and click Fire! button.

amass recommended

This would launch amass -d hackerone.com -ip. Note that in this case we did not specify any domain. This is beacause the All_top_level_domains check box means looking into the scope which is stored in the database. So the program sees that hackerone.com was added to the scope and launches amass against it.

Upon finishing, the new data is automatically added to scope.

Start masscan and nmap

Now head to IPs tab. Click the already known button Launch task and choose masscan.

We will launch a quick scan, using the button Top N ports. This autocompletes the argv parameter. Press Fire!

Masscan launch

Results are automatically downloaded from the database.

Masscan results

Now click Launch task and choose nmap only open. This will find all the open ports which exist in the database and run nmap only against them.

Click Banner and Fire.

nmap only open start

Detected banner will automatically appear

nmap banners

Launching dirsearch

Launch dirsearch against all ips and all open ports (both HTTP and HTTPS would be tried)

On IPs tab click Launch task and select dirsearch. Fill in extenstions you want to try and click Fire!

You can launch dirseach agains hosts (not ips) on the Hosts tab.

Note on dirsearch

If there are no ports, dirsearch won't even start. So first, make sure you launched nmap or masscan to discover open ports.

Inspecting results

There are generally three ways to check the results:

  • IPs/Hosts list
  • IP/Host details
  • Dirsearch list

IPs and Hosts list

Those are two tabs. They work the same way so we will stop on Hosts.

Hosts list

You can see a list of hosts, their ports and files. Also you can edit a comment for that host.

Important part here is filtering box.

Filtering

You can aggregate different filters using the field shown above. Type the filter you want (there is a helper for that) and press Shift + Enter

Applied filters

IP/Host details

You can also view details on a specific host or ip. Press button with the glasses

Spectacles

There you will see dirsearch result for every open port on that host

Dirsearch list

Dirsearch list button will open a new window showing all found files for every dirsearch which was launched in this project.

Launching tasks against specific scope

IPs and Hosts Launch task are different! The button on IPs page will start against all ips within the current project, meanwhile the button on the Hosts page will launch against hosts.

To launch a task against some hosts, you should

  1. Filter the hosts
  2. Launch the task

Example: Applied filters 2

Some filters have been applied. If we now launch dirsearch, it will be launched against hosts which correspond to the used filters.

project-black's People

Contributors

c0rv4x avatar dependabot[bot] avatar fyoorer avatar legik avatar prettypineapple avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

project-black's Issues

Lock scopes is a little big buggy

Firstly, the button does not work when a project was just created
Secondly, the lock is not obvious on what it does, should add some pictures

IPs table cannot filter by host

The bug occurs as we don't fetch hosts when selecting ips. Also, the problem can be due to unhandled filter on the server-side

Add tasks chains

Add a possibility for a user to create a chains of tasks. E.x.: masscan -> nmap -> dirsearch

Generate /etc/hosts for resolved domains

Awesome resolver tries to query not only 8.8.8.8, but also requests NS server of one of the main domains. It would be nice to have a button which will display /etc/hosts format which you can put to your local machine in order to access the hosts the right way

Lock scope

Scopes of most projects are specified by ips (sometime ips and hosts). It would be really nice to have a lock, which disallows adding new ips or/and hosts

Resolve should grab as many NSes as possible

First of all, user should be able to specify the NS against which the domains would be resolved.
Secondly, right now autoresolve grabs the main domain from the first name on the list. If you resolve

test.yandex.ru
mail.google.com

resolver will take only NS of yandex.ru, whereas it should also take NS of google.com

  • custom NS
  • autoresolve grabs all main domains

Add button "google dork this"

It would be nice to have a special button on ipslist which would open a new window, requesting google dork of the current scope

Patator should accept user's dictionaries

Create a special component which can accept dictionaries from the user (upload them to a special directory), delete the dictionary, use it as a parameter to the suitable arguments

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.