This walks a local, self-contained dry-run against a target you are authorized to assess. Everything stays on your machine.
::: warning Authorization first Do not point phishkit at systems or people you are not authorized to test. Read authorized use. :::
Practice capture shapes without a client target:
make demo-cookie # cookie session on http://127.0.0.1:9080
# or: make demo-firebase # Firebase-shaped mock on :9081
make validate-phishlet PHISHLET=demo-cookieTest credentials: demo@phishkit.local / demo-password. Copy-ready Target
notes live under demos/cookie/ and demos/firebase/ in the
repo. See also demos/README.md.
Prefer the in-app Demo tour (sidebar) or the text walkthrough first — they cover the desktop Assessment flow and both localhost demos.
make desktopAccept the one-time authorized-use acknowledgment when prompted (required before bulk send).
From the Assessments home, create an assessment for the engagement. It becomes the container for everything below.
- Add a Target for a domain you are authorized to assess — or use
demo-cookie.local.phishkit/ phishletdemo-cookiefor local practice. - Generate or import its phishlet, then start the evilginx destination.
- Apply the
/etc/hostsentries when prompted (admin rights required for the local dry-run). - Copy the tracked lure link.
- Save a Template — HTML with merge tags such as
{{first_name}},{{email}}, and{{link}}. - Create a Recipient list and import a CSV with an
emailcolumn. The import preview validates and de-duplicates rows.
In Delivery, add a sending account. For a local dry-run, use a test mailbox you control. For real engagements prefer a dedicated simulation domain with correct SPF/DKIM/DMARC. Supported: SMTP, Amazon SES (SMTP), and the Resend / SendGrid / Mailgun / Postmark HTTP APIs.
Open Campaigns and use the composer:
- Draft — bind the target, named lure, sender, template, and list.
- Review — phishkit runs readiness checks and surfaces missing dependencies as actionable cards.
- Test — send a single message to yourself.
- Launch — start sending (optionally scheduled, with a send window and rate limit).
Business users can instead pick the Guided flow and a preset scenario.
- Results shows the funnel: queued, sent, delivered, opened, clicked, bounced, complained, lure visits, and captures.
- Click a captured result to open the Session — timeline, masked credentials, token/cookie summary, and campaign/lure attribution — where you can export (cookies.txt / JSON / redacted bundle) or run gated replay.
When the engagement ends, use the assessment
lifecycle to export a bundle, purge
sessions/attempts/PII, and remove the /etc/hosts entries.
The same paths are scriptable with the CLI. The repo ships a Destinations end-to-end check:
TEST_EMAIL='you@example.com' TEST_PASSWORD='…' make test-destinationsThe default desktop UI suite (no mailbox) is make test-integration-docker.
See Testing.