hackingtool

repository·master·Indexed 13 days ago

https://github.com/z4nzu/hackingtool

An AI-guided, all-in-one toolkit for authorized security testing and pentesters. It provides access to over 200 curated security tools across 21 categories, featuring an AI layer that translates natural language intent into execution plans and tool commands. Includes a TUI console with support for background tasks via tmux, a headless orchestrator for automated engagements, and a discovery system to find new tools on GitHub.

Tokens
21.4K
Snippets
63
Records
100
Agent score
99%

What's inside hackingtool

  1. Reference the hackingtool tool catalog

    master

    The hackingtool catalog includes various types of entries:

    1. Installable Tools: Binaries that hackingtool can install or launch.
    2. Reference Resources: Curated links to labs, cheat sheets, or online services. Instead of attempting to install these, hackingtool will open them in your browser.

    Warning: All tools are intended for use on authorized targets only (systems you own or have written permission to test).

  2. Understand the AI features (AI1–AI4)

    master

    The AI layer is opt-in and requires an OpenAI-compatible endpoint. It is configured via the HACKINGTOOL_AI_BASE_URL and HACKINGTOOL_AI_KEY environment variables. If no model is reachable, features degrade to deterministic, offline behaviors.

    • AI1 — Tool Recommendation: Triggered by bare text or /ai <goal>. It maps goals to a closed taxonomy of tags to prevent tool fabrication. Falls back to a keyword matcher if offline.
    • AI2 — Goal to Command: Triggered by c or cmd inside tools with usage cheatsheets. It first attempts to match your goal against curated USAGE entries. If no match is found, the model drafts a command grounded in the tool's documentation. Commands are shown for copy-pasting and are labeled 'unverified'.
    • AI3 — Findings Summary: Triggered via hackingtool --engagement <name> --ai-summary. It summarizes and triages real findings from an engagement, ranking by severity and grouping duplicates. It does not invent findings.
    • AI4 — Report Drafter: Triggered via hackingtool --engagement <name> --ai-report. It writes prose for a report in report.draft.md based on deterministic facts (findings, severities, targets). It uses <scan_data> delimiters for untrusted input and includes a groundedness check for URLs.
  3. Learn the hackingtool command grammar

    master

    The hackingtool console uses a specific grammar to distinguish between commands, specific entities, and natural language queries:

    • Commands (/…): Used to execute built-in functions. Example: /search subdomain or /help.
    • Entities (@…): Used to name a specific tool, tag, or category. Example: @nmap (opens a tool) or @tag:osint (lists tools with that tag).
    • Natural Language: Any text without a prefix is treated as a plain-English request. The recommender will attempt to match your intent to available tools. Example: crack a wifi handshake.

    Navigation Shortcuts:

    • Tab: Completes commands, tool names, and tags.
    • /: Navigate command history.
    • Ctrl-C: Clears the current line.
    • Ctrl-D or q: Exits the console.
  4. Interact with the hackingtool console

    master

    The hackingtool console accepts three types of input to facilitate security testing:

    1. Commands: Start with / to execute built-in functions (e.g., /search subdomain).
    2. Names/Tags: Start with @ to reference specific tools or tags (e.g., @nmap, @tag:osint).
    3. Plain English: Type natural language descriptions of your goal (e.g., crack a wifi handshake), which the AI layer maps to relevant tools.

    Pro-tip: Use Tab completion for commands (/), tags (@tag:), and tool names (@).

    // Examples of input types:
    /search subdomain
    @nmap
    @tag:osint
    crack a wifi handshake
  5. Understand the Operator Methodology Playbook

    master

    The Operator Methodology Playbook (2026) is a canonical reference used by the hackingtool AI planner to select appropriate security testing tools. It categorizes tools into active (interacts with the target via packets) and passive (OSINT/no direct contact).

    Core Methodology Principles

    • Passive before active: Always exhaust OSINT and passive sources (e.g., crt.sh, Shodan, subfinder) before performing active scanning.
    • Least-intrusive first: Follow a progression from resolution/probing (dnsx, httpx) to scanning (naabu, nmap) to fuzzing/exploitation (ffuf, sqlmap).
    • Respect constraints: If a user specifies "without hitting the server" or "no active scanning," the planner must strictly use the passive tool set.
    • Chain via files: Standard pipelines should pass output through files or stdout to ensure each stage is inspectable (e.g., subfinder | dnsx | httpx | nuclei).
    • Scanner output is a lead: Results from tools like nuclei, nikto, or OpenVAS are considered leads that require manual confirmation, not confirmed findings.
  6. How the hackingtool console works

    master

    The hackingtool interface operates as an inline REPL (Read-Eval-Print Loop).

    • Input: Type a command or text and press Enter.
    • Navigation: Use / arrow keys to walk through command history.
    • Completion: Use Tab to autocomplete / commands, @ tool names, and @tag: tags.
    • Control:
      • Ctrl-C: Clears the current line.
      • Ctrl-D: Exits the application.
    • Fallback: On non-interactive terminals or environments without prompt_toolkit, a classic menu system is used instead of the REPL.
  7. Search and filter tools in hackingtool

    master

    Inside the hackingtool application, you can navigate the tool catalog using specific commands and tags. The tool catalog contains over 215 active tools across 21 categories.

    • Filter by tag: Use the @tag:<name> syntax to show only tools associated with a specific category (e.g., @tag:recon).
    • Search: Use the /search <keyword> command to search through tool names, descriptions, and tags.

    Note: Archived tools (unmaintained or dead upstream) are hidden by default. To reveal them, you must set show_archived true via the /config command.

    @tag:recon
    /search <keyword>
    /config show_archived true
  8. Open and install tools

    master

    You can access a tool's interface by typing @tool_name (e.g., @nuclei) or /run tool_name. Once the tool's card is displayed, you can use the following numbered menu options:

    • 1: Install the tool.
    • 2: Run the tool.
    • c (or cmd): Ask for the exact command for a specific goal. This pulls from a curated cheatsheet first, then falls back to an AI model. It provides a command to copy, but does not execute it.
    • 98: Open the project page.
    • 99: Go back.

    Note: If a tool is already installed on your system (via apt, brew, etc.), hackingtool will automatically reuse the existing binary instead of re-cloning it.

    @nuclei
    1 install the tool
    2 run it
    c ask for the exact command
  9. Configure AI connectivity

    master

    To enable AI features, set the following environment variables to point to an OpenAI-compatible endpoint:

    export HACKINGTOOL_AI_BASE_URL="your_endpoint_url"
    export HACKINGTOOL_AI_KEY="your_api_key"

    If these are not set, the system will attempt to use a local Ollama instance. If neither is available, AI features will fall back to offline, deterministic modes.

  10. Plan and run objectives with `/goal`

    master

    The /goal command uses an AI model to transform a high-level objective into an ordered sequence of tool commands.

    Execution Lifecycle:

    1. Planning: State your goal (e.g., /goal find live subdomains of example.com). The model generates a plan containing tools, arguments, and reasoning.
    2. Authorization: You must explicitly confirm the target by answering y to the authorization prompt.
    3. Step-by-Step Approval: For each step in the plan, you choose:
      • y: Run the command (as a list of arguments, never through a shell).
      • s: Skip the step.
      • e: Edit the command before running.
      • q: Abort the entire goal.

    Outputs: Every goal creates a timestamped workspace in ~/.hackingtool/goals/<timestamp>/ containing plan.json, run.log, and the raw output files for each step.

    /goal find live subdomains of example.com
  11. Find a tool using the hackingtool console

    master

    If a tool is not currently listed in the catalog, you can search for it directly within the hackingtool console using the /find command.

    Syntax: /find <what you're trying to do>

    This command performs a two-step search:

    1. It searches the existing tool catalog.
    2. It searches GitHub to find real, maintained repositories.

    Results include the reason each repository was ranked to help you choose the right tool for your task.

    /find <what you're trying to do>
  12. Run hackingtool via Docker

    master

    You can run hackingtool using a pre-built Docker image or build it locally from the source code.

    # Pull and run the published image
    docker run -it --rm hardikzinzu/hackingtool:latest
    
    # Or build it locally
    git clone https://github.com/Z4nzu/hackingtool.git && cd hackingtool
    docker build -t hackingtool .
    docker run -it --rm hackingtool