Upload files to "/"
# Bug Hunter TUI A comprehensive bug bounty hunting tool with a Text User Interface (TUI) built with Python and Textual. ## Features - **Subdomain Enumeration**: Discover subdomains using DNS queries - **Port Scanning**: Identify open ports and running services - **Directory Bruteforcing**: Find hidden directories and files on web servers - **URL Parameter Fuzzing**: Test URL parameters for vulnerabilities ## Installation 1. Install dependencies: ```bash pip install -r requirements.txt ``` 2. Setup the environment: ```bash python bughunter.py --setup ``` ## Usage ### Launch the TUI ```bash python bughunter.py ``` ### Interface The TUI is divided into 4 panels, one for each scanner: - **Subdomain Scanner**: Enter a domain (e.g., `example.com`) - **Port Scanner**: Enter an IP or domain (e.g., `192.168.1.1` or `example.com`) - **Directory Bruteforce**: Enter a URL (e.g., `http://example.com`) - **URL Fuzzer**: Enter a URL with parameters (e.g., `http://example.com/page?id=1`) ### Keyboard Shortcuts - `q` - Quit the application - `c` - Clear all logs ### Scanner Controls Each scanner panel has three buttons: - **Start Scan** - Begin scanning the target - **Stop** - Stop the current scan - **Clear** - Clear the log output ## Configuration Configuration is stored in `~/.bughunter/config.json`. You can customize: - Timeout values - Concurrent request limits - Default wordlists - File extensions for directory bruteforcing ## Wordlists Custom wordlists can be placed in `~/.bughunter/wordlists/`: - `subdomains.txt` - Subdomain wordlist - `directories.txt` - Directory/file wordlist ## Security Notice This tool is intended for authorized security testing only. Always ensure you have permission before scanning any target. Unauthorized scanning may be illegal. ## Requirements - Python 3.8+ - textual - httpx - dnspython - rich ## License MIT License ## Disclaimer Use this tool responsibly and only on systems you have permission to test. The authors are not responsible for misuse of this tool.
This commit is contained in:
commit
3e48aaabe9
|
|
@ -0,0 +1,84 @@
|
|||
# Bug Hunter TUI
|
||||
|
||||
A comprehensive bug bounty hunting tool with a Text User Interface (TUI) built with Python and Textual.
|
||||
|
||||
## Features
|
||||
|
||||
- **Subdomain Enumeration**: Discover subdomains using DNS queries
|
||||
- **Port Scanning**: Identify open ports and running services
|
||||
- **Directory Bruteforcing**: Find hidden directories and files on web servers
|
||||
- **URL Parameter Fuzzing**: Test URL parameters for vulnerabilities
|
||||
|
||||
## Installation
|
||||
|
||||
1. Install dependencies:
|
||||
```bash
|
||||
pip install -r requirements.txt
|
||||
```
|
||||
|
||||
2. Setup the environment:
|
||||
```bash
|
||||
python bughunter.py --setup
|
||||
```
|
||||
|
||||
## Usage
|
||||
|
||||
### Launch the TUI
|
||||
|
||||
```bash
|
||||
python bughunter.py
|
||||
```
|
||||
|
||||
### Interface
|
||||
|
||||
The TUI is divided into 4 panels, one for each scanner:
|
||||
- **Subdomain Scanner**: Enter a domain (e.g., `example.com`)
|
||||
- **Port Scanner**: Enter an IP or domain (e.g., `192.168.1.1` or `example.com`)
|
||||
- **Directory Bruteforce**: Enter a URL (e.g., `http://example.com`)
|
||||
- **URL Fuzzer**: Enter a URL with parameters (e.g., `http://example.com/page?id=1`)
|
||||
|
||||
### Keyboard Shortcuts
|
||||
|
||||
- `q` - Quit the application
|
||||
- `c` - Clear all logs
|
||||
|
||||
### Scanner Controls
|
||||
|
||||
Each scanner panel has three buttons:
|
||||
- **Start Scan** - Begin scanning the target
|
||||
- **Stop** - Stop the current scan
|
||||
- **Clear** - Clear the log output
|
||||
|
||||
## Configuration
|
||||
|
||||
Configuration is stored in `~/.bughunter/config.json`. You can customize:
|
||||
- Timeout values
|
||||
- Concurrent request limits
|
||||
- Default wordlists
|
||||
- File extensions for directory bruteforcing
|
||||
|
||||
## Wordlists
|
||||
|
||||
Custom wordlists can be placed in `~/.bughunter/wordlists/`:
|
||||
- `subdomains.txt` - Subdomain wordlist
|
||||
- `directories.txt` - Directory/file wordlist
|
||||
|
||||
## Security Notice
|
||||
|
||||
This tool is intended for authorized security testing only. Always ensure you have permission before scanning any target. Unauthorized scanning may be illegal.
|
||||
|
||||
## Requirements
|
||||
|
||||
- Python 3.8+
|
||||
- textual
|
||||
- httpx
|
||||
- dnspython
|
||||
- rich
|
||||
|
||||
## License
|
||||
|
||||
MIT License
|
||||
|
||||
## Disclaimer
|
||||
|
||||
Use this tool responsibly and only on systems you have permission to test. The authors are not responsible for misuse of this tool.
|
||||
|
|
@ -0,0 +1,112 @@
|
|||
#!/usr/bin/env python3
|
||||
"""
|
||||
Bug Hunter TUI - Multi-Purpose Security Testing Tool
|
||||
A comprehensive bug bounty hunting tool with Text User Interface
|
||||
|
||||
Features:
|
||||
- Subdomain enumeration
|
||||
- Port scanning
|
||||
- Directory bruteforcing
|
||||
- URL parameter fuzzing
|
||||
|
||||
Author: Bug Hunter
|
||||
"""
|
||||
|
||||
import sys
|
||||
import argparse
|
||||
from ui import run
|
||||
from config import Config, WordlistManager
|
||||
|
||||
|
||||
def main():
|
||||
"""Main entry point for Bug Hunter."""
|
||||
parser = argparse.ArgumentParser(
|
||||
description="Bug Hunter TUI - Multi-Purpose Security Testing Tool",
|
||||
formatter_class=argparse.RawDescriptionHelpFormatter,
|
||||
epilog="""
|
||||
Examples:
|
||||
bughunter.py # Launch TUI interface
|
||||
bughunter.py --setup # Setup configuration and wordlists
|
||||
|
||||
For more information, visit: https://github.com/yourusername/bughunter
|
||||
"""
|
||||
)
|
||||
|
||||
parser.add_argument(
|
||||
'--setup',
|
||||
action='store_true',
|
||||
help='Setup configuration directory and default files'
|
||||
)
|
||||
|
||||
parser.add_argument(
|
||||
'--config',
|
||||
type=str,
|
||||
help='Path to custom configuration file'
|
||||
)
|
||||
|
||||
parser.add_argument(
|
||||
'--version',
|
||||
action='version',
|
||||
version='Bug Hunter TUI v2.0.0 - Advanced Security Scanner'
|
||||
)
|
||||
|
||||
args = parser.parse_args()
|
||||
|
||||
if args.setup:
|
||||
setup_environment()
|
||||
return
|
||||
|
||||
# Initialize configuration
|
||||
config = Config(args.config)
|
||||
|
||||
# Run the TUI
|
||||
try:
|
||||
run()
|
||||
except KeyboardInterrupt:
|
||||
print("\n[!] Interrupted by user")
|
||||
sys.exit(0)
|
||||
except Exception as e:
|
||||
print(f"[!] Error: {e}")
|
||||
sys.exit(1)
|
||||
|
||||
|
||||
def setup_environment():
|
||||
"""Setup the Bug Hunter environment."""
|
||||
print("[*] Setting up Bug Hunter environment...")
|
||||
|
||||
# Initialize config
|
||||
config = Config()
|
||||
print(f"[+] Configuration directory: {config.config_dir}")
|
||||
print(f"[+] Configuration file: {config.config_file}")
|
||||
|
||||
# Initialize wordlist manager
|
||||
wordlist_manager = WordlistManager()
|
||||
print(f"[+] Wordlist directory: {wordlist_manager.wordlist_dir}")
|
||||
|
||||
# Create sample wordlists
|
||||
print("[*] Creating default wordlists...")
|
||||
|
||||
# Subdomain wordlist
|
||||
subdomains = [
|
||||
"www", "mail", "ftp", "admin", "blog", "shop", "api", "dev", "test",
|
||||
"staging", "portal", "dashboard", "cpanel", "webmail", "secure", "vpn"
|
||||
]
|
||||
wordlist_manager.save_wordlist("subdomains.txt", subdomains)
|
||||
print("[+] Created: subdomains.txt")
|
||||
|
||||
# Directory wordlist
|
||||
directories = [
|
||||
"admin", "login", "dashboard", "api", "backup", "config", "uploads",
|
||||
"files", "images", "assets", "static", "public", "private", "data"
|
||||
]
|
||||
wordlist_manager.save_wordlist("directories.txt", directories)
|
||||
print("[+] Created: directories.txt")
|
||||
|
||||
print("\n[+] Setup complete!")
|
||||
print(f"\nConfiguration location: {config.config_file}")
|
||||
print(f"Wordlists location: {wordlist_manager.wordlist_dir}")
|
||||
print("\nYou can now run 'python bughunter.py' to start the TUI")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
Loading…
Reference in New Issue