Giter VIP home page Giter VIP logo

community-plugins's Introduction

Offensive Web Testing Framework

Build staus License (3-Clause BSD) python_3.6 python_3.7 python_3.8

OWASP OWTF is a project focused on penetration testing efficiency and alignment of security tests to security standards like the OWASP Testing Guide (v3 and v4), the OWASP Top 10, PTES and NIST so that pentesters will have more time to

  • See the big picture and think out of the box
  • More efficiently find, verify and combine vulnerabilities
  • Have time to investigate complex vulnerabilities like business logic/architectural flaws or virtual hosting sessions
  • Perform more tactical/targeted fuzzing on seemingly risky areas
  • Demonstrate true impact despite the short timeframes we are typically given to test.

The tool is highly configurable and anybody can trivially create simple plugins or add new tests in the configuration files without having any development experience.

Note: This tool is however not a silverbullet and will only be as good as the person using it: Understanding and experience will be required to correctly interpret tool output and decide what to investigate further in order to demonstrate impact.

Requirements

OWTF is developed on KaliLinux and macOS but it is made for Kali Linux (or other Debian derivatives)

OWTF supports Python3.

OSX pre-requisites

Dependencies: Install Homebrew (https://brew.sh/) and follow the steps given below:

$ python3 -m venv ~/.virtualenvs/owtf
$ source ~/.virtualenvs/owtf/bin/activate
$ brew install coreutils gnu-sed openssl
# We need to install 'cryptography' first to avoid issues
$ pip install cryptography --global-option=build_ext --global-option="-L/usr/local/opt/openssl/lib" --global-option="-I/usr/local/opt/openssl/include"

Installation

Running as a Docker container:

The recommended way to use OWTF is by building the Docker Image so you will not have to worry about dependencies issues and installing the various pentesting tools.

git clone https://github.com/owtf/owtf
cd owtf
make compose

Installing directly

Create and start the PostgreSQL database server

Using preconfigured Postgresql Docker container (Recommended)

Please make sure you have Docker installed!

Run make startdb to create and start the PostgreSQL server in a Docker container. In the default configuration, it listens on port 5342 exposed from Docker container.

Manual setup (painful and error-prone)

You can also use a script to this for you - find it in scripts/db_setup.sh. You'll need to modify any hardcoded variables if you change the corresponding ones in owtf/settings.py.

Start the postgreSQL server,

  • macOS: brew install postgresql and pg_ctl -D /usr/local/var/postgres start
  • Kali: sudo systemctl enable postgresql; sudo systemctl start postgresql or sudo service postgresql start

Create the owtf_db_user user,

  • macOS: psql postgres -c "CREATE USER $db_user WITH PASSWORD '$db_pass';"
  • Kali: sudo su postgres -c "psql -c \"CREATE USER $db_user WITH PASSWORD '$db_pass'\""

Create the database,

  • macOS: psql postgres -c "CREATE DATABASE $db_name WITH OWNER $db_user ENCODING 'utf-8' TEMPLATE template0;"
  • Kali: sudo su postgres -c "psql -c \"CREATE DATABASE $db_name WITH OWNER $db_user ENCODING 'utf-8' TEMPLATE template0;\""

Installing OWTF

git clone https://github.com/owtf/owtf
cd owtf
python3 setup.py develop
owtf
open `localhost:8009` in the web browser for the OWTF web interface or `owtf --help` for all available commands.

Features

  • Resilience: If one tool crashes OWTF, will move on to the next tool/test, saving the partial output of the tool until it crashed.
  • Flexible: Pause and resume your work.
  • Tests Separation: OWTF separates its traffic to the target into mainly 3 types of plugins:
    • Passive : No traffic goes to the target
    • Semi Passive : Normal traffic to target
    • Active: Direct vulnerability probing
  • Extensive REST API.
  • Has almost complete OWASP Testing Guide(v3, v4), Top 10, NIST, CWE coverage.
  • Web interface: Easily manage large penetration engagements easily.
  • Interactive report:
  • Automated plugin rankings from the tool output, fully configurable by the user.
  • Configurable risk rankings
  • In-line notes editor for each plugin.

License

Checkout LICENSE

Code of Conduct

Checkout Code of Conduct

Links

community-plugins's People

Contributors

viyatb avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

Forkers

masterscott

community-plugins's Issues

SNMP Scanner and Remaining SNMP Plugins

thanks to @jamfwright

Hello,

First off, great job on all of this!

I'm on my first run with all plugins enabled to see what happens. I notice a potential enhancement already, which would improve the efficiency of OWTF.

When the SNMP scanner is run, specifically "/opt/metasploit/apps/pro/msf3/msfcli auxiliary/scanner/snmp/snmp_enumusers", if the connection is refused it would then seem unnecessary to then also run the Metasploit login bruteforce "/opt/metasploit/apps/pro/msf3/msfcli auxiliary/scanner/snmp/snmp_login".

There is a substantial time sink in trying to then bruteforce a service that is not actually running.

What may be a better way would be to nmap the target (or other port discovery) and then apply only the related plugins, even if all are selected - with an option to run the dynamically disabled ones anyways.

This would provide faster reconnaissance overall, but still allow the tester to be thorough if they wish. I do note plugins can be manually skipped in the Worker page, being a little more intelligent about which enabled plugins to run would be rather nice.

Many thanks,
James

ReDoS grep plugin

.NET appears to display regular expressions used on the server-side in the HTML for user-friendly client-side validation.

We can leverage this to help the tester identify Regular Expression Denial of Service vulnerabilities (ReDoS) by simply looking at the HTML and organise the matches via the usual "unique as text, unique as html and all as html".

Something similar to:
https://github.com/7a/owtf/blob/master/plugins/web/grep/Application_Configuration_Management%40OWASP-CM-004.py

Where regular expressions (yeah, we should review those XD) are defined here:
https://github.com/7a/owtf/blob/master/framework/config/framework_config.cfg

I think the pattern to look for is ".validationexpression" based examples from:

http://msdn.microsoft.com/en-us/magazine/ff646973.aspx
http://www.abemiester.com/AbeMiester/post/RegEx-DOS-attack-Regular-Expressions-Now-you-have-3-problems.aspx

Examples of bad regexes (external plugin?):
https://github.com/EnDe/ReDoS/blob/master/ReDoS.txt

More background:
https://www.owasp.org/index.php/Regular_expression_Denial_of_Service_-_ReDoS
http://en.wikipedia.org/wiki/ReDoS
http://www.slideshare.net/source-code-analysis/redos-regular-expression-denial-of-service-attacks
http://www.cs.bham.ac.uk/~hxt/research/reg-exp-sec.pdf

Interesting: Ruby also seems affected but not PHP
http://www.mail-archive.com/[email protected]/msg00683.html

HTTP Parameter Pollution (HPP) plugins

We should be implementing semi-passive and active plugins for HTTP Parameter Pollution and gradually align to the OWASP Testing Guide v4, which is slowly getting there although still WIP:

https://www.owasp.org/index.php/Testing_for_HTTP_Parameter_pollution_(OWASP-DV-004)

ZAP has extensions to test for HPP:
https://code.google.com/p/zap-extensions/wiki/V1Extensions

The following paper on automated HPP discovery may also be helpful:
http://www.iseclab.org/people/embyte/papers/hpp.pdf

More information:

OWASP AppSec EU 2009: HTTP Parameter Pollution
https://www.owasp.org/images/b/ba/AppsecEU09_CarettoniDiPaola_v0.8.pdf

HTTP Parameter Pollution vulnerabilities in Web Applications
http://www.iseclab.org/people/embyte/slides/BHEU2011/whitepaper-bhEU2011.pdf

Split and Join: Bypassing Web Application Firewalls with HTTP Parameter Pollution
http://www.andlabs.org/whitepapers/Split_and_Join.pdf

HTTP Parameter Pollution with Cookies in PHP
https://www.idontplaydarts.com/2013/06/http-parameter-pollution-with-cookies-in-php/

Investigate and apply Bletchley usage to OWTF

Bletchley is a tool to assist exploitation of crypto issues in web applications, we should investigate how to apply this both from a PoC perspective (external plugins, which assist manual exploitation) as well as grep, semi_passive and active plugins:

Link: https://code.google.com/p/bletchley/

External plugins may include passing obfuscated data to bletchley's analyzer and piping the output to report.

The Bletchley's script generator can be used for efficient automation of HTTP requests --> replay HTTP requests that are passed through Bletchley to analyse target responses.

https://code.google.com/p/bletchley/source/browse/trunk/bin/bletchley-http2py

New active plugin for JBoss Vulnerability Assessment

thanks @SachinKamath

Right now, we do not have any plugin to actively probe for JBoss instances and it'd be great to integrate one such tool as an active plugin into OWTF

Possible Solution

jexboss looks promising. It is built for python 2.7.* and has very less dependencies. More Information

Context

By implementing this, OWTF will be able to assess vulnerabilities in JBoss applications as well.

Your Environment

  • Installation method used: Manual
  • Version/branch used: develop
  • Operating System and version (like Kali, Debian, ArchLinux, etc): Kali Linux
  • pip/setuptools version: 8.0.2
  • sudo access: Root :)

New active plugin for JBoss, Tomcat, Coldfusion

thanks @SachinKamath

Unfortunately, httpprint and other tools are generally not that great to detect what is running on the server. For example, we do not have JBoss, Tomcat, ColdFusion, etc. detection in OWTF right now.

Possible Solution

clusterd should be added to the existing fingerprinting plugin to add variety and improve detection. I suggest that we don't limit the detection to JBoss and also extend it to actively probe for ColdFusion, Tomcat, etc.

Context

This will greatly improve the scope of OWTF and enhance the fingerprinting process

Your Environment

  • Installation method used: Manual
  • Version/branch used: develop
  • Operating System and version (like Kali, Debian, ArchLinux, etc): Kali
  • pip/setuptools version: 8.0.2
  • sudo access: Root :)

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.