{"id":13845324,"url":"https://github.com/Bandit-HaxUnit/haxunit","last_synced_at":"2025-07-12T02:30:38.981Z","repository":{"id":45512469,"uuid":"465787727","full_name":"Bandit-HaxUnit/haxunit","owner":"Bandit-HaxUnit","description":null,"archived":false,"fork":false,"pushed_at":"2025-06-07T21:29:12.000Z","size":1325,"stargazers_count":315,"open_issues_count":4,"forks_count":51,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-06-07T22:28:03.846Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Bandit-HaxUnit.png","metadata":{"files":{"readme":"README.MD","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2022-03-03T16:00:05.000Z","updated_at":"2025-06-07T21:29:15.000Z","dependencies_parsed_at":"2024-11-21T18:33:17.232Z","dependency_job_id":"348510fc-52cf-4837-a6b2-933e0509dba0","html_url":"https://github.com/Bandit-HaxUnit/haxunit","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Bandit-HaxUnit/haxunit","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Bandit-HaxUnit%2Fhaxunit","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Bandit-HaxUnit%2Fhaxunit/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Bandit-HaxUnit%2Fhaxunit/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Bandit-HaxUnit%2Fhaxunit/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Bandit-HaxUnit","download_url":"https://codeload.github.com/Bandit-HaxUnit/haxunit/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Bandit-HaxUnit%2Fhaxunit/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":264925437,"owners_count":23684150,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-04T17:03:20.297Z","updated_at":"2025-07-12T02:30:38.935Z","avatar_url":"https://github.com/Bandit-HaxUnit.png","language":"Python","funding_links":[],"categories":["Python"],"sub_categories":[],"readme":"\u003ch1 align=\"center\"\u003e\r\n  \u003cimg src=\"static/logo.png\" alt=\"haxunit\" width=\"200px\"\u003e\r\n  \u003cbr\u003e\r\n\u003c/h1\u003e\r\n\r\n\u003cp align=\"center\"\u003e\r\n  \u003ca href=\"#intro\"\u003eIntro\u003c/a\u003e •\r\n  \u003ca href=\"#installation\"\u003eInstallation\u003c/a\u003e •\r\n  \u003ca href=\"#usage\"\u003eUsage\u003c/a\u003e •\r\n  \u003ca href=\"#running-haxunit\"\u003eRunning HaxUnit\u003c/a\u003e •\r\n  \u003ca href=\"#functions\"\u003eFunctions\u003c/a\u003e\r\n\u003c/p\u003e\r\n\r\n\u003cp align=\"center\"\u003e\r\n   \u003ca href=\"https://haxunit.com\" style=\"font-size:50px\"\u003eHaxUnit.com\u003c/a\u003e\u003c/br\u003e\r\n   \u003ca href=\"https://discord.gg/83xfCdRP7Y\" style=\"font-size:50px\"\u003eJoin the Discord!\u003c/a\u003e\u003c/br\u003e\r\n\u003c/p\u003e\r\n\r\n# 📘Intro\r\n\r\nHaxUnit is a Python-based comprehensive reconnaissance and security assessment tool for web domains. It integrates various tools for subdomain enumeration, port scanning, vulnerability scanning, and more.\u003c/br\u003e\r\n\u003c/br\u003e\r\nHaxUnit is focused on simplicity and aims to be the best and most complete solution for web security assessments.\r\n\r\n## ✨ Features\r\n\r\n- **Subdomain Enumeration**: Uses tools like Subfinder, DNSx, and custom bruteforce methods.\r\n- **AI-Powered Subdomain Prediction**: Integrates Subwiz for ML-based subdomain discovery.\r\n- **Port Scanning**: Utilizes Naabu for fast port scanning across discovered subdomains.\r\n- **Vulnerability Scanning**: Integrates Nuclei for detecting security issues across web applications.\r\n- **WordPress Scanning**: Uses WPScan to identify vulnerabilities in WordPress installations.\r\n- **Acunetix Integration**: Provides optional integration with Acunetix for web application security scanning.\r\n- **Automated Tool Management**: Uses pdtm for efficient ProjectDiscovery tool installation and updates.\r\n\r\n## 🔥 Docker (recommended)\u003c/summary\u003e\r\n\r\n For a reliable installation, it's recommended to use HaxUnit with Docker Compose.\r\n \r\n This initial setup may take a few minutes:\r\n \r\n1. **Clone the Repository:**\r\n\r\n ```bash\r\ngit clone https://github.com/Bandit-HaxUnit/haxunit \u0026\u0026 cd haxunit \r\n```\r\n\r\n2. (optional) **Rename `.env.example` to `.env` and fill in the API keys.**\r\n\r\n```commandline\r\nACUNETIX_THRESHOLD=30\r\nACUNETIX_API_KEY=\r\nNUCLEI_API_KEY=\r\nWPSCAN_API_KEY=\r\n```\r\n\r\n3. **Set executable permissions for scripts:**\r\n```bash\r\nchmod +x rebuild-compose.sh open-bash.sh \r\n```\r\n\r\n4. **Build and Run Docker Compose:**\r\n\r\n```bash\r\n./rebuild-compose.sh\r\n ```\r\n \r\n Once the installation completes successfully, you'll be inside the Docker container, ready to execute HaxUnit:\r\n \r\n ```\r\n🎉 Installation Complete! 🎉\r\nHaxUnit is now ready to rock!\r\nTime to find those vulnerabilities and patch them like a pro! 🕵️‍♂️🔍\r\n\r\n🚀 To start scanning, run the following command:\r\nhaxunit -d \u003cdomain\u003e\r\n ```\r\n\r\nThat's it, you're all set to start scanning domains with HaxUnit!\r\n\r\n\u003cbr\u003e\r\n\r\n### 🐚 Open container if already running\r\n\r\nTo open a bash shell inside the HaxUnit container, run the following command:\r\n\r\n```bash\r\n./open-bash.sh\r\n```\r\n\r\n# 🛠️ Install HaxUnit Manually\r\n\r\nMake sure you have the following software installed on your system:\r\n\r\n- `python3` (\u003e=3.10)\r\n- `go` (\u003e=1.22) \r\n- `docker.io` (\u003e=20.10.7)\r\n\r\n1. **Clone the Repository:**\r\n\r\n    Open a terminal and run the following command to clone the repository and navigate into the project directory:\r\n    ```sh\r\n    git clone https://github.com/Bandit-HaxUnit/haxunit \u0026\u0026 cd haxunit\r\n    ```\r\n\r\n2. **Install `python3.11-venv` (if needed):**\r\n\r\n    If you don't have the `venv` module installed, you may need to install it. Run one of the following commands depending on your Python version:\r\n    ```sh\r\n    sudo apt update\r\n    sudo apt install python3.11-venv\r\n    ```\r\n    Or for Python 3.10:\r\n    ```sh\r\n    sudo apt update\r\n    sudo apt install python3.10-venv\r\n    ```\r\n\r\n3. **Create a Virtual Environment:**\r\n\r\n    Create a virtual environment named `haxunit-venv`:\r\n    ```sh\r\n    python3 -m venv haxunit-venv\r\n    ```\r\n\r\n4. **Activate the Virtual Environment:**\r\n\r\n    Activate the virtual environment using the following command:\r\n    ```sh\r\n    source haxunit-venv/bin/activate\r\n    ```\r\n\r\n    Note: To deactivate the virtual environment later, you can simply run `deactivate`.\r\n\r\n5. **Install the Required Packages:**\r\n\r\n    With the virtual environment activated, install the necessary packages:\r\n    ```sh\r\n    python3 -m pip install -r requirements.txt\r\n    ```\r\n\r\n6. **Run the Installation Script:**\r\n\r\n    Finally, run the main script with the `--install` flag:\r\n    ```sh\r\n    python3 main.py --install\r\n    ```\r\n   \r\nIf everything is installed correctly you should see the following output:\r\n```commandline\r\n[HaxUnit] [Init] All tools are successfully installed - good luck!\r\n```\r\n\r\nThe installation process now uses `pdtm` (ProjectDiscovery Tool Manager) for efficient tool management and includes intelligent checks to avoid reinstalling already present tools.\r\n\r\n# 📖 Usage\r\n```commandline\r\nhaxunit -h\r\n```\r\n\r\nThis will display help for the tool. Here are all the switches it supports.\r\n\r\n```commandline\r\nusage: main.py [-h] [-d DOMAIN] [-m {quick,extensive}] [-v] [-b BIN] [-is ISERVER] [-it ITOKEN] [-acu] [-y] [-u] [-i] [--wpscan-api-token WPSCAN_API_TOKEN]\r\n               [--use-notify] [--cloud-upload] [--htb] [--fuzz] [--use-gpt] [--skip-installers]\r\n\r\nHaxUnit - Web Domain Reconnaissance Tool\r\n\r\noptional arguments:\r\n  -h, --help            show this help message and exit\r\n  -d DOMAIN, --domain DOMAIN\r\n                        the website to recon: example.com\r\n  -m {quick,extensive}, --mode {quick,extensive}\r\n                        set scan mode\r\n  -v, --verbose         print more information\r\n  -b BIN, --bin BIN     set which python bin to use\r\n  -is ISERVER, --iserver ISERVER\r\n                        interactsh server URL for self-hosted instance\r\n  -it ITOKEN, --itoken ITOKEN\r\n                        authentication token for self-hosted interactsh server\r\n  -acu, --use-acunetix  Enable Acunetix integration\r\n  -y, --yes             yes to all prompts\r\n  -u, --update          update all tools\r\n  -i, --install         install all tools\r\n  --wpscan-api-token WPSCAN_API_TOKEN\r\n                        The WPScan API Token to display vulnerability data\r\n  --use-notify          Run notify on completion\r\n  --cloud-upload        Upload results to ProjectDiscovery cloud\r\n  --htb                 HackTheBox mode\r\n  --fuzz                Enable ffuf fuzzing\r\n  --use-gpt             Enable GPT suggestions\r\n  --skip-installers     Skip tool installation checks\r\n ```\r\n\r\n### Examples\r\n\r\nRun a quick scan on `example.com`:\r\n```commandline\r\nhaxunit -d example.com\r\n```\r\n\r\nRun a quick scan on `example.com` saying yes to adding domains by default:\r\n```commandline\r\nhaxunit -d example.com -y\r\n```\r\n\r\nRun an extensive scan on `example.com` using Acunetix and uploading results to ProjectDiscovery cloud:\r\n```commandline\r\nhaxunit -d example.com -m extensive --use-acunetix --cloud-upload \r\n```\r\n\r\nSkip installation checks for faster startup (when you know tools are installed):\r\n```commandline\r\nhaxunit -d example.com --skip-installers\r\n```\r\n\r\n### Viewing Results\r\n\r\nResults from the scan will be saved in the following directory structure:\r\n\r\n```markdown\r\nscans/\r\n└── example.com/\r\n    └── timestamp/\r\n```\r\n\r\nReplace `example.com` with your target domain and `timestamp` with the date and time when the scan was conducted. \r\nThis structure organizes scan results chronologically under the respective domain folder within the scans directory.\r\n\r\n\r\n# 🤖 Automate using Apache Airflow\r\n\r\nThis repository includes a sample Apache Airflow DAG that automates the HaxUnit scanning process.\r\n\r\n\r\n\r\n### Setup instructions\r\n\r\n1. **Clone the Repository**:\u003c/br\u003e\r\nClone this repository into the `dags` directory of your Apache Airflow installation.\r\n```commandline\r\n git clone https://github.com/Bandit-HaxUnit/haxunit \u0026\u0026 cd haxunit\r\n```\r\n\r\n2. **Rename `.env.example` to `.env` and fill in the API keys.**\r\n\r\n```commandline\r\nACUNETIX_THRESHOLD=30\r\nACUNETIX_API_KEY=\r\nNUCLEI_API_KEY=\r\nWPSCAN_API_KEY=\r\n```\r\n\r\n3. **Configure Notifications**:\u003c/br\u003e\r\nTo receive notifications upon completion, rename `notify-config.yaml.example` to `notify-config.yaml`.\u003c/br\u003e\r\n\r\nExample configuration for Slack notifications:\r\n\r\n```bash\r\nslack:\r\n  - id: \"slack\"\r\n    slack_channel: \"automated-pentest\"\r\n    slack_username: \"HackerBot\"\r\n    slack_format: \"{{data}}\"\r\n    slack_webhook_url: \"https://hooks.slack.com/services/XXXXX\"\r\n```\r\n\r\n4. **Setup the DAG**:\u003c/br\u003e\r\nRename `dags.py.example` to `dags.py` and configure it according to your needs.\u003c/br\u003e\r\n\u003cbr/\u003eDon't forget to use `--use-notify` to enable notifications.\r\n\r\n5. **Build and Run HaxUnit**:\u003c/br\u003e\r\nAfter configuring the notification settings, build and run HaxUnit with the following command:\r\n\r\n```bash\r\nchmod +x rebuild-compose.sh \u0026\u0026 ./rebuild-compose.sh\r\n```\r\n\r\n### That's It!\r\nBy following these steps, you can now automate your pentests using Apache Airflow. Enjoy the streamlined process!\r\n\r\n\r\n\r\n# 🛡️ Acunetix\r\n\r\nHaxUnit utilizes Acunetix's REST API to automate group creation and initiate scans.\u003c/br\u003e\r\n\r\nTo generate an API key, visit [Profile Page](https://localhost:3443/#/profile).\r\n\r\nInsert the API key in the `.env` file.\r\n```commandline\r\nACUNETIX_API_KEY=\r\n```\r\n\r\nRebuild docker compose to apply the changes:\r\n```commandline\r\n./rebuild-compose.sh\r\n```\r\n\r\n\r\nTo run HaxUnit with Acunetix, use the following command:\r\n```commandline\r\nhaxunit -d example.com --use-acunetix\r\n```\r\n\r\n\r\n\r\n\r\n\u003cdetails\u003e\r\n  \u003csummary\u003eInstalling Acunetix\u003c/summary\u003e\r\n\r\n To install Acunetix, execute the following command:\r\n\r\n```commandline\r\nbash \u003c(wget -qO- https://raw.githubusercontent.com/Bandit-HaxUnit/acu/main/install.sh)\r\n```\r\n\r\nThis will download and install the Acunetix container. \u003c/br\u003e\r\nOnce the installation is complete, you can start using Acunetix with HaxUnit.\r\n\r\nAcunetix can be accessed at https://localhost:3443. \u003cbr\u003e\r\n\r\n\u003cdetails\u003e\r\n   \u003csummary\u003eUse the following default credentials to log in:\u003c/summary\u003e\r\n\r\n```commandline\r\nUsername: awvs@awvs.lan\r\nPassword: Awvs@awvs.lan\r\n```\r\n\u003c/details\u003e\r\n\r\n\u003c/details\u003e\r\n\r\n# 🔍 Functions\r\n\r\n| Function        | Type                  | Description                                                                                           |\r\n|-----------------|-----------------------|-------------------------------------------------------------------------------------------------------|\r\n| dnsx_subdomains | Subdomain discovery   | Use dnsx to find subdomains and brute force subdomains                                                |\r\n| subfinder       | Subdomain discovery   | Use subfinder to find subdomains                                                                      |\r\n| subwiz          | Subdomain discovery   | AI-powered subdomain prediction using machine learning                                                 |\r\n| katana          | Crawling              | Gather all URL's on the list of subdomains and parse the domain using unfurl                          |\r\n| alterx          | Subdomain permutation | Generate and test subdomain permutations                                                              |\r\n| dnsx_ips        | Fetch IP addresses    | Use dnsx to fetch A records                                                                           |\r\n| naabu           | Port scan discovery   | Run naabu on the list of subdomains using list of common ports to discover HTTP services              |\r\n| httpx           | Subdomain validation  | Check all found subdomains if they are active                                                         |\r\n| wpscan          | Vulnerability scanner | WordPress Security Scanner                                                                            |\r\n| acunetix        | Vulnerability scanner | Automatically creates a group for the site and starts scans of the subdomains to find vulnerabilities |\r\n| nuclei          | Vulnerability scanner | Uses all found active subdomains to search for vulnerabilities                                        |\r\n\r\n# 📂 Workflow\r\n\u003cimg src=\"static/workflow.png\" alt=\"workflow\"\u003e\r\n\r\n# 🙏 Credits\r\n### Special thanks to the team at [ProjectDiscovery](https://github.com/projectdiscovery) for their incredible range of tools.\r\n### Thanks to [HadrianSecurity](https://github.com/hadriansecurity) for the Subwiz AI subdomain prediction tool.\r\n\r\n\u003c/br\u003e\u003c/br\u003e\r\n\u003cp align=\"center\"\u003e\r\n   \u003ca href=\"https://haxunit.com\" style=\"font-size:50px\"\u003eHaxUnit.com\u003c/a\u003e\u003c/br\u003e\r\n   \u003ca href=\"https://discord.gg/83xfCdRP7Y\" style=\"font-size:50px\"\u003eJoin the Discord!\u003c/a\u003e\u003c/br\u003e\r\n\u003c/p\u003e","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FBandit-HaxUnit%2Fhaxunit","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FBandit-HaxUnit%2Fhaxunit","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FBandit-HaxUnit%2Fhaxunit/lists"}