Simulakra is a lightweight automation tool that launches phishing campaigns via the GoPhish API. It schedules attacks, tracks interactions, and automatically sends awareness emails to users who fall for the bait. Built for realism, designed for security posture testing.
- Python 3.7+
- GoPhish server with API access
- SMTP server for warning emails (Mailgun recommended)
- CSV file with target information
-
Clone or download the project files
git clone git@github.com:bughra383/simulakra.git cd simulakra -
Create a virtual environment
python3 -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate
-
Install dependencies
pip install -r requirements.txt
-
Configure environment variables
cp .env.example .env # Edit .env with your actual credentials nano .env -
Configure the application
# Edit config.yaml with your GoPhish server details and object names nano config.yaml -
Prepare target CSV file
# Edit targets.csv with your actual target information nano targets.csv
# GoPhish API
GOPHISH_API_KEY=your_gophish_api_key_here
# Mailgun SMTP (for warning emails)
MAILGUN_SMTP_SERVER=smtp.mailgun.org
MAILGUN_SMTP_PORT=587
MAILGUN_SMTP_USER=your_mailgun_username@your-domain.com
MAILGUN_SMTP_PASS=your_mailgun_password_here- GoPhish URL and API key
- Object names: SMTP profile, template, and landing page names
- Campaign settings: URL, timeout, warning email preferences
- SMTP settings: Sender information for warning emails
The CSV file must contain these columns:
FirstName: Target's first nameLastName: Target's last nameEmail: Target's email addressPosition: Target's job position/title
Before running the script, ensure your GoPhish instance has:
- SMTP Profile named "SMTP" (or update config.yaml)
- Email Template named "Password_Reset" (or update config.yaml)
- Landing Page named "Login_Page" (or update config.yaml)
- Valid API key with appropriate permissions
# Activate virtual environment
source venv/bin/activate
# Run the script
python simulakra.pyAdd to crontab for monthly execution on the 1st at 9 AM:
# Edit crontab
crontab -e
# Add this line (adjust paths as needed)
0 9 1 * * /path/to/venv/bin/python /path/to/simulakra.py >> /var/log/simulakra.log 2>&1