Skip to main content
Phishmonger provides real-time event tracking for monitoring campaign progress and target interactions. Events are delivered via WebSockets and stored in the database for analysis.

Event System Overview

How Events Work

1

Event Creation

An event occurs (email sent, link clicked, data submitted)
2

Event Logging

Event is inserted into the database with timestamp and details
3

WebSocket Broadcast

Event is broadcast to all connected clients via Socket.io
4

Real-Time Display

Event appears immediately in the tracking interface
5

Optional Notification

Telegram notification sent if configured
Benefits:
  • No page refresh needed
  • Instant notification of target interactions
  • Complete event history
  • Searchable event logs

Event Types

EMAIL_SENT

Triggered When: Email successfully sent to target via SMTP Event Data: Target email address Example:

CLICK

Triggered When: Target clicks phishing link Event Data: Varies by integration (IP address, user agent, etc.) Source: Payload delivery server (e.g., Humble Chameleon) via /create_event API Example:

POST_DATA

Triggered When: Target submits form data (credentials, information) Event Data: Posted form data (may include credentials) Source: Payload delivery server via /create_event API Example:
Sensitive Data: POST_DATA events may contain credentials. Secure the database appropriately and follow data handling policies.
Triggered When: Session cookies captured from target browser Event Data: Cookie values and session tokens Source: Payload delivery server via /create_event API Example:

ERROR

Triggered When: Email delivery fails or SMTP error occurs Event Data: Error message from SMTP server Example:
Common Error Codes:
  • 550 5.1.1: User unknown (invalid email address)
  • 550 5.7.1: SPF/DKIM failure (authentication issue)
  • 554: Message rejected (spam filter)
  • 450/451: Temporary failure (greylisting, rate limit)

Custom Event Types

Additional event types can be created by payload delivery systems:
  • DIRECT_DOWNLOAD: File downloaded
  • 2FA_BYPASS: Multi-factor authentication bypass
  • SESSION_HIJACK: Session takeover
  • FORM_VIEW: Target viewed form (but didn’t submit)
  • Any custom type defined by integration

Campaign Tracking Interface

Accessing Campaign Tracking

1

Navigate to Admin

2

Click Campaign Name

Select campaign to track from the list
3

View Tracking Page

Campaign tracking interface displays with real-time updates

Tracking Interface Components

Campaign Statistics:
  • Total targets
  • Emails sent
  • Emails remaining
  • Current status (sending/stopped)
Real-Time Event Feed:
  • Live scrolling list of events
  • Newest events appear at top
  • Color-coded by event type
Event Charts:
  • Events over time
  • Events by type
  • Click-through rates
Target Status:
  • List of targets
  • Phished status
  • Event counts per target
Campaign Controls:
  • Send Campaign button
  • Schedule Campaign button
  • Cancel Campaign button

Real-Time Monitoring

WebSocket Connection

The tracking interface connects via Socket.io:
Connection States:
  • Connected: Real-time updates active
  • Disconnected: Page shows connection lost
  • Reconnecting: Automatic reconnection attempt
Multiple Tabs: All open tracking pages receive real-time updates

Event Feed

Events appear instantly in the feed: Display Format:
Example:

Searching Events

Event Search Interface

Navigate to:
Search Parameters:
  • Campaign name (required)
  • Timestamp (partial match)
  • Event type (CLICK, POST_DATA, etc.)
  • Source IP address
  • Target ID
  • Event data (content search)
Example Search:
Returns all POST_DATA events containing “password”. Search via API:
Response:
Direct SQL queries:

Event Filtering

Ignore Events

Mark events as ignored to exclude from tracking: Via API:
Via Database:

Unignore Events

Restore ignored events: Via API:
Via Database:

Event Analytics

Campaign Metrics

Target Analysis

IP Analysis

Exporting Event Data

Export All Events

Export Specific Event Types

Export Timeline

Telegram Notifications

If Telegram bot is configured in config.json, notifications are sent for key events.

Notification Format

Examples:

Events That Trigger Notifications

  • EMAIL_SENT (every email)
  • CLICK (every click)
  • POST_DATA (every submission)
  • ERROR (every error)
Notification Volume: For large campaigns, expect many notifications. Consider:
  • Muting non-critical events
  • Using a dedicated Telegram channel
  • Filtering notifications at payload server

Event Database Schema

Fields:
  • event_timestamp: Unix timestamp in milliseconds
  • event_ip: Source IP address
  • campaign: Campaign name
  • target: Target ID
  • event_type: Type of event (EMAIL_SENT, CLICK, etc.)
  • event_data: Event details (varies by type)
  • ignore: 0 = active, 1 = ignored
Indexes (recommended for performance):

Troubleshooting Tracking

Events Not Appearing

Check WebSocket Connection:
  • Open browser console (F12)
  • Look for Socket.io connection messages
  • Verify no console errors
Verify Event in Database:
Check Ignore Status:

Tracking Page Not Updating

Refresh Page: Hard refresh (Ctrl+F5) Check Server Status:
Review Server Logs: Check for WebSocket errors

Missing Click/POST_DATA Events

Verify Integration: Ensure payload server is configured to send events to:
Check Authentication: Payload server must send admin cookie:
Test Event Creation: