Giter VIP home page Giter VIP logo

archerysec / archerysec Goto Github PK

View Code? Open in Web Editor NEW
2.2K 97.0 497.0 68.04 MB

Automate Your Application Security Orchestration And Correlation (ASOC) Using ArcherySec.

Home Page: https://www.archerysec.com/

License: GNU General Public License v3.0

Python 32.58% CSS 10.95% JavaScript 38.04% HTML 17.87% Shell 0.14% Lua 0.18% Dockerfile 0.07% Batchfile 0.03% SCSS 0.13%
vulnerability-assessment vulnerabilities scanning pentesting vulnerability-management opensource pentesters secdevops devops devops-tools

archerysec's Introduction

Follow Archery on Twitter

PyPI - License PyPI - Django Version Travis-ci CII Best Practices

Road Map BlackHat USA Arsenal 2018 BlackHat Asia Arsenal 2018 DEFCON 26 Demolabs

Support.

Your generous donations will keep us motivated.

Paypal: Donate via Paypal

Archery

ArcherySec allow to interact with continuous integration/continuous delivery (CI/CD) toolchains to specify testing, and control the release of a given build based on results. Its include prioritization functions, enabling you to focus on the most critical vulnerabilities. ArcherySec uses popular opensource tools to perform comprehensive scanning for web application and network. The developers can also utilize the tool for implementation of their DevOps CI/CD environment.

Documentation

Demo

Overview

Overview of the tool

  • Perform Web and Network vulnerability Scanning using opensource tools.
  • Correlates and Collaborate all raw scans data, show them in a consolidated manner.
  • Perform authenticated web scanning.
  • Perform web application scanning using selenium.
  • Vulnerability Management.
  • Enable REST API's for developers to perform scanning and Vulnerability Management.
  • JIRA Ticketing System.
  • Sub domain discovery and scanning.
  • Periodic scans.
  • Concurrent scans.
  • Useful for DevOps teams for Vulnerability Management.

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.

  • Edit file webscanners/web_views.py
  • Search def signup function and comment @public decorator
  • Edit file archeryapi/views.py
  • Search def class CreateUsers and comment @public decorator
  • Edit file archerysecurity/settings/base.py
  • Search STRONGHOLD_PUBLIC_URLS
  • Comment r'^/api/createuser/$',

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] PASSWORD=admin@123A 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 PASSWORD=admin@123A  -it -p  8000:8000 archerysec/archerysec:latest

# Docker Alpine image 
$ docker pull archerysec/archerysec:alpine
$ docker run -e NAME=user -e [email protected] -e PASSWORD=admin@123A  -it -p 8000:8000 archerysec/archerysec:alpine

# For persistence

docker run -it -p 8000:8000 -v <your_local_dir>:/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.
    • Zap API Key: Leave blank if you using ZAP as daemon api.disablekey=true
    • Zap API Host: Your zap API host ip or system IP Ex. 127.0.0.1 or 192.168.0.2
    • 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

  • Scanners parser & Plugin

    • Nessus (XML)
    • Webinspect (XML)
    • Acunetix (XML)
    • Netsparker (XML)
    • OWASP ZAP (XML) & (Plugin)
    • Burp Pro Scanner (XML)
    • Arachni (XML) & (Plugin)
    • OpenVAS (XML) & (Plugin)
    • Bandit Scan (XML)
    • Dependency Check (XML)
    • FindBugs (XML)

    More Scanners

Lead Developer

Anand Tiwari

Social Media

archerysec's People

Contributors

ahmed-nasr-hassan avatar anandtiwarics avatar arthur4ires avatar brightside56 avatar bt-nia avatar decidedlygray avatar dependabot[bot] avatar faichelbaum avatar httpdss avatar mrpnkt avatar noraj avatar nsagot avatar pyup-bot avatar rbogaert-scw avatar resource-not-found-blank avatar snyk-bot avatar tosto92 avatar visallard-scw avatar wmspydev 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  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

archerysec's Issues

Didn't work ZAP plugin

Hi, i run Archery and run ZAP. Fill settings off zap plugin, but after create scan order i didn't see any scan proccess. Logs of ZAP

 zap.sh -daemon -host 127.0.0.1 -port 8080 -config api.disablekey=true -config api.addrs.addr.name=.* -config api.addrs.addr.regex=true
