A Python-based toolkit for generating custom wordlists for authorized password testing, featuring both personal and target-focused approaches.
This toolkit is designed ONLY for:
- Ethical security testing
- Systems you own
- Systems you have explicit written permission to test
Unauthorized password attacks are illegal and can result in serious legal consequences.
Generate wordlists based on personal information with optional AI integration.
Create customized wordlists specifically focused on a target entity, with options to specify password count and length.
- Two complementary approaches to wordlist generation
- Customizable password count and length requirements
- Generate target-specific or personal wordlists
- Creates common password variations and combinations
- Integrates with multiple AI APIs for creative password variations:
- OpenAI (GPT-3.5 Turbo)
- Google Gemini Pro
- Grok
- DeepSeek R1
- Llama 3
- Supports password length constraints (minimum and maximum)
- Prepares commands for Hydra brute-force testing
- Comprehensive logging for all operations
- Detailed help system for all functions and options
- Python 3.6 or higher
- Required Python packages:
- requests
- pyfiglet
- hydra (optional for brute-force testing)
sudo apt install hydra- Clone this repository or download the source code
- Install the required packages:
pip install -r requirements.txtRun the script without arguments for interactive mode:
python3 wordlist_generator.pypython3 target_wordlist_generator.pypython wordlist_generator.py [options]Options:
--use-ai: Enable AI-powered password variations (requires API key)--api-key KEY: Specify the API key for AI integration--api-provider {openai,gemini,grok,deepseek,llama3}: Choose which AI provider to use (default: openai)--api-base-url URL: Optional custom API base URL for self-hosted models or alternative endpoints--min-length NUM: Specify minimum password length--max-length NUM: Specify maximum password length--output FILE: Specify a custom output filename for the wordlist--help-function NAME: Display detailed help for a specific function--show-functions: List all available functions--help-options: Display detailed help for all command-line options
Using OpenAI with password length constraints:
python wordlist_generator.py --use-ai --api-key YOUR_OPENAI_API_KEY --min-length 8 --max-length 16 --output my_wordlist.txtGetting detailed help on command options:
python wordlist_generator.py --help-optionsViewing help for a specific function:
python wordlist_generator.py --help-function generate_ai_variationsListing all available functions:
python wordlist_generator.py --show-functionsUsing Google Gemini:
python wordlist_generator.py --use-ai --api-key YOUR_GEMINI_API_KEY --api-provider gemini --output my_wordlist.txtThe target-based generator focuses on creating wordlists based on information about a specific target entity.
Run the script for interactive mode:
python target_wordlist_generator.py- Specify exactly how many passwords you need in the wordlist
- Set minimum and maximum password lengths
- Collect specific information about your target
- Optional organization/company information
- Optional personal details (pet names, spouse, etc.)
- Optional important dates
- Creates a customized output file with timestamp
- Prepares Hydra commands for testing
Using Grok:
```bash
python wordlist_generator.py --use-ai --api-key YOUR_GROK_API_KEY --api-provider grok --output my_wordlist.txt
Using DeepSeek:
python wordlist_generator.py --use-ai --api-key YOUR_DEEPSEEK_API_KEY --api-provider deepseek --output my_wordlist.txtUsing Llama 3:
python wordlist_generator.py --use-ai --api-key YOUR_LLAMA3_API_KEY --api-provider llama3 --output my_wordlist.txtUsing a custom API endpoint:
python wordlist_generator.py --use-ai --api-key YOUR_API_KEY --api-provider llama3 --api-base-url http://your-selfhosted-api.com --output my_wordlist.txt- Information Collection: The tool prompts for personal information such as names, pet names, important dates, etc. You can also specify minimum and maximum password lengths.
- Basic Variation Generation: Creates variations using common patterns, capitalizations, number combinations, etc.
- Length Filtering: Filters out passwords that don't meet the specified length constraints.
- AI-Powered Generation (Optional): Uses AI to generate more sophisticated password variations that adhere to the length requirements.
- Wordlist Creation: Saves all unique password variations to a file.
- Hydra Integration: Helps prepare a command for use with Hydra for brute-force testing.
The tool includes a comprehensive help system that provides detailed information about:
- General usage and command-line options
- Complete list of available functions
- Detailed explanations of each function including:
- Purpose and functionality
- Required parameters
- Return values
- Usage examples
To access the help system:
- Standard help:
python wordlist_generator.py --help(basic argparse help) - Detailed options help:
python wordlist_generator.py --help-options(comprehensive options guide) - List all functions:
python wordlist_generator.py --show-functions - Function-specific help:
python wordlist_generator.py --help-function FUNCTION_NAME
The --help-options command provides detailed information about:
- All available command-line options grouped by category
- Default values and requirements
- Usage examples for common scenarios
- Important notes about the tool's operation
Example functions include:
collect_personal_infogenerate_basic_variationsgenerate_ai_variationsfilter_by_lengthsave_wordlistprepare_for_hydrarun
The tool supports multiple AI providers:
- Uses the GPT-3.5 Turbo model
- Requires an OpenAI API key (https://platform.openai.com/)
- Generally provides high-quality creative variations
- Uses the Gemini Pro model
- Requires a Google AI Studio API key (https://makersuite.google.com/)
- May offer different creative perspectives on password combinations
- Uses the Grok-1 model from xAI
- Requires a Grok API key
- Known for generating unique variations with different patterns
- Uses the DeepSeek R1 model
- Requires a DeepSeek API key
- Specialized in high-performance generation capabilities
- Uses Meta's Llama 3 model
- Requires an appropriate API key for access
- Open source model with strong general capabilities
- You can use your own self-hosted models with the
--api-base-urlparameter - Works with any API that follows the OpenAI chat completions API format
You can specify password length constraints in two ways:
- Command-line arguments: Use
--min-lengthand--max-lengthoptions - Interactive input: When running the tool, you'll be prompted to enter minimum and maximum lengths
Benefits of using length constraints:
- Generate more targeted and realistic password lists
- Reduce wordlist size by filtering out passwords that are too short or long
- Match the target system's password policy (if known)
- Optimize brute-force testing efficiency
The tool can generate Hydra commands for testing against:
- SSH
- FTP
- HTTP Post Form
- SMB
The tool uses efficient data structures like Sets to avoid duplicates and ensure optimal performance.
All operations are logged to:
- Console output
wordlist_generator.logfile
| Feature | wordlist_generator.py | target_wordlist_generator.py |
|---|---|---|
| Focus | Personal information | Target entity information |
| AI Integration | Yes | No |
| Password Count | Variable | User-specified exact count |
| CLI Arguments | Extensive | None (fully interactive) |
| Detailed Help | Yes | No |
| Password Length | Optional constraints | Required constraints |
| Output | All generated combinations | Limited to requested count |
Choose wordlist_generator.py when:
- You want to generate passwords based on information about yourself
- You need AI-assisted creative variations
- You prefer command-line options
- You need extensive help documentation
Choose target_wordlist_generator.py when:
- You're creating a wordlist for testing a specific target
- You need a specific number of passwords
- You want to include company/organization information
- You prefer a guided interactive process
-
Optimizing Wordlist Size:
- Use length constraints to keep wordlists manageable
- For target_wordlist_generator, specify only the number of passwords you need
-
Effective Target Profiling:
- Collect as much relevant information as possible
- Include variations of company names and abbreviations
- Consider interests and hobbies that might influence password choices
-
Hydra Testing Best Practices:
- Use the
-t 4flag (already included) to limit concurrent attempts - Monitor logs carefully to avoid account lockouts
- Always have explicit permission before testing
- Use the
Contributions are welcome! Please feel free to submit a Pull Request.
This project is licensed under the terms of the MIT license.
Remember: Security testing without explicit authorization is illegal and unethical.