GithubHelp home page GithubHelp logo

aptrs / aptrs Goto Github PK

View Code? Open in Web Editor NEW
772.0 772.0 87.0 8.23 MB

Automated Penetration Testing Reporting System

Home Page: https://aptrs.souravkalal.tech/

License: MIT License

Python 66.14% JavaScript 32.91% Batchfile 0.36% Shell 0.59%
aptrs django infosec penetration-testing pentest pentest-report pentesting pentesting-tools python reporting security security-automation

aptrs's Introduction

APTRS

APTRS (Automated Penetration Testing Reporting System) is an automated reporting tool in Python and Django. The tool allows Penetration testers to create a report directly without using the Traditional Docx file. It also provides an approach to keeping track of the projects and vulnerabilities.

GPLv3 License sponsors Python Version GitHub release (latest by date including pre-releases) GitHub Workflow Status (with branch) Libraries.io dependency status for GitHub repo platform Twitter

Support

Documentation

70686099-3855f780-1c79-11ea-8141-899e39459da2 70686099-3855f780-1c79-11ea-8141-899e39459da2

Prerequisites

Installation

The tool has been tested using Python 3.8.10 on Kali Linux 2022.2/3, Ubuntu 20.04.5 LTS, Windows 10/11.

Windows Installation

  git clone https://github.com/Anof-cyber/APTRS.git
  cd APTRS
  install.bat

Linux Installation

  git clone https://github.com/Anof-cyber/APTRS.git
  cd APTRS
  install.sh

Running

Windows

  run.bat

Linux

  run.sh

Features

  • Demo Report
  • Managing Vulnerabilities
  • Manage All Projects in one place
  • Create a Vulnerability Database and avoid writing the same description and recommendations again
  • Easily Create PDF Reprot
  • Dynamically add POC, Description and Recommendations
  • Manage Customers and Comapany

Sponsor

This project is supported by:

Screenshots

Project

App Screenshot

View Project

App Screenshot

Project Vulnerability

App Screenshot

Project Report

App Screenshot

Project Add Vulnerability

App Screenshot

Roadmap

  • Improving Report Quality
  • Bulk Instance Upload
  • Pentest Mapper Burp Suite Extension Integration
  • Allowing Multiple Project Scope
  • Improving Code, Error handling and Security
  • Docker Support
  • Implementing Rest API
  • Project and Project Retest Handler
  • Access Control and Authorization
  • Support Nessus Parsing

Authors

Contributors

We are seeking a volunteer developer with experience in Django or Front End development to help improve our project by adding more security and features. If you're interested, please reach out to [email protected]. For reporting errors or bugs, please use the Github issues feature rather than emailing.

aptrs's People

Contributors

anof-cyber avatar noraj 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

aptrs's Issues

Its not converting PDF report properly

Make sure you have gone through the Documentation

https://anof-cyber.github.io/APTRS/#/

Describe the bug
i listed 10 vulnerabilities with its detail description and POC with more than one image step by step . But when i exported PDF report it remove Description make it short and POC also not taking more than one image lot of page are blank.

To Reproduce
Steps to reproduce the behavior:
Just make long report you will get it in which more than 8 vulnerability listed.

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]
  • Python Version [e.g. 3.10]
  • Pip Version[e.g. 20]
  • wkhtmltopdf Version [e.g. 0.12.6-3]

Additional context
Add any other context about the problem here.

db creation during installation process possibly breaks

following installation instructions on a recent kali box, i see that the migration process (python3 manage.py migrate) raises some errors because db.sqlite3 already contains some tables:

Running migrations:                                                                                                                                                                                                                                                  [160/453]
  Applying contenttypes.0001_initial...Traceback (most recent call last):
  File "/home/kali/APTRS/venv/lib/python3.10/site-packages/django/db/backends/utils.py", line 87, in _execute
    return self.cursor.execute(sql)
  File "/home/kali/APTRS/venv/lib/python3.10/site-packages/django/db/backends/sqlite3/base.py", line 355, in execute                                                                                                                                                              return Database.Cursor.execute(self, query)
sqlite3.OperationalError: table "django_content_type" already exists
                                                                                                                                                                                                                                                                              The above exception was the direct cause of the following exception:                                                                                                                                                                                                          