Found Java version 1.8.0_161
Available memory: 6035 MB
Setting jvm heap size: -Xmx1508m
0 [main] INFO org.zaproxy.zap.DaemonBootstrap  - OWASP ZAP 2.6.0 started 06/03/18 12:56:26
36 [main] INFO org.parosproxy.paros.common.AbstractParam  - Setting config api.disablekey = true was true
36 [main] INFO org.parosproxy.paros.common.AbstractParam  - Setting config api.addrs.addr.name = .* was .*
36 [main] INFO org.parosproxy.paros.common.AbstractParam  - Setting config api.addrs.addr.regex = true was true
40 [main] INFO org.parosproxy.paros.network.SSLConnector  - Reading supported SSL/TLS protocols...
41 [main] INFO org.parosproxy.paros.network.SSLConnector  - Using a SSLEngine...
96 [main] INFO org.parosproxy.paros.network.SSLConnector  - Done reading supported SSL/TLS protocols: [SSLv2Hello, SSLv3, TLSv1, TLSv1.1, TLSv1.2]

................................................................

6216 [ZAP-daemon] INFO org.zaproxy.zap.DaemonBootstrap  - ZAP is now listening on 127.0.0.1:8080

If i create order on Burp (Burp plugin i didn't use) - i saw strings on domain scan list

Template Docker-compose with full Archerysec tools

Is your feature request related to a problem? Please describe.
I'm working with Archerysec + OpenVas + Burp + Zap. I create a docker-compose to unify all theses component and that's so practical.

Describe the solution you'd like
Create a unify docker-compose template available on Github for all. I can work on it, but the question is if we do that on this repository or not

Fix security issues in docker image

Describe the bug
The defaults for the docker image are quite insecure. This is a combined issue ticket for tracking specific issues such as:

  • Running the application as root
  • Building FROM an unversioned base image (which is also fairly large, embedding a ton of stuff you don't need)

This results in a massive image containing a ton of stuff we probably don't need. This influences container rescheduling (pull wait time) but also just more dead code that'll just contain vulnerabilities.

REPOSITORY              TAG                 IMAGE ID            CREATED             SIZE
archerysec/archerysec   latest              529cb12f73f6        4 hours ago         2.71GB

To me its clear this (awesome) tool needs some packaging love.

Expected behavior
Package and run with secure defaults.

Additional context
This is a tracking issue for a PR i'm going to file separately.

Because a number of people here are still experimenting with all these tools and benefit from the kali base image i'm proposing to build 2 versions: one built using the currently existing build flow (basically embedding all of kali linux) and another slim image as is customary in the docker ecosystem with EG an alpine linux base image, containing the bare minimum toolchain to run the project.

Alpine linux, being a stripped down distribution, carries a number of security features such as not shipping much code by default, replacing glibc for musl and replacing openssl for libressl.

Create a CI integration

Idea
Creation of Continuous Installation to test at least the installation of a local instance and a Docker instance. We can also imagine that in the futur we can test Archerysec API.

Solution
Create a Travis CI, this is my priority.

ZAP scanner runs successfully, but Archerysec does not report any information.

image

`
Scanning Target https://xxxxxxx.org

ZAP Scan Status: 0

ZAP Scan Status: 1

ZAP Scan Status: 6

ZAP Scan Status: 28

ZAP Scan Status: 44

Scan Completed
`

It looks like the scan completes, but in Archerysec, there are no scans available, and nothing listed anywhere that shows I even started a scan. I feel like I am doing something very wrong, but I am not sure what it could be. Scan was initiated from Archerysec interface under Scan < Domain with ZAP radio button ticked.

Django server errors

When I try to merge OWASP Zap, in Archery console I saw an error like bellow. Also
I receive similar one when I try options: 'covert to pdf' and 'add a cookie' in scanning option.

My OS: Kali Linux 2018

Traceback (most recent call last):
  File "/usr/local/lib/python2.7/dist-packages/django/core/handlers/exception.py", line 41, in inner
    response = get_response(request)
  File "/usr/local/lib/python2.7/dist-packages/django/utils/deprecation.py", line 142, in __call__
    response = self.process_response(request, response)
  File "/usr/local/lib/python2.7/dist-packages/django/middleware/common.py", line 115, in process_response
    if response.status_code == 404:
AttributeError: 'unicode' object has no attribute 'status_code'
[10/Jul/2018 18:28:17] "POST /webscanners/scan_launch HTTP/1.1" 500 16794

multiple report support

i thought about an idea, it will be nice to select date range and generate mutual report combining several reports/scannings into one PDF.

Page not found (404)

I upload one acunetix report,and i click the button of "Action".Then it show ๏ผš

Page not found (404)
Request Method: | GET
http://127.0.0.1:8000/webscanners/acunetix_vuln_list?scan_id=6b18a06d-bacd-4b92-9bf9-265d56ddaa3a

Using the URLconf defined in archerysecurity.urls, Django tried these URL patterns, in this order:

1.admin/
2.webscanners/ ^login/$ [name='login']
3.webscanners/ ^signup/$ [name='signup']
... ...
The current path, webscanners/acunetix_vuln_list, didn't match any of these.

There should be a option to add user name and password for a url, as to add cookies is not the best option.

Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]

Describe the solution you'd like
A clear and concise description of what you want to happen.

Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.

Additional context
Add any other context or screenshots about the feature request here.

CI/CD integration

Describe the bug
Need more details on how to use selenium along with this for CI/CD integration

Use of Selenium

Describe the bug
What is the role of Selenium in web application scans?

Offline version

We use your project in a closed lab environment and we manually had to delete all of the online requests in the code so it won't try to reach online sites (like google fonts), after we did that the web GUI worked a lot faster. I bet a lot of other people do that and that it will save time and make the web GUI smoother. Hope you like my idea, thanks!

Code cleanup and improve coding style.

The code should look readable and manageable. Separate folders, split views, a separate folder for the scanners plugin and parsers. Need improvement in Models file.

Scanners parser & Plugin

  • Acunetix Scanner
  • Anchore-Engine
  • Aqua
  • Anchore Grype
  • Arachni Scanner
  • AppSpider (Rapid7)
  • AuditJS (OSSIndex)
  • AWS Security Hub
  • AWS Prowler Scanner
  • Azure Security Center Recommendations Scan
  • Bandit
  • Blackduck Hub
  • Brakeman Scan
  • Bugcrowd
  • Bundler-Audit
  • Burp XML
  • Burp Enterprise Scan
  • CargoAudit Scan
  • Checkov
  • Clair Scan
  • Cobalt.io Scan
  • Cobalt.io API Import
  • Coverity API
  • Crashtest Security
  • CredScan Report
  • Contrast Scanner
  • Checkmarx
  • Choctaw Hog parser
  • Cloudsploit
  • CycloneDX
  • DawnScanner
  • Dependency Check
  • Dependency Track
  • DrHeader
  • Dockle Report
  • Detect-secrets
  • ESLint
  • Fortify
  • Generic Findings Import
  • Gosec Scanner
  • Gitleaks
  • GitLab SAST Scan
  • GitLab SCA Scan
  • GitLab Container Scan
  • GitLab Dependency Scanning Report
  • Github Vulnerability
  • Hadolint
  • Harbor Vulnerability
  • Horusec
  • HuskyCI Report
  • IBM AppScan DAST
  • Immuniweb Scan
  • IntSights Report
  • JFrogXRay
  • JFrog XRay Unified
  • Kiuwan Scanner
  • kube-bench Scanner
  • KICS Scanner
  • Meterian Scanner
  • Microfocus Webinspect Scanner
  • MobSF Scanner
  • Mobsfscan
  • Nessus (Tenable)
  • Nessus WAS (Tenable)
  • Netsparker
  • Nexpose XML 2.0 (Rapid7)
  • nodejsscan
  • NPM Audit
  • Nuclei
  • Openscap Vulnerability Scan
  • OpenVAS
  • OssIndex Devaudit
  • Oss Review Toolkit
  • PHP Security Audit v2
  • PHP Symfony Security Checker
  • Probely
  • Qualys Scan
  • Qualys Webapp Scan
  • Retire.js
  • Risk Recon API Importer
  • SARIF
  • ScoutSuite
  • Semgrep JSON Report
  • SKF Scan
  • Snyk
  • SonarQube Scan
  • SpotBugs
  • Sonatype
  • SSL Labs
  • Sslscan
  • Sslyze Scan
  • SSLyze 3 Scan
  • Testssl Scan
  • Terrascan
  • Trivy
  • Trufflehog
  • Trustwave
  • Twistlock (Prisma Compute)
  • TFSec
  • Visual Code Grepper (VCG)
  • Veracode
  • Wapiti Scan
  • Whitesource Scan
  • Wpscan Scanner
  • Wfuzz JSON importer
  • Xanitizer
  • Yarn Audit
  • Zed Attack Proxy

Scanner File Format Support

Dockerfile command not able to run django migrate commands

hello, no auth after sign up account

Environment:

Request Method: POST
Request URL: http://localhost:8000/auth/

Django Version: 1.11.8
Python Version: 2.7.14
Installed Applications:
['archerysecurity',
'rest_framework',
'webscanners',
'projects',
'APIScan',
'networkscanners',
'django.contrib.admin',
'stronghold',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'rest_framework.authtoken',
'easy_pdf',
'Dashboard']
Installed Middleware:
['django.middleware.security.SecurityMiddleware',
'stronghold.middleware.LoginRequiredMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware']

Traceback:

File "/usr/local/lib/python2.7/site-packages/django/core/handlers/exception.py" in inner
41. response = get_response(request)

File "/usr/local/lib/python2.7/site-packages/django/core/handlers/base.py" in _get_response
187. response = self.process_exception_by_middleware(e, request)

File "/usr/local/lib/python2.7/site-packages/django/core/handlers/base.py" in _get_response
185. response = wrapped_callback(request, *callback_args, **callback_kwargs)

File "/root/archerysec/webscanners/web_views.py" in auth_view
121. user = auth.authenticate(username=username, password=password)

File "/usr/local/lib/python2.7/site-packages/django/contrib/auth/init.py" in authenticate
70. user = _authenticate_with_backend(backend, backend_path, request, credentials)

File "/usr/local/lib/python2.7/site-packages/django/contrib/auth/init.py" in _authenticate_with_backend
115. return backend.authenticate(*args, **credentials)

File "/usr/local/lib/python2.7/site-packages/django/contrib/auth/backends.py" in authenticate
18. user = UserModel._default_manager.get_by_natural_key(username)

File "/usr/local/lib/python2.7/site-packages/django/contrib/auth/base_user.py" in get_by_natural_key
48. return self.get(**{self.model.USERNAME_FIELD: username})

File "/usr/local/lib/python2.7/site-packages/django/db/models/manager.py" in manager_method
85. return getattr(self.get_queryset(), name)(*args, **kwargs)

File "/usr/local/lib/python2.7/site-packages/django/db/models/query.py" in get
374. num = len(clone)

File "/usr/local/lib/python2.7/site-packages/django/db/models/query.py" in len
232. self._fetch_all()

File "/usr/local/lib/python2.7/site-packages/django/db/models/query.py" in _fetch_all
1118. self._result_cache = list(self._iterable_class(self))

File "/usr/local/lib/python2.7/site-packages/django/db/models/query.py" in iter
53. results = compiler.execute_sql(chunked_fetch=self.chunked_fetch)

File "/usr/local/lib/python2.7/site-packages/django/db/models/sql/compiler.py" in execute_sql
899. raise original_exception

Exception Type: OperationalError at /auth/
Exception Value: no such table: auth_user

Unable to sign in with the user created through the sign up page.

Dear Author,

Thank you for building an amazing product. Highly appreciate your efforts in bringing up this product. Can you please help me login to the system. Pulled a docker image as mentioned in the documentation. Started the docker and got the beautiful UI. May I know what is the default superuser created for docker image. I can't find anywhere mentioned in document. Also I used the signup page and trying to login with the user created. But I am getting the below error.

Page 404.
127.0.0.1:8000/catalog

Can you please help me here. Do i need to install the below requirement separately. If yes, what version f selenium and firefox needs to be used for working product.

Python 2.7
OpenVas 8
OWASP ZAP 2.7.0
Selenium Python Firefox Web driver

Thanks again for the great product. Looking forward for your help in setting up these.

Regards,
Prasanna B

error http 500 on launching web scan ZAP

when launching ZAP scan view the "+Add Web Scan" button on new project wizard there is a 500 HTTP error :
Internal Server Error: /webscanners/scan_launch
Traceback (most recent call last):
File "/usr/local/lib/python2.7/dist-packages/django/core/handlers/exception.py", line 41, in inner
response = get_response(request)
File "/usr/local/lib/python2.7/dist-packages/django/utils/deprecation.py", line 142, in call
response = self.process_response(request, response)
File "/usr/local/lib/python2.7/dist-packages/django/middleware/common.py", line 115, in process_response
if response.status_code == 404:
AttributeError: 'unicode' object has no attribute 'status_code'
[25/Jul/2018 19:51:04] "POST /webscanners/scan_launch HTTP/1.1" 500 15362
138965 [ZAP-ProxyThread-1] WARN org.zaproxy.zap.extension.api.API - Bad request to API endpoint [/JSON/spider/action/excludeFromScan/] from [127.0.0.1]:
Missing Parameter (missing_parameter) : regex
at org.zaproxy.zap.extension.api.API.handleApiRequest(API.java:423)
at org.parosproxy.paros.core.proxy.ProxyThread.processHttp(ProxyThread.java:456)
at org.parosproxy.paros.core.proxy.ProxyThread.run(ProxyThread.java:317)
at java.lang.Thread.run(Thread.java:748)
138976 [ZAP-ProxyThread-2] WARN org.zaproxy.zap.extension.api.API - Bad request to API endpoint [/JSON/replacer/action/addRule/] from [127.0.0.1]:
Missing Parameter (missing_parameter) : replacement
at org.zaproxy.zap.extension.api.API.handleApiRequest(API.java:423)
at org.parosproxy.paros.core.proxy.ProxyThread.processHttp(ProxyThread.java:456)
at org.parosproxy.paros.core.proxy.ProxyThread.run(ProxyThread.java:317)
at java.lang.Thread.run(Thread.java:748)
it is important to mention that the scan actually launches.
from my inspection the parameters passed to the server via POST are ok.

OpenVas

Exception in thread Thread-3:
Traceback (most recent call last):
  File "/usr/lib/python2.7/threading.py", line 801, in __bootstrap_inner
    self.run()
  File "/usr/lib/python2.7/threading.py", line 754, in run
    self.__target(*self.__args, **self.__kwargs)
  File "/root/archerysec/networkscanners/views.py", line 144, in openvas_scanner
    scanner = openvas.connect()
  File "/root/archerysec/scanners/scanner_plugin/network_scanner/openvas_plugin.py", line 55, in connect
    str(lod_ov_pass))
  File "/usr/local/lib/python2.7/dist-packages/openvas_lib/__init__.py", line 504, in __init__
    raise VulnscanVersionError("Invalid OpenVAS version in remote server.")
