| 🚧 Work in Progress |
|---|
| I am currently working on this tool, and it is not yet finished. Please do not use it until further notice, as features may be incomplete and unexpected issues may occur. |
FishMe is a phishing tool for creating and managing phishing campaigns. It provides a CLI-based platform for creating phishing templates, capturing credentials, and analyzing results.
- Template Management: Create, edit, delete, backup, and restore phishing templates
- Multi-Site Management: Run multiple phishing sites simultaneously
- Export/Import: Export captured data in CSV, JSON, XML, and HTML formats
- Analytics & Statistics: Generate comprehensive reports and charts
- Session Management: Track and manage phishing sessions
- Template Generator: Interactive wizard for creating custom templates
- Report Generation: Generate HTML, PDF, Markdown, and JSON reports
- Plugin System: Extensible architecture for custom functionality
- Configuration Management: Centralized configuration system
- Comprehensive Logging: Advanced logging with rotation and search
pie
title FishMe Feature Distribution
"Template Management" : 10
"Multi-Site Management" : 10
"Export/Import" : 10
"Analytics & Statistics" : 10
"Session Management" : 10
"Template Generator" : 10
"Report Generation" : 10
"Plugin System" : 10
"Configuration Management" : 10
"Comprehensive Logging" : 10
graph TB
A[User Interface<br/>CLI] --> B[Command Dispatcher]
B --> C[Core Functions]
B --> D[Library Modules]
B --> E[Plugin System]
C --> F[PHP Server]
D --> G[Config Files]
E --> H[Custom Plugins]
F --> I[Templates]
G --> J[Data Storage]
style A fill:#4a90e2
style B fill:#4a90e2
style C fill:#4a90e2
style D fill:#4a90e2
style E fill:#4a90e2
style F fill:#4a90e2
style G fill:#4a90e2
style H fill:#4a90e2
style I fill:#4a90e2
style J fill:#4a90e2
- Cloudflare Tunnel (with account authentication)
- LocalXpose
- Local server only
- Bash shell
- PHP 7.4 or higher
- curl
- jq (for JSON processing)
- git (for updates)
# Clone the repository
git clone https://github.com/syed-sameer-ul-hassan/FishME.git
cd FishME
# Run the installation script
chmod +x install.sh
./install.sh# Make the fishme script executable
chmod +x fishme
# Add to PATH (optional)
sudo ln -s $(pwd)/fishme /usr/local/bin/fishmefishme start # Start phishing server (interactive)
fishme list # List available templates
fishme capture # View captured credentials
fishme update # Update from GitHub
fishme uninstall # Remove from system
fishme -h # Show help
fishme -v # Show versionfishme template list # List all templates
fishme template info <name> # Show template info
fishme template create <name> <display> <brand> <domain> # Create new template
fishme template delete <name> # Delete template
fishme template backup <name> # Backup template
fishme template restore <backup> # Restore from backup
fishme template export <name> [dir] # Export template
fishme template import <archive> # Import template
fishme template validate <name> # Validate templatefishme export csv [template] # Export to CSV
fishme export json [template] # Export to JSON
fishme export xml [template] # Export to XML
fishme export html [template] # Export to HTML
fishme export all # Export to all formats
fishme export list # List exports
fishme import csv <file> # Import from CSV
fishme import json <file> # Import from JSONfishme stats report # Generate full report
fishme stats chart <type> # Generate chart (template/date)
fishme stats quick # Show quick summary
fishme stats export [file] # Export stats to JSONFishMe provides visual analytics using Mermaid charts:
pie
title Template Performance
"Facebook" : 35
"Google" : 25
"Discord" : 20
"Instagram" : 15
"GitHub" : 5
xychart-beta
title "Captures by Date"
x-axis ["Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"]
y-axis "Captures" 0 --> 50
bar [15, 25, 30, 20, 35, 40, 45]
line [15, 25, 30, 20, 35, 40, 45]
graph LR
A[Captures] --> B[Facebook<br/>35%]
A --> C[Google<br/>25%]
A --> D[Discord<br/>20%]
A --> E[Instagram<br/>15%]
A --> F[GitHub<br/>5%]
style A fill:#4a90e2
style B fill:#4a90e2
style C fill:#4a90e2
style D fill:#4a90e2
style E fill:#4a90e2
style F fill:#4a90e2
fishme session list # List all sessions
fishme session info <id> # Show session info
fishme session end <id> # End session
fishme session delete <id> # Delete session
fishme session export <id> [file] # Export session
fishme session import <file> # Import session
fishme session cleanup [days] # Clean up old sessions
fishme session check # Check for orphaned sessionsfishme generate # Interactive template creation wizardfishme report html [file] # Generate HTML report
fishme report pdf [file] # Generate PDF report
fishme report md [file] # Generate Markdown report
fishme report json [file] # Generate JSON report
fishme report all [base] # Generate all formats
fishme report list # List reports
fishme report delete <name> # Delete reportfishme multi create <id> <template> <port> [tunnel] # Create site config
fishme multi list # List all sites
fishme multi start <id> # Start site
fishme multi stop <id> # Stop site
fishme multi stop-all # Stop all sites
fishme multi status <id> # Show site status
fishme multi delete <id> # Delete site config
fishme multi monitor # Monitor all sites
fishme multi health <id> # Check site health
fishme multi export [file] # Export site configs
fishme multi import <file> # Import site configsgraph TB
A[Multi-Site Manager] --> B[Site 1<br/>Facebook:8081]
A --> C[Site 2<br/>Google:8082]
A --> D[Site 3<br/>Discord:8083]
A --> E[Site 4<br/>Instagram:8084]
B --> B1[Cloudflare Tunnel]
C --> C2[LocalXpose]
D --> D3[Cloudflare Tunnel]
E --> E4[Local Only]
style A fill:#4a90e2
style B fill:#4a90e2
style C fill:#4a90e2
style D fill:#4a90e2
style E fill:#4a90e2
style B1 fill:#4a90e2
style C2 fill:#4a90e2
style D3 fill:#4a90e2
style E4 fill:#4a90e2
fishme plugin list # List all plugins
fishme plugin enable <name> # Enable plugin
fishme plugin disable <name> # Disable plugin
fishme plugin create <name> [desc] # Create new plugin
fishme plugin delete <name> # Delete plugin
fishme plugin info <name> # Show plugin info
fishme plugin export <name> [file] # Export plugin
fishme plugin import <archive> # Import plugin
fishme plugin validate <name> # Validate plugingraph TB
A[Plugin Manager] --> B[Plugin Registry]
B --> C[Plugin Loader]
C --> D[Enabled Plugins]
C --> E[Disabled Plugins]
D --> F[Hook Execution]
F --> G[on_capture]
F --> H[on_session_start]
F --> I[on_session_end]
F --> J[on_template_load]
style A fill:#4a90e2
style B fill:#4a90e2
style C fill:#4a90e2
style D fill:#4a90e2
style E fill:#4a90e2
style F fill:#4a90e2
style G fill:#4a90e2
style H fill:#4a90e2
style I fill:#4a90e2
style J fill:#4a90e2
fishme config get <key> [default] # Get config value
fishme config set <key> <value> # Set config value
fishme config show # Show config filegraph TD
A[config/fishme.conf] --> B[server<br/>host, port]
A --> C[tunnel<br/>type, tokens]
A --> D[paths<br/>directories]
A --> E[logging<br/>level, rotation]
A --> F[templates<br/>default, cache]
A --> G[capture<br/>format, export]
A --> H[ui<br/>colors, banner]
A --> I[security<br/>sanitization, limits]
style A fill:#4a90e2
style B fill:#4a90e2
style C fill:#4a90e2
style D fill:#4a90e2
style E fill:#4a90e2
style F fill:#4a90e2
style G fill:#4a90e2
style H fill:#4a90e2
style I fill:#4a90e2
fishme log recent [lines] # Show recent logs
fishme log search <pattern> # Search logs
fishme log stats # Show log statisticsflowchart LR
A[Application] --> B[Logger]
B --> C[Log File]
C --> D[Rotation]
D --> E[Retention]
style A fill:#4a90e2
style B fill:#4a90e2
style C fill:#4a90e2
style D fill:#4a90e2
style E fill:#4a90e2
FishMe uses a centralized configuration file at config/fishme.conf. The configuration is organized into sections:
[server]
default_host=127.0.0.1
default_port=8080
[tunnel]
default_tunnel=cloudflare
cloudflare_token_file=.cf_token
localxpose_token_file=.loclx_token
[paths]
templates_dir=templates
capture_dir=capture
logs_dir=logs
config_dir=config
sessions_dir=sessions
exports_dir=exports
[logging]
log_level=info
log_file=logs/fishme.log
max_log_size=10M
log_retention_days=7
[templates]
default_template=facebook
auto_update_templates=false
template_cache_dir=.cache/templates
[capture]
capture_format=json
auto_export=false
export_format=csv
export_dir=exports
[ui]
color_output=true
show_banner=true
confirm_destructive=true
[security]
sanitize_input=true
validate_urls=true
max_captures_per_session=1000
session_timeout=3600FishMe features a modular plugin architecture that allows you to extend functionality without modifying the core code.
fishme plugin create my_plugin "My custom plugin"This creates a plugin directory with the following structure:
plugins/my_plugin/
├── plugin.json # Plugin metadata
└── plugin.sh # Plugin code
Plugins can hook into various events:
on_capture- Called when a capture is receivedon_session_start- Called when a session startson_session_end- Called when a session endson_template_load- Called when a template is loaded
# plugins/my_plugin/plugin.sh
#!/bin/bash
my_plugin_init() {
log_info "My plugin initialized"
}
my_plugin_on_capture() {
local capture_file="$1"
log_info "Capture received: $capture_file"
# Add your custom logic here
}FishMe allows you to run multiple phishing sites simultaneously, each with its own configuration.
fishme multi create site1 facebook 8081 cloudflare
fishme multi create site2 google 8082 nonefishme multi start site1
fishme multi start site2
fishme multi monitor # Monitor all running sites
fishme multi stop-all # Stop all sitesFishMe/
├── fishme # Main executable script
├── config.php # PHP configuration
├── router.php # PHP router
├── capture.php # Capture handler
├── viewer.php # Web viewer
├── install.sh # Installation script
├── config/ # Configuration files
│ └── fishme.conf # Main configuration
├── templates/ # Phishing templates
│ ├── facebook/
│ ├── google/
│ ├── discord/
│ └── ...
├── capture/ # Captured credentials
├── logs/ # Log files
├── sessions/ # Session data
├── exports/ # Exported data
├── reports/ # Generated reports
├── plugins/ # Custom plugins
├── lib/ # Library modules
│ ├── config_loader.sh
│ ├── logger.sh
│ ├── template_manager.sh
│ ├── export_manager.sh
│ ├── analytics.sh
│ ├── session_manager.sh
│ ├── template_generator.sh
│ ├── report_generator.sh
│ ├── multi_site_manager.sh
│ └── plugin_manager.sh
├── .multi_site/ # Multi-site configurations
├── .cache/ # Cache directory
└── .backups/ # Template backups
FishMe supports Cloudflare account authentication for creating tunnels with custom domains.
# During server start, select "Cloudflare with account"
# Or use the Cloudflare login functionYour Cloudflare API token needs the following permissions:
- Zone - Zone - Read
- Account - Account Settings - Read
Get your API token from: https://dash.cloudflare.com/profile/api-tokens