OWASP Nettacker Documentation

repository·master·Indexed 26 days ago

https://github.com/owasp/nettacker

An open-source, Python-based automated penetration testing and information-gathering framework for reconnaissance, vulnerability assessments, and network security audits. It supports networks, web applications, IoT devices, and APIs, featuring a modular architecture, multi-protocol execution, and a Web UI. The framework includes a comprehensive API for initiating scans, managing sessions, and retrieving results in HTML or JSON formats.

Tokens
17.1K
Snippets
39
Records
98
Agent score
90%

What's inside OWASP Nettacker

  1. Overview of OWASP Nettacker

    master

    OWASP Nettacker is an automated penetration testing framework designed for reconnaissance, vulnerability assessments, and network security audits. It is an open-source Python-based tool that uses a modular architecture where tasks are defined using YAML files.

    Key capabilities include:

    • Multi-Protocol Support: Scans protocols such as HTTP/HTTPS, FTP, SSH, SMTP, ICMP, TELNET, and XML-RPC.
    • Automation: Automates information gathering, port scanning, vulnerability detection, and brute forcing.
    • Modular Design: Users can extend functionality by adding new YAML-based modules.
    • Reporting: Generates results in HTML, JSON, CSV, and text formats.
    • Data Management: Includes a built-in database for storing and retrieving scan results.
    • Interfaces: Provides both a Web UI for visualization and an API for programmatic integration.
  2. Overview of OWASP Nettacker features

    master

    OWASP Nettacker is an automated penetration testing and information-gathering framework.

    Core Capabilities:

    • Modular Architecture: Each task (port scanning, directory discovery, etc.) is a separate module.
    • Multi-protocol & Multithreaded: Supports HTTP/HTTPS, FTP, SSH, SMB, SMTP, ICMP, TELNET, and XML-RPC with parallel execution.
    • Comprehensive Output: Exports reports in HTML, JSON, CSV, and plain text.
    • Drift Detection: Stores scan history in a database to compare current results with past scans (useful for CI/CD).
    • Evasion: Supports configurable delays, proxy support, and randomized user-agents.
    • Flexible Targets: Accepts single IPs, CIDR blocks, domains, and URLs.
  3. Overview of OWASP Nettacker Architecture

    master
    OWASP Nettacker is a Python-based framework for automated penetration testing and information gathering. It uses a modular architecture where scanning logic is defined declaratively in YAML files. The core engine orchestrates scans by parsing arguments, expanding targets (IP ranges, subdomains), and launching multiprocess/multithreaded modules. It supports a unified CLI, a Flask-based REST API, and a Web UI.
  4. Overview of OWASP Nettacker API Files

    master

    The OWASP Nettacker API is composed of several key modules that handle different aspects of scan execution and data management:

    • engine.py: The primary entry point for the API and contains the main functions.
    • api_core.py: Contains the core logic and functions for the API.
    • start_scan.py: Used to initiate and run new scans.
    • __database.py: Contains functions for interacting with the database.
    • database.sqlite3: A sample empty API database. During operation, the database is copied to ./.nettacker/data/database.sqlite3 where all scan data is stored.
  5. Overview of OWASP Nettacker Libraries and Modules

    master

    OWASP Nettacker is composed of several specialized libraries and modules that handle different aspects of network scanning and vulnerability assessment. Key components include:

    • argparse: A fixed version of the argparse library optimized for unicode.
    • brute: Modules dedicated to brute force attack types.
    • graph: Framework modules for graph-based operations.
    • html_log: Components for generating HTML log contents.
    • icmp: Library for ICMP-based operations.
    • language: Support for multi-language messaging.
    • scan: Core modules containing various scan types.
    • vuln: Modules containing vulnerability detection types.
    • socks_resolver: Utility to resolve addresses via a SOCKS proxy.
  6. Access OWASP Nettacker Documentation

    master

    The official, comprehensive documentation for OWASP Nettacker is hosted on ReadTheDocs. For detailed guides, API references, and advanced usage instructions, visit the external documentation site.

    https://nettacker.readthedocs.io
  7. Understand the OWASP Nettacker Database structure

    master

    The database layer of OWASP Nettacker is composed of several key files that manage data persistence and structure:

    • db.py: Contains the core functions for handling database transactions.
    • models.py: Defines the database schema and structure layout.
    • mysql_create.py: Provides functions to initialize the database structure defined in models.py within a MySQL database.
    • sqlite_create.py: Provides functions to initialize the database structure defined in models.py within a SQLite database.
  8. Nettacker System Pre-requisites

    master

    Nettacker requires Python 3.10 through 3.12. Support for Python 2.x and Python < 3.10 has been dropped in version 0.3.1+.

    On Debian/Ubuntu systems, ensure the following core packages are installed:

    • python3-dev
    • python3-pip
    • python3-venv
    • libcurl4-openssl-dev or libcurl4-gnutls-dev
    • libssl-dev
    • make
    • gcc
    • git
    • libpq-dev (if using PostgreSQL)
    sudo apt-get update
    sudo apt-get install -y python3 python3-dev python3-pip python3-venv
    pip3 install --upgrade pip3
  9. Select modules using patterns or profiles

    master

    Nettacker allows flexible module selection:

    • Pattern Matching: Use the * wildcard to select groups of modules (e.g., *_scan or *_scan,*_vuln).
    • Profiles: Use the --profile flag to run all modules associated with a specific profile (e.g., vulnerabilities, high_severity, info).
    • Single Module: Specify a specific module name with the -m flag.
    python nettacker.py -i 192.168.1.1/24 -m *_scan
    python nettacker.py -i example.com --profile vulnerabilities
  10. Specify targets for scanning

    master

    You can provide targets using several formats:

    • Single IP, CIDR, or Domain: 192.168.1.1, 192.168.1.1/24, or owasp.org.
    • IP Ranges: 192.168.1.1-192.168.255.255.
    • Comma-separated list: 192.168.1.1,192.168.1.2.
    • Target list from a file: Use the -l or --target-list flag.

    Note: You can also include protocols like http:// or https:// in your target strings.

    python nettacker.py -i 192.168.1.1,192.168.1.2-192.168.1.10,127.0.0.1,owasp.org,192.168.2.1/24 -m port_scan
    python nettacker.py -l targets.txt -m all