VulnscanVersionError: Invalid OpenVAS version in remote server.

I got OpenVas 9 installed... I guess it's the problem but I can't manage to install OpenVas 8 properly.

No persistance (Docker)

Describe the bug
I have no persistance of my configurations.

To Reproduce
My Docker-compose

version: '3'
services:
  archery:
    image: archerysec/archerysec:latest
    ports:
      - 8000:8000
    volumes:
      - /home/myuser/cyber-kit/archerysec/:/root/.archerysec/

Create a user, projects and restart your container. No configuration saved and the mounted directory is empty

Smartphone (please complete the following information):

  • OS: Ubuntu 16.04
  • Docker version : 18.05.0-ce

no success/failure indication in all procedures

hello,

during my play with the system i have found that in some places (like re-scan) there is an indication(popup) after performing the action and some functionalities it is missing.

for example when launching a new scan after pressing on "launch" nothing happens regarding the UI.
i have expected to get notified with "Success" message and relevant redirection.

thanks.

Set superuser for docker?

Am I missing something in the documentation? How do you set a superuser with the docker container?

Delete cookies

There's no obvious way to delete cookies previously set for webscan targets. One of the ways if to click "Add cookies" and provide empty cookie for url. It disappears from the web view but still sent to ZAP.
Is there a way how I can wipe that data?