Traceback (most recent call last):
  File "/home/kali/APTRS/manage.py", line 22, in <module>
    main()
  File "/home/kali/APTRS/manage.py", line 18, in main
    execute_from_command_line(sys.argv)
  File "/home/kali/APTRS/venv/lib/python3.10/site-packages/django/core/management/__init__.py", line 446, in execute_from_command_line
    utility.execute()
  File "/home/kali/APTRS/venv/lib/python3.10/site-packages/django/core/management/__init__.py", line 440, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "/home/kali/APTRS/venv/lib/python3.10/site-packages/django/core/management/base.py", line 402, in run_from_argv
    self.execute(*args, **cmd_options)
  File "/home/kali/APTRS/venv/lib/python3.10/site-packages/django/core/management/base.py", line 448, in execute
    output = self.handle(*args, **options)
  File "/home/kali/APTRS/venv/lib/python3.10/site-packages/django/core/management/base.py", line 96, in wrapped
    res = handle_func(*args, **kwargs)
  File "/home/kali/APTRS/venv/lib/python3.10/site-packages/django/core/management/commands/migrate.py", line 349, in handle
    post_migrate_state = executor.migrate(
  File "/home/kali/APTRS/venv/lib/python3.10/site-packages/django/db/migrations/executor.py", line 135, in migrate
    state = self._migrate_all_forwards(
  File "/home/kali/APTRS/venv/lib/python3.10/site-packages/django/db/migrations/executor.py", line 167, in _migrate_all_forwards
    state = self.apply_migration(
  File "/home/kali/APTRS/venv/lib/python3.10/site-packages/django/db/migrations/executor.py", line 252, in apply_migration
    state = migration.apply(state, schema_editor)
  File "/home/kali/APTRS/venv/lib/python3.10/site-packages/django/db/migrations/migration.py", line 130, in apply
    operation.database_forwards(
  File "/home/kali/APTRS/venv/lib/python3.10/site-packages/django/db/migrations/operations/models.py", line 96, in database_forwards
    schema_editor.create_model(model)
  File "/home/kali/APTRS/venv/lib/python3.10/site-packages/django/db/backends/base/schema.py", line 447, in create_model
    self.execute(sql, params or None)
  File "/home/kali/APTRS/venv/lib/python3.10/site-packages/django/db/backends/base/schema.py", line 199, in execute
    cursor.execute(sql, params)
  File "/home/kali/APTRS/venv/lib/python3.10/site-packages/django/db/backends/utils.py", line 67, in execute
    return self._execute_with_wrappers(
  File "/home/kali/APTRS/venv/lib/python3.10/site-packages/django/db/backends/utils.py", line 80, in _execute_with_wrappers
    return executor(sql, params, many, context)
  File "/home/kali/APTRS/venv/lib/python3.10/site-packages/django/db/backends/utils.py", line 84, in _execute
    with self.db.wrap_database_errors:
  File "/home/kali/APTRS/venv/lib/python3.10/site-packages/django/db/utils.py", line 91, in __exit__
    raise dj_exc_value.with_traceback(traceback) from exc_value
  File "/home/kali/APTRS/venv/lib/python3.10/site-packages/django/db/backends/utils.py", line 87, in _execute
    return self.cursor.execute(sql)
  File "/home/kali/APTRS/venv/lib/python3.10/site-packages/django/db/backends/sqlite3/base.py", line 355, in execute
    return Database.Cursor.execute(self, query)
django.db.utils.OperationalError: table "django_content_type" already exists

i've read that db.sqlite3 should be removed to start a new deploy from scratch, unfortunately removing db.sqlite3 and running install.sh again breaks the whole UI: every user/password entered at the login page returns an error code 500.

running django in debug mode, we can see the error:

<h1>ValueError
       at /accounts/login</h1>
  <pre class="exception_value">The view accounts.views.Login didn't return an HttpResponse object. It returned None instead.</pre>
  

Request Method: | POST
-- | --
http://1.2.3.4:8000/accounts/login?next=/
4.1.2
ValueError
The view accounts.views.Login didn't return an HttpResponse object. It returned None instead.
/home/kali/APTRS/venv/lib/python3.10/site-packages/django/core/handlers/base.py, line 332, in check_response
accounts.views.Login
/home/kali/APTRS/venv/bin/python3
3.10.9
['/home/kali/APTRS',  '/usr/lib/python310.zip',  '/usr/lib/python3.10',  '/usr/lib/python3.10/lib-dynload',  '/home/kali/APTRS/venv/lib/python3.10/site-packages']

Not able to add logo in add company

Make sure you have gone through the Documentation

https://anof-cyber.github.io/APTRS/#/

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]
  • Python Version [e.g. 3.10]
  • Pip Version[e.g. 20]
  • wkhtmltopdf Version [e.g. 0.12.6-3]

Additional context
Add any other context about the problem here.

Report error

Linux Mint 21
Getting a "server 500" error when attempting to view the report from the example project or a created project using the PDF button.
Did receive the following warning when installing:
"DEPRECATION: pdfkit is being installed using the legacy 'setup.py install' method, because it does not have a 'pyproject.toml' and the 'wheel' package is not installed. pip 23.1 will enforce this behaviour change. A possible replacement is to enable the '--use-pep517' option. Discussion can be found at pypa/pip#8559"

Not sure where server logs are being stored, so I can't provide any other details.

adding vulnerability from db doesn't work

running on recent kali with python 3.10, i'm not able to add t o a report a vulnerability from the database because fields are not update.

steps to reproduce:

  1. install following instructions
  2. login to the interface
  3. project -> view on OWASP project -> click on vulnerability
  4. click Add New
  5. click on the dropdown menu labeled Vulnerability Title
  6. select any existent vulnerability and click
    now i expected that description, solution, references and CVSS are updated with values from the Vulnerability Database but nothing changes.

Tested with both Chrome and Firefox

Vulnerability Title can't be selected

Make sure you have gone through the Documentation

https://anof-cyber.github.io/APTRS/#/

Describe the bug
Can't "Tab", mouse hover the Title list to selected the stored vulnerabilities from database on the "Add vulnerability" page under Projects

To Reproduce
Steps to reproduce the behavior:

  1. Go to "Project"
  2. Click on 'View'
  3. Click on 'Vulnerability'
  4. Click on 'Add New'
  5. Type "SQL" in the Vulnerability Title bar, use either cursor or tab or enter
  6. Failed to select the store vulnerabilities

Expected behavior
Expect to load the vulnerability database by cursor-click, tab or enter but not type each word exact fit to the stored vulnerability title in the vulnerability database.

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

Desktop (please complete the following information):

  • OS: Ubuntu 22.04.1 LTS 22.04 jammy
  • Browser: Firefox
  • Python Version: Python 3.10.6
  • Pip Version: pip 22.0.2
  • wkhtmltopdf Version: 0.12.6.1 (with patched qt)

Additional context
Add any other context about the problem here.

Installing Error

Make sure you have gone through the Documentation

https://anof-cyber.github.io/APTRS/#/

Describe the bug
run ./install.sh error

To Reproduce
Steps to reproduce the behavior:

  1. sudo chmod +x install.sh
  2. sudo ./install.sh
  3. error...

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

Running migrations:
Applying contenttypes.0001_initial...Traceback (most recent call last):
File "/home/kowalski/tools/APTRS/venv/lib/python3.11/site-packages/django/db/backends/utils.py", line 87, in _execute
return self.cursor.execute(sql)
^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/kowalski/tools/APTRS/venv/lib/python3.11/site-packages/django/db/backends/sqlite3/base.py", line 355, in execute
return Database.Cursor.execute(self, query)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
sqlite3.OperationalError: table "django_content_type" already exists

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
File "/home/kowalski/tools/APTRS/manage.py", line 22, in
main()
File "/home/kowalski/tools/APTRS/manage.py", line 18, in main
execute_from_command_line(sys.argv)
File "/home/kowalski/tools/APTRS/venv/lib/python3.11/site-packages/django/core/management/init.py", line 446, in execute_from_command_line
utility.execute()
File "/home/kowalski/tools/APTRS/venv/lib/python3.11/site-packages/django/core/management/init.py", line 440, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "/home/kowalski/tools/APTRS/venv/lib/python3.11/site-packages/django/core/management/base.py", line 402, in run_from_argv
self.execute(*args, **cmd_options)
File "/home/kowalski/tools/APTRS/venv/lib/python3.11/site-packages/django/core/management/base.py", line 448, in execute
output = self.handle(*args, **options)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/kowalski/tools/APTRS/venv/lib/python3.11/site-packages/django/core/management/base.py", line 96, in wrapped
res = handle_func(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/kowalski/tools/APTRS/venv/lib/python3.11/site-packages/django/core/management/commands/migrate.py", line 349, in handle
post_migrate_state = executor.migrate(
^^^^^^^^^^^^^^^^^
File "/home/kowalski/tools/APTRS/venv/lib/python3.11/site-packages/django/db/migrations/executor.py", line 135, in migrate
state = self._migrate_all_forwards(
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/kowalski/tools/APTRS/venv/lib/python3.11/site-packages/django/db/migrations/executor.py", line 167, in _migrate_all_forwards
state = self.apply_migration(
^^^^^^^^^^^^^^^^^^^^^
File "/home/kowalski/tools/APTRS/venv/lib/python3.11/site-packages/django/db/migrations/executor.py", line 252, in apply_migration
state = migration.apply(state, schema_editor)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/kowalski/tools/APTRS/venv/lib/python3.11/site-packages/django/db/migrations/migration.py", line 130, in apply
operation.database_forwards(
File "/home/kowalski/tools/APTRS/venv/lib/python3.11/site-packages/django/db/migrations/operations/models.py", line 96, in database_forwards
schema_editor.create_model(model)
File "/home/kowalski/tools/APTRS/venv/lib/python3.11/site-packages/django/db/backends/base/schema.py", line 447, in create_model
self.execute(sql, params or None)
File "/home/kowalski/tools/APTRS/venv/lib/python3.11/site-packages/django/db/backends/base/schema.py", line 199, in execute
cursor.execute(sql, params)
File "/home/kowalski/tools/APTRS/venv/lib/python3.11/site-packages/django/db/backends/utils.py", line 67, in execute
return self._execute_with_wrappers(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/kowalski/tools/APTRS/venv/lib/python3.11/site-packages/django/db/backends/utils.py", line 80, in _execute_with_wrappers
return executor(sql, params, many, context)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/kowalski/tools/APTRS/venv/lib/python3.11/site-packages/django/db/backends/utils.py", line 84, in _execute
with self.db.wrap_database_errors:
File "/home/kowalski/tools/APTRS/venv/lib/python3.11/site-packages/django/db/utils.py", line 91, in exit
raise dj_exc_value.with_traceback(traceback) from exc_value
File "/home/kowalski/tools/APTRS/venv/lib/python3.11/site-packages/django/db/backends/utils.py", line 87, in _execute
return self.cursor.execute(sql)
^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/kowalski/tools/APTRS/venv/lib/python3.11/site-packages/django/db/backends/sqlite3/base.py", line 355, in execute
return Database.Cursor.execute(self, query)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
django.db.utils.OperationalError: table "django_content_type" already exists
./install.sh: line 42: wkhtmltopdf: command not found
Download and Install wkhtmltopdf Version 0.12.6 for PDF Report Generation - https://wkhtmltopdf.org/downloads.html

Desktop (please complete the following information):

  • OS: Kali purple
  • Python Version [3.11]
  • Pip Version[23.0.1]

install.bat version check

When using Python 3.10 and 3.11, the install.bat script terminates during version check because "Python 3.10" and "Python 3.11" are considered less than "Python 3.8"

FOR /F "tokens=* USEBACKQ" %%F IN (`python --version`) DO (
SET var=%%F
)
ECHO %var%
if "%var%" GEQ "Python 3.8" (
    echo Python 3.8 and above found
  ) else (
    echo "%var%"
    echo APTRS require Python 3.8+ .
    exit /b
  )

The report cannot show the detail of all vulnerabilities.

Make sure you have gone through the Documentation

https://anof-cyber.github.io/APTRS/#/

Describe the bug
I have exported a web pentest report, which including 7 vulnerabilities in total. But in the PDF file only showed the detail of 6 vulnerabilities. Whichever vulnerability I added more, they wont be showed in the PDF report file.
Seem like the report cannot show more than 6 vulnerabilities in detail. I tried to create another project to test and it was the same

Expected behavior
The report should show all the vulnerabilities.

Changing the color of PFD report

image
Description:
I am encountering an issue when generating PDFs from HTML content, the page size remains fixed, leading to blank white space when the HTML content does not fill the entire page.

Expected Behavior:
I expect the PDF page to be a defined color and not white.

Steps to Reproduce:

Generate a PDF from HTML content where the content height varies with a darker background.
Observe the PDF output to see that the pdf page is white from where the html content ends.

APTRS is not work in kali linux

APTRS in APTRS/venv/bin/python3: No module named gunicorn error show at run.sh time please resolve this and after use your repo. thankyou

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.