Automated Penetration Testing Framework

Overview

OWASP Nettacker

Build Status Apache License Twitter GitHub contributors repo size

DISCLAIMER

  • THIS SOFTWARE WAS CREATED FOR AUTOMATED PENETRATION TESTING AND INFORMATION GATHERING. CONTRIBUTORS WILL NOT BE RESPONSIBLE FOR ANY ILLEGAL USAGE.

2018-01-19_0-45-07

OWASP Nettacker project is created to automate information gathering, vulnerability scanning and eventually generating a report for networks, including services, bugs, vulnerabilities, misconfigurations, and other information. This software will utilize TCP SYN, ACK, ICMP, and many other protocols in order to detect and bypass Firewall/IDS/IPS devices. By leveraging a unique method in OWASP Nettacker for discovering protected services and devices such as SCADA. It would make a competitive edge compared to other scanner making it one of the bests.


  • *** IoT Scanner***
  • Python Multi Thread & Multi Process Network Information Gathering Vulnerability Scanner
  • Service and Device Detection ( SCADA, Restricted Areas, Routers, HTTP Servers, Logins and Authentications, None-Indexed HTTP, Paradox System, Cameras, Firewalls, UTM, WebMails, VPN, RDP, SSH, FTP, TELNET Services, Proxy Servers and Many Devices like Juniper, Cisco, Switches and many more… )
  • Asset Discovery & Network Service Analysis
  • Services Brute Force Testing
  • Services Vulnerability Testing
  • HTTP/HTTPS Crawling, Fuzzing, Information Gathering and …
  • HTML, JSON, CSV and Text Outputs
  • API & WebUI
  • This project is at the moment in research and development phase
  • Thanks to Google Summer of Code Initiative and all the students who contributed to this project during their summer breaks:

Comments
  • complete the subdomain_scan

    complete the subdomain_scan

    Hello,

    there is an uncompleted task in subdomain_scan module which needs to be done. I glad if anyone could help to add this two resources in this module.

          # Must add later!
            # https://censys.io/certificates?q=domain
            # https://transparencyreport.google.com/https/certificates
    
    

    Regards.

    enhancement help wanted priority 
    opened by Ali-Razmjoo 19
  • Create some new modules

    Create some new modules

    Hello everyone,

    if anyone would like to add some few modules to the framework, that would be great for our growing framework. some of a few ideas:

    • simple udp, syn, ack port scan
    • simple icmp scan (ping test)
    • phpmyadmin scan
    • wappalyzer scan for http
    • a few more brute force modules (http (basic auth, ntlm, form), telnet, and so on)

    let me know if there is any question. Regards.

    enhancement help wanted 
    opened by Ali-Razmjoo 19
  • Implementing Service scanning in OWASP-Nettacker

    Implementing Service scanning in OWASP-Nettacker

    OWASP-Nettacker currently lacks the power of scanning a network for running services before doing vulnerability assessment and sending payloads; hence every attack can end up useless if the service is running at a different port. Let’s take an example, when doing network scanning if a Secure Socket Layer is running on a port or if the port is using an SSL tunnel in order to protect its users from MITM attack then we first scan that service for SSL vulnerabilities like CCS injection, Heartbleed, Logjam, Poodle, and many others in order to keep the tunnel secure and the user’s data protected, this will boost the discovery rate of vulnerabilities.

    For services like SSH, SMTP, FTP and other common services we will be using normal banner grabbing techniques where Python sockets will be used. A typical FTP banner gives us information about the product and version being used on FTP service that is Bftpd 1.6.6 which could enumerate multiple vulnerabilities without sending any payloads to the server.

    [+] 192.168.2.1:220 bftpd 1.6.6 at 192.168.2.1 ready.

    For services like HTTP/HTTPS, we will be using Python-Requests module which will be helpful for detecting the server running by header information, a typical header looks like this which gives us information about the running services & version on the port which is Nginx/1.10.3 and the OS details which is Linux Ubuntu.

    ({'date': 'Thu, 08 Mar 2018 14:23:48 GMT', 'connection': 'keep-alive', 'content-encoding': 'gzip', 'x-powered-by': 'Express', 'content-type': 'text/html; charset=utf-8', 'vary': 'Accept-Encoding', 'cache-control': 'public, max-age=0', 'etag': 'W/"3b51-DSUPhtrEeYNRRot/gk1jUt+PAnc"', 'server': 'nginx/1.10.3 (Ubuntu)', 'transfer-encoding': 'chunked'})

    Many DNS servers are pre-configured with version information in DNS TXT records for the version bind label in the CHAOS class.

    dig @dns.name.server version.bind chaos txt

    Typical answers might include

    ;; ANSWER SECTION: version.bind. 0 CH TXT "9.8.1-P1" OR ;; ANSWER SECTION: version.bind. 1476526080 IN TXT "Microsoft DNS 6.1.7600 (1DB04228)" OR ;; ANSWER SECTION: version.bind. 0 CH TXT "dnsmasq-2.47"

    Same can be implemented using nslookup ​for Windows ​system.

    All the previous modules will be shifted to Service based detection instead of port-based detection after this implementation for better results.

    enhancement done 
    opened by pradeepjairamani 17
  • Add Documents, Improve Wiki, Add Training Videos

    Add Documents, Improve Wiki, Add Training Videos

    Hello everyone,

    OWASP Nettacker doesn't have any documents or wiki right now, It's best we start Developers/Users documents to make it more friendly.

    I glad if anyone can help on this! (start from wiki)

    enhancement help wanted done priority 
    opened by Ali-Razmjoo 14
  • A better ICMP library

    A better ICMP library

    Hello,

    I just notice that in #47 the lib/icmp and icmp_scan need to run as root to be working, I glad if someone can give us a better solution and contribute a new lib and replace the libraries.

    let me know if anyone has any idea.

    Best Regards.

    enhancement help wanted Version 0.0.3 
    opened by Ali-Razmjoo 12
  • Kippo Honeypot Detect

    Kippo Honeypot Detect

    Checklist

    • [x] I have followed the Contributor Guidelines.
    • [x] I have added the relevant documentation.
    • [x] My branch is up-to-date with the Upstream master branch.

    Changes proposed in this pull request

    • Kippo Honeypot Detection payload
    • updated requirements.txt with updated modules
    • New info for admin scan
    • Added POP3 Service scanner signature
    • Added XMPP service scanner signature
    • Updated nettacker update mechanism to daily basis instead of doing it on every scan by saving and fetching previous scan data.
    • header based blind sql injection payload added

    Your development environment

    • OS: Kali
    • OS Version: 2.0
    • Python Version: 2.7.3
    enhancement done 
    opened by pradeepjairamani 10
  • Cannot delete old database record for the selected target and modules error while executing program

    Cannot delete old database record for the selected target and modules error while executing program

    OS: kali OS Version: 2021.3 Python Version: 3.9.7 PIP Version: 21.2.4

    Traceback (most recent call last):
      File "/home/user/Desktop/Nettacker/nettacker.py", line 17, in <module>
       load()  # load and parse the ARGV
      File "/home/user/Desktop/Nettacker/core/parse.py", line 26, in load
        exit_code = start_scan_processes(options)
      File "/home/user/Desktop/Nettacker/core/scan_targers.py", line 80, in start_scan_processes
        remove_old_logs(
      File "/home/user/Desktop/Nettacker/database/db.py", line 130, in remove_old_logs
        session.query(HostsLog).filter(
    AttributeError: 'bool' object has no attribute 'query'
    

    Get this error while running the nettacker on the target site using command: python3 nettacker.py -i example.com --profile scan -m all --verbose

    opened by murtazakan 9
  • Implementing SSL vulnerability Scanner

    Implementing SSL vulnerability Scanner

    Implementing SSL based vulnerabilities like SSL logjam, SSL drown, SSL Poodle, SSL crime, TLS fallback, SSL lucky13, Weak DH ciphers and many others by enumerating server ciphers and also by detecting which SSL/TLS versions are being used in the server.

    enhancement 
    opened by pradeepjairamani 9
  • port_scan module not working in Python 3.9

    port_scan module not working in Python 3.9

    in python 3.9.1 getting error:

    [X] this module "port_scan" is not available.

    Probably some incompatibilities in Python 3.6->3.9 are crashing the module


    OS: Kali.Linux

    OS Version: 2020.3

    Python Version: 3.9.1

    bug compatibility issue 
    opened by securestep9 8
  • I keep getting this issue after running the PMA_Scan

    I keep getting this issue after running the PMA_Scan

    Exception in thread Thread-52: 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/OWASP-Nettacker/lib/http_fuzzer/engine.py", line 312, in request_without_data if rule_evaluator(response, condition): File "/root/OWASP-Nettacker/lib/http_fuzzer/engine.py", line 337, in rule_evaluator return eval(condition) File "", line 1, in AttributeError: 'int' object has no attribute 'status_code'

    bug done priority 
    opened by pradeepjairamani 8
  • Issue in getting results via discovery funstion in service scanner

    Issue in getting results via discovery funstion in service scanner

    I was trying to perform the same operation on my localhost and results were different everytime.

    In [1]: from lib.payload.scanner.service.engine import discovery
    
    In [2]: discovery("127.0.0.1")
    Out[2]: {443: 'UNKNOWN', 3306: 'UNKNOWN'}
    
    In [3]: discovery("127.0.0.1")
    Out[3]: 
    {80: 'http',
     443: 'UNKNOWN',
     631: 'UNKNOWN',
     3306: 'UNKNOWN',
     5432: 'UNKNOWN',
     8002: 'http'}
    
    In [4]: discovery("127.0.0.1")
    Out[4]: 
    {80: 'http',
     139: 'UNKNOWN',
     443: 'UNKNOWN',
     445: 'UNKNOWN',
     631: 'UNKNOWN',
     3306: 'UNKNOWN',
     5432: 'UNKNOWN',
     8001: 'UNKNOWN',
     8002: 'http'}
    
    In [5]: discovery("127.0.0.1")
    Out[5]: 
    {80: 'http',
     139: 'UNKNOWN',
     443: 'UNKNOWN',
     445: 'UNKNOWN',
     631: 'UNKNOWN',
     3306: 'UNKNOWN',
     5432: 'UNKNOWN',
     8001: 'UNKNOWN',
     8002: 'http'}
    

    image

    Am I doing anything wrong or is it some problem with the module!! Performing a port scan however works fine for me.


    OS: Ubuntu

    OS Version: 16.04

    Python Version: 2.7.12

    enhancement possible bug 
    opened by shaddygarg 8
  • Bump pyopenssl from 22.1.0 to 23.0.0

    Bump pyopenssl from 22.1.0 to 23.0.0

    Bumps pyopenssl from 22.1.0 to 23.0.0.

    Changelog

    Sourced from pyopenssl's changelog.

    23.0.0 (2023-01-01)

    Backward-incompatible changes: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

    Deprecations: ^^^^^^^^^^^^^

    Changes: ^^^^^^^^

    • Add OpenSSL.SSL.X509StoreFlags.PARTIAL_CHAIN constant to allow for users to perform certificate verification on partial certificate chains. [#1166](https://github.com/pyca/pyopenssl/issues/1166) <https://github.com/pyca/pyopenssl/pull/1166>_
    • cryptography maximum version has been increased to 39.0.x.
    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies python 
    opened by dependabot[bot] 0
  • Bump flake8 from 5.0.4 to 6.0.0

    Bump flake8 from 5.0.4 to 6.0.0

    Bumps flake8 from 5.0.4 to 6.0.0.

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies python 
    opened by dependabot[bot] 0
  • imap brute force

    imap brute force

    Checklist

    • [x] I have followed the Contributor Guidelines.
    • [x] The code has been thoroughly tested in my local development environment with flake8 and pylint.
    • [x] The code is Python 3 compatible.
    • [x] The code follows the PEP8 styling guidelines with 4 spaces indentation.
    • [x] This Pull Request relates to only one issue or only one feature
    • [x] I have referenced the corresponding issue number in my commit message
    • [x] I have added the relevant documentation.
    • [x] My branch is up-to-date with the Upstream master branch.

    Changes proposed in this pull request

    imap brute force module

    Your development environment

    • OS: x
    • OS Version: x
    • Python Version: x
    opened by Mrinank-Bhowmick 0
  • AttributeError: '_UnixSelectorEventLoop' object has no attribute '_ssock'

    AttributeError: '_UnixSelectorEventLoop' object has no attribute '_ssock'

    ➜ Nettacker git:(issue/609) ✗ python3 nettacker.py -i google.com --profile http -t 1100 -M 5

    AttributeError: '_UnixSelectorEventLoop' object has no attribute '_ssock'
        self._remove_reader(self._ssock.fileno())
      File "/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.9/lib/python3.9/asyncio/selector_events.py", line 92, in close
        self._remove_reader(self._ssock.fileno())
    AttributeError: '_UnixSelectorEventLoop' object has no attribute '_ssock'
      File "/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.9/lib/python3.9/asyncio/selector_events.py", line 99, in _close_self_pipe
        self._remove_reader(self._ssock.fileno())
    AttributeError: '_UnixSelectorEventLoop' object has no attribute '_ssock'
      File "/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.9/lib/python3.9/asyncio/selector_events.py", line 99, in _close_self_pipe
        self._remove_reader(self._ssock.fileno())
        self._remove_reader(self._ssock.fileno())
    AttributeError: '_UnixSelectorEventLoop' object has no attribute '_ssock'
      File "/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.9/lib/python3.9/asyncio/selector_events.py", line 99, in _close_self_pipe
        self._close_self_pipe()
      File "/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.9/lib/python3.9/asyncio/selector_events.py", line 99, in _close_self_pipe
    AttributeError: '_UnixSelectorEventLoop' object has no attribute '_ssock'
    AttributeError: '_UnixSelectorEventLoop' object has no attribute '_ssock'
      File "/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.9/lib/python3.9/asyncio/selector_events.py", line 99, in _close_self_pipe
        self._remove_reader(self._ssock.fileno())
      File "/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.9/lib/python3.9/asyncio/selector_events.py", line 99, in _close_self_pipe
    
    opened by Ali-Razmjoo 1
Releases(0.0.3.6)
  • 0.0.3.6(Sep 24, 2022)

    What's Changed

    • bug534 fix by @itsdivyanshjain in https://github.com/OWASP/Nettacker/pull/535
    • Fix typo by @tristanlatr in https://github.com/OWASP/Nettacker/pull/556
    • Bump numpy from 1.21.4 to 1.23.1 by @dependabot in https://github.com/OWASP/Nettacker/pull/576
    • Bump flask from 2.0.2 to 2.2.2 by @dependabot in https://github.com/OWASP/Nettacker/pull/583
    • Bump paramiko from 2.8.1 to 2.11.0 by @dependabot in https://github.com/OWASP/Nettacker/pull/566
    • Bump ipython from 7.30.1 to 8.5.0 by @dependabot in https://github.com/OWASP/Nettacker/pull/587
    • Updated readme.md with OWASP official DockerHub link by @securestep9 in https://github.com/OWASP/Nettacker/pull/589
    Source code(tar.gz)
    Source code(zip)
  • 0.0.3.5(Dec 23, 2021)

  • v0.0.3.3(Oct 2, 2021)

  • 0.0.3.2(Sep 14, 2021)

  • 0.0.3.1(Sep 12, 2021)

  • 0.0.3(Sep 12, 2021)

  • 0.0.2(Jun 10, 2021)

    Many bugs fixed in this release and we are aiming to stop supporting Python 2.7 after this release and restructure our framework to be faster and better.

    Source code(tar.gz)
    Source code(zip)
  • 0.0.1(Jun 17, 2020)

    First Release - drawing a line before adding new features and modules. This release still contains known bugs and is compatible with both Python 2.7 and python 3.6

    Source code(tar.gz)
    Source code(zip)
Owner
OWASP
The OWASP Foundation
OWASP
A Demo of Feishu automation testing framework

FeishuAutoTestDemo This is a automation testing framework which use Feishu as an example. Execute runner.py to run. Technology Web UI Test pytest + se

2 Aug 19, 2022
py.test fixture for benchmarking code

Overview docs tests package A pytest fixture for benchmarking code. It will group the tests into rounds that are calibrated to the chosen timer. See c

Ionel Cristian Mărieș 1k Jan 03, 2023
pytest plugin for a better developer experience when working with the PyTorch test suite

pytest-pytorch What is it? pytest-pytorch is a lightweight pytest-plugin that enhances the developer experience when working with the PyTorch test sui

Quansight 39 Nov 18, 2022
pytest plugin for distributed testing and loop-on-failures testing modes.

xdist: pytest distributed testing plugin The pytest-xdist plugin extends pytest with some unique test execution modes: test run parallelization: if yo

pytest-dev 1.1k Dec 30, 2022
The Good Old Days. | Testing Out A New Module-

The-Good-Old-Days. The Good Old Days. | Testing Out A New Module- Installation Asciimatics supports Python versions 2 & 3. For the precise list of tes

Syntax. 2 Jun 08, 2022
masscan + nmap 快速端口存活检测和服务识别

masnmap masscan + nmap 快速端口存活检测和服务识别。 思路很简单,将masscan在端口探测的高速和nmap服务探测的准确性结合起来,达到一种相对比较理想的效果。 先使用masscan以较高速率对ip存活端口进行探测,再以多进程的方式,使用nmap对开放的端口进行服务探测。 安

starnightcyber 75 Dec 19, 2022
A pure Python script to easily get a reverse shell

easy-shell A pure Python script to easily get a reverse shell. How it works? After sending a request, it generates a payload with different commands a

Cristian Souza 48 Dec 12, 2022
0hh1 solver for the web (selenium) and also for mobile (adb)

0hh1 - Solver Aims to solve the '0hh1 puzzle' for all the sizes (4x4, 6x6, 8x8, 10x10 12x12). for both the web version (using selenium) and on android

Adwaith Rajesh 1 Nov 05, 2021
The evaluator covering all of the metrics required by tasks within the DUE Benchmark.

DUE Evaluator The repository contains the evaluator covering all of the metrics required by tasks within the DUE Benchmark, i.e., set-based F1 (for KI

DUE Benchmark 4 Jan 21, 2022
✅ Python web automation and testing. 🚀 Fast, easy, reliable. 💠

Build fast, reliable, end-to-end tests. SeleniumBase is a Python framework for web automation, end-to-end testing, and more. Tests are run with "pytes

SeleniumBase 3k Jan 04, 2023
Selenium-python but lighter: Helium is the best Python library for web automation.

Selenium-python but lighter: Helium Selenium-python is great for web automation. Helium makes it easier to use. For example: Under the hood, Helium fo

Michael Herrmann 3.2k Dec 31, 2022
Screenplay pattern base for Python automated UI test suites.

ScreenPy TITLE CARD: "ScreenPy" TITLE DISAPPEARS.

Perry Goy 39 Nov 15, 2022
A modern API testing tool for web applications built with Open API and GraphQL specifications.

Schemathesis Schemathesis is a modern API testing tool for web applications built with Open API and GraphQL specifications. It reads the application s

Schemathesis.io 1.6k Jan 06, 2023
User-interest mock backend server implemnted using flask restful, and SQLAlchemy ORM confiugred with sqlite

Flask_Restful_SQLAlchemy_server User-interest mock backend server implemnted using flask restful, and SQLAlchemy ORM confiugred with sqlite. Backend b

Austin Weigel 1 Nov 17, 2022
Local continuous test runner with pytest and watchdog.

pytest-watch -- Continuous pytest runner pytest-watch a zero-config CLI tool that runs pytest, and re-runs it when a file in your project changes. It

Joe Esposito 675 Dec 23, 2022
Automates hiketop+ crystal earning using python and appium

hikepy Works on poco x3 idk about your device deponds on resolution Prerquests Android sdk java adb Setup Go to https://appium.io/ Download and instal

4 Aug 26, 2022
Data App Performance Tests

Data App Performance Tests My hypothesis is that The different architectures of

Marc Skov Madsen 6 Dec 14, 2022
buX Course Enrollment Automation

buX automation BRACU - buX course enrollment automation Features: Automatically enroll into multiple courses at a time. Find courses just entering cou

Mohammad Shakib 1 Oct 06, 2022
A collection of benchmarking tools.

Benchmark Utilities About A collection of benchmarking tools. PYPI Package Table of Contents Using the library Installing and using the library Manual

Kostas Georgiou 2 Jan 28, 2022
Minimal example of how to use pytest with automated 'devops' style automated test runs

Pytest python example with automated testing This is a minimal viable example of pytest with an automated run of tests for every push/merge into the m

Karma Computing 2 Jan 02, 2022