VulnscanServerError: Connection refused (OpenVAS)

Traceback (most recent call last):
File "/usr/lib64/python2.7/threading.py", line 812, in __bootstrap_inner
self.run()
File "/usr/lib64/python2.7/threading.py", line 765, in run
self.__target(*self.__args, **self.__kwargs)
File "/home/nf3985/archerysec/networkscanners/views.py", line 177, in openvas_scanner
scanner = openvas.connect()
File "/home/nf3985/archerysec/scanners/scanner_plugin/network_scanner/openvas_plugin.py", line 56, in connect
str(lod_ov_pass))
File "/usr/lib/python2.7/site-packages/openvas_lib/init.py", line 511, in init
raise VulnscanServerError("Error while connecting to the server: %s" % e.message)
VulnscanServerError: Error while connecting to the server: [Errno 111] Connection refused

  • OS: CentOS7

I keep getting this even though I have Archerysec installed on the same server as OpenVas. I have verified correct username and password for admin as I am able to log in with GSAD.

I have tried using 127.0.0.1, localhost, 0.0.0.0, 10.0.1.15 (internal IP of server) but have not had any luck. Have you seen anyone have this issue before?

Facing issue with integration of ZAP in Docker

I am facing errors while connecting the ZAP . I am unable to connect and scan the domains or url's and also i am trying to integrate within the same instance and as a separate instances. I am getting the following error while connecting with ZAP. And also it wont store any logs to check the results it shows everything as a empty files . Could you please help on this error.
Thanks in advance.

