archerysec

Archery

Centralize Vulnerability Assessment and Management for DevSecOps Team
Under GNU General Public License v3.0
By archerysec

opensource devops pentesting scanning devops-tools pentesters vulnerabilities vulnerability-assessment devsecops secdevops vulnerability-management






Support.

Your generous donations will keep us motivated.


Paypal:


Archery

Archery is an opensource vulnerability assessment and management tool which helps developers and pentesters to perform scans and manage vulnerabilities. Archery uses popular opensource tools to perform comprehensive scanning for web application and network. It also performs web application dynamic authenticated scanning and covers the whole applications by using selenium. The developers can also utilize the tool for implementation of their DevOps CI/CD environment.


Documentation



Overview of the tool

Requirements

OpenVAS

You can follow the instructions to install OpenVAS from Hacker Target


Note that, at this time, Archery generates a TCP connection towards the OpenVAS Manager (not the GSA): therefore, you need to update your OpenVAS Manager configuration to bind this port. Its default port (9390/tcp), but you can update this in your settings.


OWASP Zap

Also known as Zaproxy. Simply download and install the matching package for your distro from the official Github Page.


Systemd service file is available in the project.


Burp Scanner

Follow the instruction in order to enable Burp REST API.



Configure REST API endpoint in ArcherySec Settings


SSLScan

Simply install SSLScan from your package manager.


Nikto

Simply install Nikto from your package manager.


NMAP Vulners

Simply get the NSE file to the proper directory:


cd /usr/share/nmap/scripts/
sudo wget https://raw.githubusercontent.com/vulnersCom/nmap-vulners/master/vulners.nse


* DO NOT EXPOSE PUBLICLY, INTERNAL USE ONLY **
Restrict ArcherySec signup page on production.

Installation

export TIME_ZONE='Asia/Kolkata'


https://en.wikipedia.org/wiki/List_of_tz_database_time_zones


$ git clone https://github.com/archerysec/archerysec.git
$ cd archerysec
$ NAME=User [email protected] [email protected] bash setup.sh
$ ./run.sh


Windows installation

set TIME_ZONE='Asia/Kolkata'


https://en.wikipedia.org/wiki/List_of_tz_database_time_zones


$ git clone https://github.com/archerysec/archerysec.git
$ cd archerysec
$ setup.bat
$ run.bat


Note on installation for developers and contributors

If you wish to contribute to the project, make sure you are using requirements-dev.txt and run this command once you have installed the requirements


pre-commit install


This will automatically check for code linting and rules used on this project and if everything is correct, the commit will be made.


Note on manual and automated installation

If you are running the code directly without setting DJANGO_SETTINGS_MODULE, this will default to using archerysec.settings.base. all defaults will be used in this case and for customizing options you can copy local_settings.sample.py to local_settings.py


Docker option should use environment variables to set different settings of the container.


Docker Installation

ArcherySec Docker is available from ArcherySec Docker


```
$ docker pull archerysec/archerysec
$ docker run -e NAME=user -e [email protected] -e PAS[email protected] -it -p 8000:8000 archerysec/archerysec:latest


Docker Alpine image

$ docker pull archerysec/archerysec:alpine
$ docker run -e NAME=user -e [email protected] -e PA[email protected] -it -p 8000:8000 archerysec/archerysec:alpine


For persistence

docker run -it -p 8000:8000 -v :/archerysec archerysec/archerysec:latest
```


Using ArcherySec through docker compose

This is the simplest way to get things running. For the time being the docker-compose.yml is focused on development configuration but with some changes you can get a production ready definition.


Running the following command will get you all the services up, creates a postgres db and connects ArcherySec with it.


$ docker-compose up -d


Configure Serverless on AWS

Deploy ArcherySec as a Serverless on AWS using Zappa


Environment variables for this project

The following environment variables are used to change behaviour of the container settings


TIME_ZONE

export TIME_ZONE='Asia/Kolkata'


https://en.wikipedia.org/wiki/List_of_tz_database_time_zones


DB_PASSWORD

Database password for the postgres db server


DB_USER

Database user for the postgres db server


DB_NAME

Database name for the postgres db server


DJANGO_SETTINGS_MODULE

Django setting to use. currently this can be set to archerysecurity.settings.development or archerysecurity.settings.production depending on your needs


DJANGO_SECRET_KEY

Always generate and set a secret key for you project. Tools like this one can be used for this purpose


DJANGO_DEBUG

Set this variable to 1 if debug should be enabled


ARCHERY_WORKER

This variable is used to tell the container it has to behave as a worker to process tasks
and not as a web server running on port 8000. Set it to True if you want to run on
this mode.


EMAIL_HOST

export EMAIL_HOST='smtp.xxxxx.com'


EMAIL_USE_TLS

export EMAIL_USE_TLS=True


Set this variable to True or False


EMAIL_PORT

export EMAIL_PORT=587


Set this variable to SMTP port.


EMAIL_HOST_PASSWORD

export EMAIL_HOST_PASSWORD='password'


Set this variable to SMTP Password.


EMAIL_HOST_USER

export EMAIL_HOST_USER='[email protected]'


Set this variable to SMTP Email.


Setup third-party integrations
ZAP running daemon mode

Locate your ZAP startup script, and execute it using the options detailed below.


Windows :


zap.bat -daemon -host 0.0.0.0 -port 8080 -config api.disablekey=true -config api.addrs.addr.name=.* -config api.addrs.addr.regex=true


Others :


zap.sh -daemon -host 0.0.0.0 -port 8080 -config api.disablekey=true -config api.addrs.addr.name=.* -config api.addrs.addr.regex=true


Zap Setting

  1. Go to Setting Page

  2. Edit ZAP setting or navigate URL : http://host:port/webscanners/setting_edit/

  3. Fill below required information.

  4. Zap API Key: Leave blank if you using ZAP as daemon api.disablekey=true

  5. Zap API Host: Your zap API host ip or system IP Ex. 127.0.0.1 or 192.168.0.2

  6. Zap API Port: ZAP running port Ex. 8080


OpenVAS Setting

  1. Go to setting Page

  2. Edit OpenVAS setting or navigate URL: http://host:port/networkscanners/openvas_setting

  3. Fill all required information and click on save.


Road Map

Lead Developer

Anand Tiwari


Social Media