Advanced Directory Enumeration Tool - More powerful than dirsearch and gospider
Project description
Deep-Dir - Advanced Directory Enumeration Tool
Deep-Dir is a powerful, next-generation directory enumeration tool that combines brute-forcing, intelligent crawling, and advanced fuzzing techniques to discover hidden web directories and files. It's designed to be more effective than traditional tools like dirsearch and gospider by incorporating "deep and wild" features.
🚀 Installation
Via PyPI (Recommended)
pip install deepdir
From Source
git clone https://github.com/LifeJiggy/Deep-Dir.git
cd Deep-Dir
pip install -r requirements.txt
python setup.py install
Docker
docker build -t deepdir .
docker run -it deepdir --help
Features
🚀 Core Capabilities
- Hybrid Scanning: Combines brute-force enumeration with intelligent web crawling
- Advanced Fuzzing: Smart pattern generation with mutations, date-based patterns, and intelligent word variations
- Anti-WAF Techniques: Built-in WAF bypass methods including header rotation, encoding variations, and request randomization
- Recursive Discovery: Deep recursive scanning with smart stopping conditions
- Multi-threaded Performance: Configurable threading with rate limiting and delays
- Content Analysis: Advanced content analysis for technology detection, secret finding, and file type identification
- Intelligent Filtering: Smart filtering to remove false positives and prioritize important findings
- Real-time Monitoring: Live progress tracking with statistics and performance metrics
🎯 Advanced Features ("Deep and Wild")
- Pattern-based Fuzzing: Generates fuzzing patterns using templates like
{year},{month},{id} - Smart Mutations: Automatically creates variations of discovered paths (case changes, encoding, suffixes)
- Date-based Discovery: Scans for backup files using year/month patterns
- Encoding Variations: Tests multiple URL encodings to bypass filters
- Header Randomization: Rotates User-Agents and headers to avoid detection
- Technology Fingerprinting: Detects web frameworks, CMS, and server technologies
- Secret Detection: Finds API keys, tokens, passwords, and other sensitive data
- File Type Classification: Identifies admin panels, config files, backups, logs, and more
- Endpoint Discovery: Extracts API endpoints and internal URLs from JavaScript and HTML
- Intelligent Filtering: Advanced response filtering based on size, content, and regex patterns
🛠️ Technical Features
- Multiple Output Formats: JSON, CSV, HTML, and plain text reports
- Configuration Management: JSON-based config files with CLI override
- Extensible Architecture: Modular design for easy feature addition
- Proxy Support: HTTP/SOCKS proxy support with proxy rotation
- Session Management: Persistent sessions with cookie support
- Logging: Comprehensive logging with file and console output
Installation
Requirements
- Python 3.9+
- pip
Install from source
git clone https://github.com/yourusername/deepdir.git
cd deepdir
pip install -r requirements.txt
Install via pip
pip install deepdir
Usage
Basic Usage
# Simple scan
python deepdir.py -u https://example.com
# With wordlist
python deepdir.py -u https://example.com -w wordlists/common.txt
# Enable all advanced features
python deepdir.py -u https://example.com --fuzz-patterns --anti-waf --smart-mutations
Advanced Usage
# Recursive scanning with custom extensions
python deepdir.py -u https://example.com -r -d 3 -e php,html,js,txt
# Anti-WAF mode with delays
python deepdir.py -u https://example.com --anti-waf --delay 1 --random-delay 0.5 2.0
# Hybrid mode (brute + crawl) with output
python deepdir.py -u https://example.com --hybrid -o results.json -f json
# Multiple targets
python deepdir.py -l targets.txt -t 20 --quiet
Command Line Options
Target Options
-u, --url URL: Target URL-l, --url-list PATH: File containing list of URLs
Wordlist Options
-w, --wordlist PATH: Wordlist file--wordlists PATH [PATH ...]: Multiple wordlist files-e, --extensions EXT: File extensions (comma-separated)
Scan Modes
--brute: Enable brute-force mode only--crawl: Enable crawling mode only--hybrid: Enable hybrid mode (default)
Advanced Features
-r, --recursive: Enable recursive scanning-d, --depth INT: Maximum recursion depth (default: 2)--fuzz-patterns: Enable advanced fuzzing patterns--anti-waf: Enable anti-WAF techniques--smart-mutations: Enable smart word mutations
Performance Options
-t, --threads INT: Number of threads (default: 10)--delay FLOAT: Delay between requests--random-delay MIN MAX: Random delay range
Filtering Options
-i, --include-status CODES: Include status codes-x, --exclude-status CODES: Exclude status codes--min-size SIZE: Minimum response size--max-size SIZE: Maximum response size
Output Options
-o, --output PATH: Output file-f, --format FORMAT: Output format (txt, json, csv, html)-q, --quiet: Quiet mode-v, --verbose: Verbose output
Configuration
-c, --config PATH: Configuration file--save-config PATH: Save current config
Configuration
DeepDir uses JSON-based configuration files. Example config:
{
"threads": 15,
"recursive": true,
"max_depth": 3,
"fuzz_patterns": true,
"anti_waf": true,
"extensions": ["php", "html", "js", "txt"],
"include_status_codes": [200, 301, 302, 403],
"exclude_status_codes": [404, 429],
"user_agent": "DeepDir/5.0",
"timeout": 10.0,
"delay": 0.5
}
Wordlists
DeepDir comes with built-in wordlists and supports custom wordlists. The tool automatically applies extensions and generates variations.
Built-in Wordlists
wordlists/common.txt: Common web directories and fileswordlists/admin.txt: Administrative panelswordlists/api.txt: API endpointswordlists/backup.txt: Backup files
Wordlist Format
Wordlists are simple text files with one entry per line:
admin
login.php
config
backup.sql
Advanced Features
Fuzzing Patterns
DeepDir generates intelligent fuzzing patterns:
- Date-based:
backup2023,bak202312 - ID-based:
user1,admin2,test123 - Mutation-based:
Admin,ADMIN,admin2,admin_old
Anti-WAF Techniques
- User-Agent rotation
- Header randomization
- Request encoding variations
- Path traversal encoding
- Junk header injection
Smart Filtering
- Response size filtering
- Content-based filtering
- Regex pattern matching
- Status code filtering
Output Formats
Text (default)
200 1234 https://example.com/admin
403 234 https://example.com/backup
JSON
[
{
"url": "https://example.com/admin",
"status_code": 200,
"content_length": 1234,
"scan_type": "brute_force"
}
]
CSV
url,status_code,content_length,scan_type
https://example.com/admin,200,1234,brute_force
HTML
Generates a formatted HTML report with tables and styling.
Examples
Basic Directory Discovery
python deepdir.py -u https://example.com -w wordlists/common.txt
Advanced Reconnaissance
python deepdir.py -u https://example.com \
--hybrid \
--recursive \
--depth 3 \
--fuzz-patterns \
--anti-waf \
--extensions php,html,js,txt,bak \
--threads 20 \
--delay 0.5 \
--output results.json \
--format json \
--verbose
API Discovery
python deepdir.py -u https://api.example.com \
--wordlist wordlists/api.txt \
--extensions json,xml,yaml \
--include-status 200,201,401,403
Backup File Hunting
python deepdir.py -u https://example.com \
--fuzz-patterns \
--extensions bak,backup,old,orig,tmp \
--recursive
Contributing
Contributions are welcome! Please feel free to submit pull requests, report bugs, or suggest features.
Development Setup
git clone https://github.com/yourusername/deepdir.git
cd deepdir
pip install -r requirements.txt
pip install -r requirements-dev.txt
Running Tests
python -m pytest tests/
License
This project is licensed under the MIT License - see the LICENSE file for details.
Disclaimer
This tool is for educational and authorized testing purposes only. Users are responsible for complying with applicable laws and regulations. The authors are not responsible for any misuse or damage caused by this tool.
Credits
Inspired by dirsearch, gospider, and other directory enumeration tools. Built with ❤️ for the security community.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file deepdir-5.0.0.tar.gz.
File metadata
- Download URL: deepdir-5.0.0.tar.gz
- Upload date:
- Size: 38.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
287c28062b47c1a5690086ea507b713bd5d735010f3064208cd4c3e0d43d3e99
|
|
| MD5 |
2f8c1166a9d33ffad398afb492f1c2c5
|
|
| BLAKE2b-256 |
e255a9994ca8e6adc1c607903646047afc2c2f35fbbc542409e4df8a07217bc8
|
File details
Details for the file deepdir-5.0.0-py3-none-any.whl.
File metadata
- Download URL: deepdir-5.0.0-py3-none-any.whl
- Upload date:
- Size: 31.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4e42d0964bcff1bcef3a0e455631981f8d02840ab6b656f173679dca861df7ff
|
|
| MD5 |
6287f78d8cfe575e97a2fa08f71c65c2
|
|
| BLAKE2b-256 |
c1aa280f0cdb38052f18c8b635254d506650757e5a0f1b390fbc9f72a6aa5f06
|