[14/Jun/2018 17:05:40] "POST /webscanners/xml_upload/ HTTP/1.1" 302 0

[14/Jun/2018 17:05:40] "GET /webscanners/scans_list/ HTTP/1.1" 200 17271
[14/Jun/2018 17:06:45] "GET /webscanners/scans_list/ HTTP/1.1" 200 17271
split_lenght 1
[14/Jun/2018 17:06:51] "POST /webscanners/del_scan/ HTTP/1.1" 302 0
[14/Jun/2018 17:06:51] "POST /webscanners/zap_rescan/ HTTP/1.1" 302 0
Failed to parse: Zap Path:PORT
Failed to parse: Zap Path:PORT
Failed to parse: Zap Path:PORT
targets:----- www.google.com
Failed to parse: Zap Path:PORT
Failed to parse: Zap Path:PORT
Failed to parse: Zap Path:PORT
Spider Completed
[14/Jun/2018 17:06:52] "GET /webscanners/scans_list/ HTTP/1.1" 200 17560
[14/Jun/2018 17:06:53] "GET /webscanners/scans_list/ HTTP/1.1" 200 17564
Scanning Target www.google.com
Failed to parse: Zap Path:PORT
/usr/local/lib/python2.7/dist-packages/django/db/models/fields/init.py:1451: RuntimeWarning: DateTimeField zap_scans_db.date_time received a naive datetime (2018-06-14 17:06:56.983405) while time zone support is active.
RuntimeWarning)
Failed to parse: Zap Path:PORT
Exception in thread Thread-109:
Traceback (most recent call last):
File "/usr/lib/python2.7/threading.py", line 801, in __bootstrap_inner
self.run()
File "/usr/lib/python2.7/threading.py", line 754, in run
self.__target(*self.__args, **self.__kwargs)
File "/root/archerysec/webscanners/web_views.py", line 260, in launch_web_scan
all_vuln = zap.zap_scan_result()
File "/root/archerysec/scanners/scanner_plugin/web_scanner/zap_plugin.py", line 286, in zap_scan_result
all_vuln = ZAPScanner.zap.core.alerts(self.target_url)
File "/usr/local/lib/python2.7/dist-packages/zapv2/core.py", line 49, in alerts
return six.next(six.itervalues(self.zap._request(self.zap.base + 'core/view/alerts/', params)))
File "/usr/local/lib/python2.7/dist-packages/zapv2/init.py", line 159, in _request
data = self._request_api(url, get)
File "/usr/local/lib/python2.7/dist-packages/zapv2/init.py", line 149, in _request_api
return self.session.get(url, params=query, proxies=self.__proxies, verify=False)
File "/usr/local/lib/python2.7/dist-packages/requests/sessions.py", line 521, in get
return self.request('GET', url, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/requests/sessions.py", line 508, in request
resp = self.send(prep, **send_kwargs)
File "/usr/local/lib/python2.7/dist-packages/requests/sessions.py", line 618, in send
r = adapter.send(request, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/requests/adapters.py", line 405, in send
conn = self.get_connection(request.url, proxies)
File "/usr/local/lib/python2.7/dist-packages/requests/adapters.py", line 303, in get_connection
proxy_manager = self.proxy_manager_for(proxy)
File "/usr/local/lib/python2.7/dist-packages/requests/adapters.py", line 197, in proxy_manager_for
**proxy_kwargs)
File "/usr/local/lib/python2.7/dist-packages/urllib3/poolmanager.py", line 440, in proxy_from_url
return ProxyManager(proxy_url=url, **kw)
File "/usr/local/lib/python2.7/dist-packages/urllib3/poolmanager.py", line 385, in init
proxy = parse_url(proxy_url)
File "/usr/local/lib/python2.7/dist-packages/urllib3/util/url.py", line 199, in parse_url
raise LocationParseError(url)
LocationParseError: Failed to parse: Zap Path:PORT

Is there any provision for HOST mapping in Archery ?

I am trying to deploy Archery and I was hoping if there is anyway I could do Host Mapping specifically for Archery.
I am using docker image to run Archery
Also I want to know if Git update and Docker image update for Archery happen at the same time ?

STEPS TO REPRODUCE THE ISSUE

1. This is the first step
2. This is the second step
3. Further steps, etc.

CONSOLE OUTPUT

Paste the output generated at your console/terminal while scanning the mobile app.
The console log should contain the error or bug you are seeing
(NOT REQUIRED FOR FEATURE REQUEST/ENHANCEMENT)

Can up Archerysec in my Docker

Describe the bug
Python makes a error when I want to up Archery. We can't have access to web plateform too

To Reproduce

nsagot@wall-e:~/.ssh$ docker run -it -p 8000:8000 archerysec/archerysec:latest
Performing system checks...

Unhandled exception in thread started by <function wrapper at 0x7f4617de3578>
Traceback (most recent call last):
  File "/usr/local/lib/python2.7/dist-packages/django/utils/autoreload.py", line 228, in wrapper
    fn(*args, **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/django/core/management/commands/runserver.py", line 125, in inner_run
    self.check(display_num_errors=True)
  File "/usr/local/lib/python2.7/dist-packages/django/core/management/base.py", line 359, in check
    include_deployment_checks=include_deployment_checks,
  File "/usr/local/lib/python2.7/dist-packages/django/core/management/base.py", line 346, in _run_checks
    return checks.run_checks(**kwargs)
  File "/usr/local/lib/python2.7/dist-packages/django/core/checks/registry.py", line 81, in run_checks
    new_errors = check(app_configs=app_configs)
  File "/usr/local/lib/python2.7/dist-packages/django/core/checks/urls.py", line 16, in check_url_config
    return check_resolver(resolver)
  File "/usr/local/lib/python2.7/dist-packages/django/core/checks/urls.py", line 26, in check_resolver
    return check_method()
  File "/usr/local/lib/python2.7/dist-packages/django/urls/resolvers.py", line 254, in check
    for pattern in self.url_patterns:
  File "/usr/local/lib/python2.7/dist-packages/django/utils/functional.py", line 35, in __get__
    res = instance.__dict__[self.name] = self.func(instance)
  File "/usr/local/lib/python2.7/dist-packages/django/urls/resolvers.py", line 405, in url_patterns
    patterns = getattr(self.urlconf_module, "urlpatterns", self.urlconf_module)
  File "/usr/local/lib/python2.7/dist-packages/django/utils/functional.py", line 35, in __get__
    res = instance.__dict__[self.name] = self.func(instance)
  File "/usr/local/lib/python2.7/dist-packages/django/urls/resolvers.py", line 398, in urlconf_module
    return import_module(self.urlconf_name)
  File "/usr/lib/python2.7/importlib/__init__.py", line 37, in import_module
    __import__(name)
  File "/root/archerysec/archerysecurity/urls.py", line 25, in <module>
    url(r'^networkscanners/', include('networkscanners.urls')),
  File "/usr/local/lib/python2.7/dist-packages/django/conf/urls/__init__.py", line 50, in include
    urlconf_module = import_module(urlconf_module)
  File "/usr/lib/python2.7/importlib/__init__.py", line 37, in import_module
    __import__(name)
  File "/root/archerysec/networkscanners/urls.py", line 13, in <module>
    from networkscanners import views
  File "/root/archerysec/networkscanners/views.py", line 34, in <module>
    from scanners.scanner_plugin.network_scanner.openvas_plugin import OpenVAS_Plugin, vuln_an_id
  File "/root/archerysec/scanners/scanner_plugin/network_scanner/openvas_plugin.py", line 1, in <module>
    from openvas_lib import VulnscanManager, VulnscanException
ImportError: No module named openvas_lib

Desktop (please complete the following information):

  • OS: Ubuntu 16.04
  • Docker version : 18.05.0-ce

JIRA Ticketing System

  • Open issue ticket
  • status of the ticket
  • closed tickets info
  • statistics of open and closed ticket
  • A dashboard of JIRA ticket

TypeError running migration on initial Kali box install

I am trying to get this up in a kali box, however when running migration this is coming back and if I try to start the server it just gives an app error...

`# python manage.py migrate
Operations to perform:
  Apply all migrations: admin, auth, authtoken, contenttypes, networkscanners, projects, sessions, webscanners
Running migrations:
  Applying contenttypes.0001_initial... OK
  Applying auth.0001_initial... OK
  Applying admin.0001_initial... OK
  Applying admin.0002_logentry_remove_auto_add... OK
  Applying contenttypes.0002_remove_content_type_name... OK
  Applying auth.0002_alter_permission_name_max_length... OK
  Applying auth.0003_alter_user_email_max_length... OK
  Applying auth.0004_alter_user_username_opts... OK
  Applying auth.0005_alter_user_last_login_null... OK
  Applying auth.0006_require_contenttypes_0002... OK
  Applying auth.0007_alter_validators_add_error_messages... OK
  Applying auth.0008_alter_user_username_max_length... OK
  Applying authtoken.0001_initial... OK
  Applying authtoken.0002_auto_20160226_1747... OK
  Applying networkscanners.0001_initial... OK
  Applying networkscanners.0002_auto_20180221_2122... OK
  Applying projects.0001_initial... OK
  Applying sessions.0001_initial... OK
  Applying webscanners.0001_initial... OK
  Applying webscanners.0002_auto_20180221_2123...Traceback (most recent call last):
  File "manage.py", line 22, in <module>
    execute_from_command_line(sys.argv)
  File "/usr/local/lib/python2.7/dist-packages/django/core/management/__init__.py", line 364, in execute_from_command_line
    utility.execute()
  File "/usr/local/lib/python2.7/dist-packages/django/core/management/__init__.py", line 356, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "/usr/local/lib/python2.7/dist-packages/django/core/management/base.py", line 283, in run_from_argv
    self.execute(*args, **cmd_options)
  File "/usr/local/lib/python2.7/dist-packages/django/core/management/base.py", line 330, in execute
    output = self.handle(*args, **options)
  File "/usr/local/lib/python2.7/dist-packages/django/core/management/commands/migrate.py", line 204, in handle
    fake_initial=fake_initial,
  File "/usr/local/lib/python2.7/dist-packages/django/db/migrations/executor.py", line 115, in migrate
    state = self._migrate_all_forwards(state, plan, full_plan, fake=fake, fake_initial=fake_initial)
  File "/usr/local/lib/python2.7/dist-packages/django/db/migrations/executor.py", line 145, in _migrate_all_forwards
    state = self.apply_migration(state, migration, fake=fake, fake_initial=fake_initial)
  File "/usr/local/lib/python2.7/dist-packages/django/db/migrations/executor.py", line 244, in apply_migration
    state = migration.apply(state, schema_editor)
  File "/usr/local/lib/python2.7/dist-packages/django/db/migrations/migration.py", line 129, in apply
    operation.database_forwards(self.app_label, schema_editor, old_state, project_state)
  File "/usr/local/lib/python2.7/dist-packages/django/db/migrations/operations/fields.py", line 88, in database_forwards
    field,
  File "/usr/local/lib/python2.7/dist-packages/django/db/backends/sqlite3/schema.py", line 238, in add_field
    self._remake_table(model, create_field=field)
  File "/usr/local/lib/python2.7/dist-packages/django/db/backends/sqlite3/schema.py", line 113, in _remake_table
    self.effective_default(create_field)
  File "/usr/local/lib/python2.7/dist-packages/django/db/backends/base/schema.py", line 229, in effective_default
    default = field.get_db_prep_save(default, self.connection)
  File "/usr/local/lib/python2.7/dist-packages/django/db/models/fields/__init__.py", line 770, in get_db_prep_save
    prepared=False)
  File "/usr/local/lib/python2.7/dist-packages/django/db/models/fields/__init__.py", line 2387, in get_db_prep_value
    value = self.to_python(value)
  File "/usr/local/lib/python2.7/dist-packages/django/db/models/fields/__init__.py", line 2396, in to_python
    return uuid.UUID(value)
  File "/usr/lib/python2.7/uuid.py", line 133, in __init__
    hex = hex.replace('urn:', '').replace('uuid:', '')
TypeError: an integer is required
`

Any ideas?

PS: have you guys thought of making a docker image available for easy testing and deploy?

URL Login does not open firefox browser on my machine, if the code is running on server and I access Archery from my machine.

Describe the bug
A clear and concise description of what the bug is.

To Reproduce
Steps to reproduce the behavior:

  1. Go to '...'
  2. Click on '....'
  3. Scroll down to '....'
  4. See error

Expected behavior
A clear and concise description of what you expected to happen.

Screenshots
If applicable, add screenshots to help explain your problem.

Desktop (please complete the following information):

  • OS: [e.g. iOS]
  • Browser [e.g. chrome, safari]
  • Version [e.g. 22]

Smartphone (please complete the following information):

  • Device: [e.g. iPhone6]
  • OS: [e.g. iOS8.1]
  • Browser [e.g. stock browser, safari]
  • Version [e.g. 22]

Additional context
Add any other context about the problem here.

Concurrent Scans.

  • ZAP Concurrent scans.
  • Burp Concurrent scans.
  • OpenVAS Concurrent scans.

Connection indicators

Is your feature request related to a problem? Please describe.
If you made a bad configuration of your tools. You need to watch python logs to see if it's not ok.

Describe the solution you'd like
I think a good idea is to add a indicator for each service to see if the configuration is okay.

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.