___ _
| _ )_ _ __ _ _ _ __| |_
| _ \ '_/ _` | ' \/ _| ' \
|___/_| \__,_|_||_\__|_||_|
v1.0.0
Author : Hesam Aghajani
Contact: [email protected]
Description: A subdomain enumeration and validation tool
Branch is a modular and automated subdomain enumeration tool designed for reconnaissance and domain footprinting. It integrates several powerful subdomain discovery tools, generates permutations with dnsgen, and validates results using massdns. Branch helps you build a comprehensive subdomain list for a given domain—quickly and efficiently.
- Multi-tool Enumeration: Integrates tools like amass, subfinder, assetfinder, findomain, subscraper
- DNS Permutation: Uses dnsgen to generate realistic subdomain variations
- DNS Resolution: Leverages massdns for fast and accurate DNS resolution
- Live Detection: Optionally sends HTTP requests to detect which subdomains are alive
- Temporary File Management: All temp files are auto-removed after execution
- Progress Reporting: Displays status at each stage of the process (tools, dnsgen, massdns, filtering)
- Custom Timeout & Live Settings: Tune requests and performance as needed
- Fast & Clean: Designed to run quickly and cleanly on any system with the required tools installed
- Python 3.6+
- See
requirements.txtfor dependencies
git clone https://github.com/hesamz3090/branch.git
cd branch
pip install -r requirements.txtOr install directly using pip (after packaging):
pip install .| Argument | Type | Default | Description |
|---|---|---|---|
| url | str | Required | The base URL to start crawling from. Must start with http:// or https://. |
| --timeout | int | 5 | Timeout in seconds for each HTTP request. |
| --live | flag | True | If enabled, prints real-time logs during crawling. |
| --format | str | csv | Output format: either 'csv' or 'json'. |
| --output | str | current dir | Directory path to save the output. If not provided, saves in the current folder. |
| -v | flag | — | Displays the current version of the tool. |
moss "http://example.com"
moss python moss.py https://example.com --format json --output ./resultsOr
from branch import Branch
obj = Branch("http://example.com")
response_list = obj.run()[
"https://test.example.com",
"https://demo.example.com",
".."
]Or
https://test.example.com
https://demo.example.com
"..."
Moss is licensed under the MIT License. See the LICENSE for more information.