🎣 SIMULATION ENGAGEMENT Operation: HOOK, LINE & SINKER — Phishing Simulation Workbook

🎣 Engagement — Operation: HOOK, LINE & SINKER

Phishing Simulation
& Security Awareness

Hartley Financial Services — 340 employees, three offices, a recent merger that doubled their headcount without doubling their security awareness training. Their CISO contacted your team after two employees wired money to a fraudulent vendor following a convincing BEC email. They don't know how many people would have clicked. You're about to find out — legally, ethically, and with a plan to fix it. This workbook covers the complete loop that your Email Threat Analysis workbook's defensive side doesn't: how to plan, build, and execute an authorized phishing simulation, measure its results, and turn those results into an awareness training program that actually changes behaviour.

Engagement : Hartley Financial Services — Phishing Susceptibility Assessment
Trigger : BEC incident — two employees wired funds to fraudulent vendor
Scope : All 340 employees, consenting participants, internal email only
Your mandate : Plan → Infrastructure → Templates → Execute → Measure → Train
Environment : Closed classroom lab — no emails leave the training environment
Difficulty:Intermediate
Est. time:14–18 hours
Modules:8
Labs:23

📑 Table of Contents

Module 0 – Orientation & Engagement Planning
Module 1 – Infrastructure Setup
Module 2 – Target Intelligence & Pretexting
Module 3 – Phishing Email Templates
Module 4 – Landing Pages
Module 5 – Campaign Execution
Module 6 – Results Analysis & Reporting
Module 7 – Security Awareness Training Program
🧭

Module 0 – Orientation & Engagement Planning

3 labs · The phishing attack taxonomy, the engagement lifecycle, and how Hartley's BEC incident maps to it
0.1
The Phishing Attack TaxonomyTypes, terminology, and how they differ in impact and sophistication
ObjectiveUnderstand every category of phishing attack — what distinguishes them, which ones a financial services firm faces most, and which you'll simulate in this workbook.
TypeTargetTypical PretextRisk To Hartley
PhishingMass, untargetedAccount suspended, package delivery, prizeLow per-employee — high volume
Spear PhishingNamed individual, researchedReferences real project, colleague, or vendorHigh — finance and HR staff most targeted
WhalingC-suite specificallyBoard-level urgency, M&A, regulatoryExtreme — BEC at executive level
BECFinance/AP/payrollImpersonates CEO or CFO requesting urgent wireCritical — Hartley's actual incident was this
VishingAny employee by phoneIT support, bank fraud team, governmentHigh but out of scope for GoPhish
SmishingMobile numbersPackage, bank alert, HR linkMedium — requires separate tooling
Credential HarvestAny with email accessOffice 365 / Google login page cloneHigh — single-factor accounts targeted first

This workbook focuses on email-based phishing, spear phishing, and BEC simulation — the categories GoPhish is built for, and the ones directly responsible for Hartley's incident.

🎣
Hartley context: The BEC that triggered this engagement used a spoofed CEO email asking the AP team to wire $47,000 to a "new vendor" before month-end. Two employees complied. The CISO doesn't know how many more would have. Your simulation will find out.
0.2
The Full Simulation Engagement LifecycleScoping · authorization · execution · training · re-test
ObjectiveUnderstand the complete arc of a professional phishing simulation engagement — every step from initial scoping call to the re-test that proves the training worked.
  1. Scoping & Authorization

    Define the target list, email addresses in scope, allowed pretext categories (must exclude topics that could cause genuine distress — job loss, health emergencies), go/no-go criteria, and who gets told. Get everything in writing before touching any tool.

  2. Intelligence & Pretexting

    Research the target organization, identify believable pretexts using open-source intelligence, and design the campaign narrative. The quality of this phase determines click-through rate more than any technical factor.

  3. Infrastructure Build

    GoPhish setup, SMTP configuration, domain and landing page, tracking — everything that makes the campaign look real without actually being malicious.

  4. Template Craft

    Write the email and build the landing page. Subject line, sender display name, body copy, urgency/authority triggers — and always an "out" that lands on a training page rather than a dead link.

  5. Campaign Execution

    Launch, monitor in real time, respond to HR escalations (some employees will report the email — that's the right behaviour, reward it), and manage edge cases.

  6. Results Analysis & Reporting

    Click rates, submission rates, report rates, department breakdown, time-to-click — and a written report the CISO can present to the board.

  7. Training & Re-test

    Deliver awareness training targeted at exactly what employees clicked on, set a re-test date, and measure the delta. A simulation without training is just embarrassing people — this phase is where the engagement has real security value.

📋
Phases 1–6 without Phase 7 is an incomplete engagement. The click-rate data is only valuable as a baseline — what matters is whether it's lower three months later after training. Always set the re-test date before delivering the Phase 6 report.
0.3
Drafting The Engagement Authorization DocumentThe one document that separates simulation from crime
ObjectiveDraft a complete authorization document for the Hartley engagement — the same document your instructor will sign before any lab email is sent in this classroom.
ElementWhat It Must Say
Authorizing partyFull name, title, and signature of someone with actual authority to authorize the test
Scope — inExact email domains or addresses in scope — named explicitly, not "all employees"
Scope — outExplicitly excluded groups (executives? customers? recently bereaved staff?)
Pretext restrictionsTopics prohibited — job offers/redundancy, health, family emergencies, anything that could cause genuine distress
Engagement windowExact start/end dates and hours — outside this window, nothing sends
Escalation contactWho to call if an employee reports distress — a named HR contact, not just "HR"
Data handlingWho can see individual results, retention period, and how results will be destroyed
Awareness-positive clauseExplicit statement that employees who correctly report the simulation will be praised, not disciplined

Draft the Hartley authorization document. Your instructor reviews and signs it — or rejects it with feedback. No lab email sends until this is done. That's not bureaucracy; that's how real engagements work.

⚙️

Module 1 – Infrastructure Setup

3 labs · GoPhish on Kali, SMTP configuration, and why email authentication matters for deliverability
1.1
Installing & Configuring GoPhish on Kali Linuxapt install · gophish-start · admin panel · API key · first login
ObjectiveInstall GoPhish, start the service, log in, change the default password, and explore the dashboard before connecting any SMTP or target data.GoPhishKali
⚠️
On Kali Linux, the gophish command is deprecated. Always use gophish-start to start the service and gophish-stop to stop it. The Kali-packaged default credentials are admin / kali-gophish — not the upstream default.
  1. Install GoPhish from Kali's repository

    GoPhish is in Kali's official package repository — no manual download needed.

  2. Start the GoPhish service

    Using Kali's wrapper command.

  3. Open the admin panel

    In your browser at https://127.0.0.1:3333 — accept the self-signed certificate warning.

  4. Log in and immediately change the password

    Using the Kali default credentials, then set a strong passphrase you'll use for this lab.

  5. Save your API key

    From the account settings page — you'll need it for Module 5's campaign management.

  6. Explore the five main sections

    Dashboard, Campaigns, Users & Groups, Email Templates, Landing Pages, Sending Profiles.

# install GoPhish from Kali's official repository
sudo apt update && sudo apt install gophish -y

# start the GoPhish service using Kali's wrapper
gophish-start

# the dashboard is at:
https://127.0.0.1:3333

# default Kali credentials (change immediately on first login)
# Username: admin
# Password: kali-gophish

# stop when finished
gophish-stop
CheckExpected Result
gophish-startService starts without errors, shows listener address
Browser at :3333GoPhish login page loads (accept self-signed cert)
Login with admin/kali-gophishDashboard visible — change password immediately
Account settingsAPI key visible and copyable
💡
GoPhish's admin panel only listens on localhost (127.0.0.1) by default. This is correct for a training lab — it means the admin interface is never exposed to the network. Only the phishing listener needs to be reachable by targets, and in this classroom lab, that stays on localhost too since we're using Mailtrap's sandbox.
1.2
Configuring SMTP with Mailtrap SandboxA safe relay that captures without delivering — mandatory for classroom use
ObjectiveConnect GoPhish to Mailtrap's email sandbox so simulation emails are captured and inspected without ever being delivered to real inboxes.SMTPGoPhish
  1. Create a free Mailtrap account

    At mailtrap.io — the free tier provides a sandbox inbox that captures emails without delivering them.

  2. Get your sandbox SMTP credentials

    In Mailtrap, open Email Testing → Inboxes → your inbox → SMTP Settings tab. Note the Host, Port, Username, and Password.

  3. Create a Sending Profile in GoPhish

    Navigate to Sending Profiles → New Profile. Fill in the fields using your Mailtrap credentials.

  4. Send a test email

    Use GoPhish's "Send Test Email" button and verify it appears in your Mailtrap inbox.

  5. Inspect the test email

    In Mailtrap, open the email and look at: Raw source (headers), HTML body, Spam Score, and Tech Info. You'll read all of these analytically in Module 2.

# Mailtrap sandbox SMTP settings (replace with your actual credentials)
Host     : sandbox.smtp.mailtrap.io
Port     : 2525  # or 587 — both work in the sandbox
Username : <your-mailtrap-username>
Password : <your-mailtrap-password>

# GoPhish Sending Profile fields:
# Name     : Hartley IT - Sandbox
# From     : IT Helpdesk <helpdesk@hartley-financial.com>
# Host     : sandbox.smtp.mailtrap.io:2525
# Username : (your Mailtrap sandbox username)
# Password : (your Mailtrap sandbox password)
CheckExpected Result
Test email sent from GoPhishAppears in Mailtrap inbox within seconds
Mailtrap Raw sourceShows GoPhish headers including X-Mailer and X-Gophish-Contact
Mailtrap Spam ScoreWill likely be moderate — note this, you'll improve it in Lab 1.3
Real inbox delivery?Zero — Mailtrap sandbox never delivers to real addresses
1.3
Email Authentication — SPF, DKIM & DMARCWhat they do, how they affect deliverability, and why real attackers care about them
ObjectiveUnderstand the three email authentication standards that determine whether a simulation email looks legitimate — and why attackers spend as much effort on these as on the pretext itself.
StandardWhat It DoesWhat Fails Without It
SPF (Sender Policy Framework)DNS record listing which servers may send email for your domainReceiving server marks email suspicious or rejects it outright
DKIM (DomainKeys Identified Mail)Cryptographic signature proving the email wasn't modified in transitSpam filters score it higher; some filters require it
DMARC (Domain-based Message Auth)Policy telling receivers what to do when SPF or DKIM fail — and where to send reportsNo enforcement of SPF/DKIM failures — spoofing succeeds silently
  1. Look up Hartley's (simulated) domain SPF record

    Use MXToolbox to query SPF for a domain — observe what a well-configured and poorly-configured record look like.

  2. Check DMARC policy for the same domain

    A p=reject DMARC policy means spoofed emails claiming to be from that domain will be rejected. A p=none means spoofing succeeds silently while DMARC reports are sent.

  3. Inspect your Mailtrap test email's authentication headers

    Open the Raw source from Lab 1.2. Find the Authentication-Results header — what passed and what failed?

  4. Understand the attacker's perspective

    Real phishing actors register lookalike domains (hartley-financial.com vs hartleyfinancial.com) and set up SPF/DKIM/DMARC on those — making the email appear authenticated even though it's spoofed.

# check SPF record for any domain
dig TXT hartley-financial.com | grep spf

# check DMARC policy
dig TXT _dmarc.hartley-financial.com

# example DMARC policy values and their meaning
# p=none   → monitor only, no enforcement (spoofing succeeds)
# p=quarantine → send suspicious emails to spam
# p=reject  → reject spoofed emails outright (strongest protection)
Authentication ResultImplication
spf=pass, dkim=pass, dmarc=passEmail appears fully authenticated — highest deliverability, lowest spam score
spf=fail, dmarc=noneSpoofing visible to receiving server but no enforcement — may land in spam
dmarc=rejectSpoofed email claiming to be from this domain will be rejected — best protection for the domain being spoofed
📋
Mailtrap's sandbox skips real-world authentication checks deliberately — that's why it's safe for training. In a real engagement against a real organization, the deliverability of your simulation email depends heavily on whether you're sending from a properly authenticated domain. Always use a domain you own and have set up SPF/DKIM/DMARC for.
🔭

Module 2 – Target Intelligence & Pretexting

2 labs · Open-source research that makes a phishing email convincing, and the cognitive triggers that make people click
2.1
OSINT Reconnaissance for Phishing CampaignsLinkedIn · company website · email format discovery · public org chart
ObjectiveGather the open-source intelligence a real attacker would use to make a phishing email feel like it came from inside — practiced against a fictional organization only.OSINT
  1. Map the email format

    From LinkedIn profiles, GitHub commits, or leaked breach data on haveibeenpwned.com (domain search). Common formats: firstname.lastname@, f.lastname@, firstname@. One confirmed email tells you the pattern for all of them.

  2. Identify department heads and reporting lines

    LinkedIn's "People" section for the company gives you org structure, job titles, tenures. Who does AP report to? Who recently joined? Who signs off on vendors?

  3. Find recent events and internal announcements

    Press releases, job postings (reveal internal projects), Glassdoor reviews (reveal systems and tools in use), and the company's own news page. A simulation referencing a real-named project or system hits harder than a generic one.

  4. Identify tools and systems in use

    Job postings often name the exact internal systems — "experience with ServiceNow," "Office 365 environment." A phishing email referencing the real help desk tool is far more convincing than a generic IT email.

  5. Document your findings in a target profile

    For the Hartley scenario: email format, key personnel (CEO, CFO, AP manager), recent events (merger), internal systems, and vendors known to them.

Intelligence TypeSourceHow It's Used In The Pretext
Email formatLinkedIn, public GitHub commits, breached data sitesMakes the from/reply-to look exactly right
Reporting linesLinkedIn company page → PeopleCEO impersonation works only if you know who reports to the CEO
Recent eventsPress releases, news, job postings"Following our recent merger" feels real when the merger is real
Internal systemsJob postings, Glassdoor, help desk subdomainsReference the real tool name (ServiceNow, Workday) not a generic one
Known vendorsLinkedIn posts, case studies, newsBEC impersonating a vendor the target actually uses is far more convincing
2.2
The Psychology of PretextingCialdini's principles · urgency · authority · scarcity · designing a campaign narrative
ObjectiveUnderstand the psychological triggers that make phishing work — and design a campaign narrative for Hartley that uses them ethically in a simulation.
TriggerHow Phishing Uses ItSimulation Example
AuthorityEmail appears to come from a senior person, brand, or regulatorCEO requesting urgent wire transfer; HMRC / FCA notice
UrgencyTime pressure reduces critical thinking"Respond before COB today," "your access expires in 24 hours"
ScarcityLimited availability creates fear of missing out"Only two slots remain for the compliance training"
Social ProofOthers are doing it — reduces friction"All staff in your department have completed this already"
LikingImpersonate someone the target knows and trustsEmail appearing to come from a named colleague or vendor
ReciprocityOffer something first, then make a requestFake HR benefits portal, fake IT support resolving an issue
  1. Choose a pretext scenario

    That fits your OSINT from Lab 2.1. The best pretext uses real details (real system name, real event, real sender name). Choose from: IT password reset, DocuSign document pending, HR benefits update, invoice approval, or a merger-related announcement — all appropriate for a financial services firm, none likely to cause genuine distress.

  2. Identify which triggers your scenario uses

    List them explicitly. Authority? Urgency? Both?

  3. Write the one-sentence campaign brief

    Example: "An email appearing to come from the Hartley IT team claims the recipient's Microsoft 365 password expires in 24 hours and directs them to a login page to reset it — targeting authority (IT), urgency (24 hours), and a familiar process (password reset)."

  4. Define the success metric

    Click-through to the landing page? Credential submission? Both? Be specific before you build.

🎣
Recommended scenario for classroom labs: "IT Security: Your Microsoft 365 password expires in 24 hours" — uses authority (IT Security team), urgency (24-hour deadline), and a familiar, low-distress process (password reset). This is one of the highest-performing pretexts in real engagements and it's non-distressing, non-financial, and easy to defend in a post-simulation debrief.
✉️

Module 3 – Phishing Email Templates

3 labs · Subject line science, HTML template craft, and three complete scenario templates built in GoPhish
3.1
The Anatomy of a Convincing Phishing EmailSubject lines · sender display names · body copy · red flags to deliberately avoid
ObjectiveUnderstand each component of a phishing email and how it contributes to or undermines believability — then apply these principles to every template you build.
ComponentWhat Makes It ConvincingCommon Mistakes That Expose It
From display nameMatches the real sender's name exactly; uses the correct titleGeneric "IT Support" or "Admin" with no company name
From email addressUses a domain that looks right — ideally the real domain via a sending profile, or a visually similar oneObvious lookalike: hartley-financial.co vs hartley-financial.com
Subject lineSpecific, action-oriented, references something real or plausible; 6–10 wordsALL CAPS URGENT or excessive punctuation!!!
GreetingUses the recipient's real first name via GoPhish's {{.FirstName}} tag"Dear Valued Employee" or "Hello User"
Body copyConcise, professional tone matching the sender persona; references real tools/processes; one clear call to actionWall of text; grammar errors; inconsistent formatting; multiple CTAs
Call to actionOne button or link with a specific, believable label: "Reset My Password" not "Click Here"Bare URLs; "Click Here" with no context
SignatureMatches the sender's real signature format if known; includes a real phone number and addressNo signature, or a signature that doesn't match the sender persona
GoPhish tracking{{.Tracker}} tag in the HTML for open tracking; {{.URL}} in the CTA linkMissing tracking tags means no click data in the dashboard
{{.FirstName}}      → recipient's first name from the target group CSV
{{.LastName}}       → recipient's last name
{{.Email}}         → recipient's email address
{{.Position}}      → recipient's position/role from the CSV
{{.URL}}           → the tracking URL pointing at your landing page
{{.Tracker}}       → invisible 1x1 pixel for email-open tracking (place in HTML body)
💡
The {{.FirstName}} personalization tag is the single highest-impact change you can make to a template's click-through rate. "Hi Sarah, your password expires…" consistently outperforms "Dear Employee, your password expires…" — sometimes by a factor of two or more.
3.2
Building the Password Reset Template in GoPhishFull HTML template · tracking pixel · subject line · preview
ObjectiveBuild a complete, production-quality phishing email template in GoPhish's HTML editor for the password-reset scenario designed in Module 2.GoPhish
  1. Open GoPhish → Email Templates → New Template

    Name it "Hartley IT — Password Reset".

  2. Set the envelope fields

    Subject: Action Required: Your Microsoft 365 password expires in 24 hours — Envelope Sender: leave blank (set in Sending Profile).

  3. Switch to HTML editor

    Copy the template below into the HTML pane.

  4. Verify all template variables are present

    {{.FirstName}} in the greeting, {{.URL}} in the button link, {{.Tracker}} before the closing </body>.

  5. Use the "Send Test Email" button

    Send to your Mailtrap sandbox and verify how it renders — both HTML and plain-text fallback.

<!-- Paste this into GoPhish's HTML template editor -->
<!DOCTYPE html>
<html><head>
<meta charset="UTF-8">
<style>
  body{font-family:Segoe UI,Arial,sans-serif;background:#f0f2f5;margin:0;padding:20px}
  .wrap{max-width:560px;margin:0 auto;background:#fff;border-radius:6px;overflow:hidden}
  .hdr{background:#0078d4;padding:22px 28px}
  .hdr img{height:28px;vertical-align:middle}
  .hdr span{color:#fff;font-size:1.1rem;font-weight:700;margin-left:10px;vertical-align:middle}
  .body{padding:28px 32px;color:#1a1a1a;font-size:14px;line-height:1.7}
  .btn{display:inline-block;margin:18px 0;padding:12px 28px;background:#0078d4;color:#fff;text-decoration:none;border-radius:4px;font-weight:700;font-size:14px}
  .footer{padding:14px 32px;background:#f7f7f7;font-size:11px;color:#888;border-top:1px solid #eee}
</style>
</head><body>
<div class="wrap">
  <div class="hdr"><span>Hartley Financial Services</span></div>
  <div class="body">
    <p>Hi {{.FirstName}},</p>
    <p>Our records show your Microsoft 365 account password is set to expire in <strong>24 hours</strong>. To avoid being locked out of your email and business applications, please reset your password now.</p>
    <a href="{{.URL}}" class="btn">Reset My Password</a>
    <p>If you do not reset your password before the deadline, your account will be locked and you will need to contact the IT Helpdesk to regain access.</p>
    <p>If you have already reset your password today, please disregard this message.</p>
    <p>Regards,<br><strong>Hartley IT Security Team</strong><br>helpdesk@hartley-financial.com | Ext. 4400</p>
  </div>
  <div class="footer">Hartley Financial Services · 1 Canary Wharf, London E14 5AB · This is an automated security notification. Do not reply to this email.</div>
</div>
{{.Tracker}}   <!-- open-tracking pixel — MUST be present for open metrics -->
</body></html>
💡
Always send a test email to Mailtrap and inspect both the rendered HTML view and the Raw source before launching a real campaign. Broken images, misaligned buttons, and missing tracker pixels are far easier to catch in Mailtrap than in a live campaign dashboard where you're wondering why opens aren't registering.
3.3
Two More Scenario TemplatesBEC wire-transfer · DocuSign document pending · how scenario choice affects risk rating
ObjectiveBuild two additional templates covering the most common real-world pretext categories — BEC and document-signature urgency — and understand how each scenario maps to a different risk rating.GoPhish
ScenarioPsychological TriggersTypical CTRRisk Rating
IT Password ResetAuthority, Urgency15–30%Medium — baseline for most first simulations
DocuSign PendingAuthority, Urgency, Social Proof25–45%High — exploits a trusted brand everyone recognizes
BEC Wire TransferAuthority, Urgency, LikingHighly variableCritical — direct financial impact if successful for real
⚠️
The BEC template above is for simulation purposes against your own organization with explicit written authorization only. The authorization document from Module 0 must specifically name BEC as an approved pretext before you use it — some organizations explicitly exclude financial pretexts from simulation scope because of the distress they can cause even when acknowledged as a test.
🖥️

Module 4 – Landing Pages

2 labs · Building the credential-capture page · the mandatory training redirect · GoPhish setup
4.1
Building the Credential-Capture Landing PageHTML login clone · GoPhish capture settings · what gets tracked
ObjectiveBuild a convincing login landing page in GoPhish that captures submitted credentials for reporting, and understand exactly what GoPhish records and what it doesn't.GoPhish
  1. Open GoPhish → Landing Pages → New Page

    Name it "Hartley — M365 Login".

  2. Enable "Capture Submitted Data"

    This records what users type into form fields — username but in this workbook NOT real passwords (see callout).

  3. Enable "Capture Passwords"

    For awareness — but understand this stores submitted passwords in GoPhish's database. In a real engagement, this setting needs explicit authorization and the data must be securely handled and deleted after reporting.

  4. Set the Redirect URL

    To the training page you'll build in Lab 4.2. This is non-negotiable: a click that ends in a dead page or a real login success is an incomplete engagement.

  5. Paste in the landing page HTML below

    A Microsoft 365 login clone.

  6. Save and preview

    Check it renders correctly in your browser before any campaign uses it.

<!-- Microsoft 365 login clone — paste into GoPhish Landing Page HTML editor -->
<!DOCTYPE html>
<html><head>
<meta charset="UTF-8">
<title>Sign in to your account</title>
<style>
  body{font-family:Segoe UI,Arial,sans-serif;background:#f2f2f2;display:flex;align-items:center;justify-content:center;min-height:100vh;margin:0}
  .card{background:#fff;padding:44px 44px 36px;width:360px;box-shadow:0 2px 6px rgba(0,0,0,.1)}
  .logo{font-size:24px;color:#0078d4;font-weight:300;margin-bottom:22px}
  h1{font-size:1.4rem;font-weight:600;color:#1a1a1a;margin-bottom:18px}
  input{width:100%;border:1px solid #ccc;padding:9px 10px;font-size:14px;margin-bottom:14px;outline:none;box-sizing:border-box}
  input:focus{border-color:#0078d4}
  .btn{width:100%;background:#0078d4;color:#fff;border:none;padding:10px;font-size:14px;cursor:pointer;font-weight:600}
  .small{font-size:12px;color:#666;margin-top:12px;text-align:center}
</style>
</head><body>
<div class="card">
  <div class="logo">Microsoft</div>
  <h1>Sign in</h1>
  <form method="POST" action="">
    <input type="email" name="email" placeholder="Email, phone, or Skype" required>
    <input type="password" name="password" placeholder="Password" required>
    <button type="submit" class="btn">Sign in</button>
  </form>
  <p class="small">Can't access your account?</p>
</div>
</body></html>
GoPhish SettingEffect
Capture Submitted Data: ONForm field contents recorded per recipient in campaign results
Capture Passwords: ONPassword field stored — treat this data with the same sensitivity as real credentials
Redirect URL: training pageAfter submission, user is immediately redirected to the awareness training page
4.2
The Awareness Training Redirect PageThe mandatory landing point after a click — teaching the moment of highest receptivity
ObjectiveBuild the awareness redirect page that every recipient sees immediately after clicking — the most important pedagogical moment of the entire engagement.Awareness

The moment a recipient realizes they clicked on a simulation is the moment they're most receptive to learning. This page must do three things: confirm it was a simulation (clearly, without shaming), explain exactly what they should have noticed, and give them one concrete thing to do differently next time.

  1. Create a second Landing Page in GoPhish

    Name it "Hartley — Awareness Training Redirect".

  2. Paste in the awareness HTML below

    Customize the "red flags" section to match your specific template from Module 3.

  3. Set this as the Redirect URL in Lab 4.1's landing page

    So every form submission lands here.

  4. Also host a direct link to it

    So you can include it in the post-campaign training email even for people who didn't click.

<!-- Awareness redirect page HTML -->
<!DOCTYPE html>
<html><head>
<meta charset="UTF-8">
<style>
  body{font-family:Segoe UI,Arial,sans-serif;background:#fff3cd;display:flex;align-items:center;justify-content:center;min-height:100vh;margin:0}
  .card{background:#fff;border-radius:8px;padding:40px 44px;max-width:540px;text-align:center;box-shadow:0 4px 20px rgba(0,0,0,.1)}
  .icon{font-size:3rem;margin-bottom:14px}
  h1{color:#e65c00;font-size:1.5rem;margin-bottom:12px}
  p{color:#333;font-size:14px;line-height:1.7;margin-bottom:12px;text-align:left}
  .flags{background:#fef3cd;border-left:4px solid #e65c00;border-radius:0 8px 8px 0;padding:12px 16px;text-align:left;margin:14px 0}
  .flags li{margin-bottom:6px;font-size:13px}
  .action{background:#0078d4;color:#fff;display:inline-block;padding:11px 26px;border-radius:4px;text-decoration:none;font-weight:700;margin-top:14px}
</style>
</head><body>
<div class="card">
  <div class="icon">🎣</div>
  <h1>This Was a Phishing Simulation</h1>
  <p>You've just completed a security awareness exercise run by the Hartley IT Security team. <strong>No real data has been captured and your account is safe.</strong></p>
  <p>Here are the signs that this was not a real Microsoft email:</p>
  <ul class="flags">
    <li>The sender domain was not @microsoft.com — hover over any link before clicking</li>
    <li>Real Microsoft password notifications include your full name and account details</li>
    <li>The link URL did not point to login.microsoftonline.com</li>
    <li>Urgent 24-hour deadlines are a common phishing trigger — slow down and verify</li>
  </ul>
  <p><strong>Next time:</strong> If you receive an urgent email asking you to log in or take financial action, verify it by calling the sender directly using a number from the company directory — not the number in the email.</p>
  <a href="https://hartley-security-training.internal/phishing-module" class="action">Complete the 5-Minute Training →</a>
</div>
</body></html>
📋
The tone of this page matters as much as the content. "You failed a phishing test" produces defensiveness. "You've just completed a security exercise" followed by specific, actionable red flags produces learning. The same information, framed differently, has completely different training outcomes.
🚀

Module 5 – Campaign Execution

3 labs · Target groups, campaign launch, real-time monitoring, and handling employee reports
5.1
Building Target Groups in GoPhishCSV format · segmentation by department · position data for spear-phishing
ObjectiveCreate target groups in GoPhish using the required CSV format — and understand why department segmentation is essential for meaningful results.GoPhish
  1. Create a CSV with the required headers

    GoPhish accepts exactly these columns: First Name, Last Name, Email, Position. Any deviation causes an import error.

  2. Build two groups

    Simulate Hartley's two highest-risk departments: Finance/AP (BEC targets) and General Staff (credential harvest targets). In a real engagement, this segmentation lets you compare click rates between departments.

  3. Import via GoPhish → Users & Groups → New Group → Bulk Import Users

    Upload the CSV and confirm the preview shows the correct names and email addresses.

# Required CSV format — no spaces after commas, headers exact
First Name,Last Name,Email,Position
Test,Student,your-own-email@test.com,Finance Manager
Classroom,Participant,classmate-consent@test.com,AP Clerk
Lab,Account,mailtrap-sandbox@test.com,General Staff

# Why Position matters:
# GoPhish inserts it via {{.Position}} in templates
# Spear-phishing that references the recipient's real role
# consistently outperforms generic pretexts
GroupPretext Best Suited ToWhy
Finance / AP teamBEC wire transfer, invoice approvalThese roles have actual payment authority — the highest-value target for real BEC actors
IT / Technical staffCredential harvest, password resetIT accounts have broader access — credential theft has highest blast radius
General staffDocuSign, HR benefits, IT password resetLargest population, baseline susceptibility measurement
Executives / C-suiteRequires specific authorization, often excludedHigh distress risk; results must be handled with extreme confidentiality
5.2
Launching and Monitoring a CampaignNew Campaign wizard · schedule settings · live timeline · what each status means
ObjectiveLaunch your classroom campaign against your own test addresses, and read the real-time timeline the way a campaign operator monitors a live engagement.GoPhish
  1. Open GoPhish → Campaigns → New Campaign

    Fill in every field before launching.

  2. Configure the campaign fields

    Name → Email Template → Landing Page → URL → Launch Date → Send By date → Sending Profile → Groups. The URL field must point to GoPhish's phishing listener, not the admin port.

  3. Set the "Send By" date

    This throttles delivery over time — spreading 340 emails over a 2-hour window looks more like normal business email traffic than sending all at once.

  4. Launch and immediately open the campaign timeline

    You'll see events appear in real time as emails are delivered, opened, clicked, and as credentials are submitted.

  5. Interact as a recipient

    Open your Mailtrap inbox, click the link in the simulation email, and watch the GoPhish timeline update.

GoPhish StatusWhat It MeansHow It's Recorded
Email SentGoPhish successfully sent the email to the SMTP relayTimestamp in timeline
Email OpenedThe tracker pixel in the HTML body loaded in the recipient's email clientTimestamp + user-agent string
Clicked LinkThe recipient clicked the {{.URL}} link in the emailTimestamp + IP + user-agent
Submitted DataThe recipient submitted the landing page formTimestamp + submitted form fields
Email ReportedThe recipient forwarded the email to GoPhish's IMAP monitor — the best possible outcomeTimestamp — triggers "reported" status
💡
The "Email Reported" status requires configuring GoPhish's IMAP monitoring feature with the organization's phishing-report mailbox (typically report@company.com or phishing@company.com). Setting this up before a campaign launches is important — it's how you reward employees who correctly identified the simulation.
5.3
Handling Edge Cases During a Live CampaignEmployee escalations · IT ticket storms · "did we get hacked?" calls
ObjectivePrepare for the operational realities of a live phishing campaign — because employees don't behave predictably, and the IT team will almost certainly call someone.
SituationWhat HappensHow to Handle It
Employee reports to IT as real phishingIT may block the sending domain, generating a ticket storm and potentially ending the campaign earlyBrief the IT Security lead in advance — give them a campaign code to look up, not details that could leak
Employee reports genuine distressSomeone who recently experienced fraud may react with anxiety to a BEC simulationHR escalation contact (named in auth document) takes the call — confirm it's a simulation only to the affected person
Executive assistant flags it to the CEOCEO may call the CISO demanding to know if they've been hackedThe CISO should be briefed in advance with a campaign code — never deny a simulation when asked directly by a senior leader
Automated security tools block the domainEmail gateway or endpoint tool recognizes GoPhish headers and blocks all campaign emailsPre-whitelist your phishing domain with the email gateway, clearly documented in the engagement scope
Employee posts about it on Slack/Teams"Has anyone else got a weird Microsoft email?" — alert spreads, later recipients don't clickAcceptable — it means security culture is working. Note the time it took for the information to spread.
⚠️
Never lie to an employee who directly asks "is this a phishing test?" — this crosses an ethical line that no amount of realism justifies. The standard answer is: "I'm not able to confirm or deny the status of any security exercises, but if you have a concern about this email please forward it to [security@company.com]." That's honest, it maintains the test integrity, and it rewards the right behaviour.
📊

Module 6 – Results Analysis & Reporting

3 labs · Reading campaign metrics, department breakdown, and writing a board-ready report
6.1
Reading and Interpreting Campaign MetricsClick rate · submission rate · report rate · time-to-click · what each number actually means
ObjectiveExtract GoPhish's campaign results, calculate the key metrics, and understand what each one tells you about the organization's actual security posture.
MetricFormulaWhat It Tells You
Email Open RateEmails Opened ÷ Emails SentDeliverability and subject-line quality — a low open rate means the email landed in spam or was ignored before reading
Click-Through Rate (CTR)Links Clicked ÷ Emails SentCore susceptibility metric — the percentage of people who would have taken action on a real attack
Credential Submission RateSubmitted Data ÷ Links ClickedOf those who clicked, how many completed the "attack" — a high submission rate suggests low awareness of login-page red flags
Reporting RateEmails Reported ÷ Emails SentThe most positive metric — employees who correctly identified and reported the phishing simulation
Mean Time to Click (MTTC)Average time from delivery to first clickFast MTTC (<5 min) suggests high automation or urgency response; slow MTTC suggests deliberation
  1. Export your campaign results from GoPhish

    GoPhish → your campaign → Results tab → Export CSV.

  2. Calculate each metric above

    Use a spreadsheet — understanding what goes into each number is more valuable than reading a pre-calculated dashboard figure.

  3. Compare to industry benchmarks

    First-time simulation: 20–35% CTR is typical across industries. Financial services tends to run 15–25% — but varies widely by pretext quality and employee training history.

  4. Identify patterns in the timelineWhen did the first click happen? Did clicks cluster in a particular time window? Did Slack activity correlate with a drop-off in clicks?
🎯
A reporting rate above 20% on a first simulation is excellent — it means 1 in 5 employees recognised and acted correctly. Report this prominently in your findings; acknowledging what went well is as important as identifying weaknesses, and it motivates continued engagement with security awareness programs.
6.2
Department-Level AnalysisSegmenting results · high-risk departments · position correlation
ObjectiveBreak down campaign results by department, identify which groups require prioritized training, and understand position-based risk correlation.
  1. Open the exported CSV

    Filter by the Position column to calculate CTR per department.

  2. Build a department heat map

    A simple table: Department | Targeted | Clicked | CTR | Reported. Sort by CTR descending.

  3. Identify the highest-risk department

    For Hartley, Finance/AP clicking on the BEC template above industry average is the critical finding.

  4. Cross-reference with access privilege

    A 40% CTR in IT is more alarming than a 40% CTR in Facilities — IT accounts have broader access. Weight your risk narrative accordingly.

# Example department breakdown table
Department      | Targeted | Clicked | CTR   | Reported
----------------|----------|---------|-------|----------
Finance / AP    |   42     |   18    | 43%   |    2
IT / Technical  |   28     |    7    | 25%   |    8
Operations      |   95     |   24    | 25%   |   11
General Staff   |  175     |   39    | 22%   |   23
----------------|----------|---------|-------|----------
Total           |  340     |   88    | 26%   |   44
⚠️
Individual-level results (who clicked, who submitted credentials) must be treated as sensitive HR data. In the report, present department-level aggregates to leadership, never individual names. Individual results are for HR/line-manager conversations in private, and only where the organization has explicitly authorized that level of disclosure in the engagement terms.
6.3
Writing the Board-Ready Engagement ReportExecutive summary · risk narrative · findings · recommendations · re-test date
ObjectiveWrite a complete engagement report that the CISO can present to the Hartley board — non-technical in summary, data-supported in detail, and actionable throughout.
SectionContentLength
Executive SummaryWhat was tested, the headline number (26% CTR), and the single most important recommendation — written for someone who will not read the rest of the report1 page
Engagement OverviewScope, authorization, dates, scenarios tested, methodology1 page
Key FindingsOverall metrics, department breakdown, notable behaviours (fast clickers, reporters), comparison to industry benchmark2–3 pages
Risk NarrativeWhat a real attacker could have achieved with the same access — specifically for Hartley, what the 43% Finance/AP CTR means in the context of the BEC incident that triggered this engagement1 page
RecommendationsNumbered, specific, prioritized by risk — not "improve security awareness" but "implement mandatory phishing training for Finance/AP within 30 days"1 page
Re-test ScheduleProposed date for the next simulation (90 days is standard), and the metrics you'll use to measure improvementHalf page
🎯
The most persuasive sentence in the report is not a percentage — it's a dollar figure or a consequence. "26% of Finance/AP staff would have completed a wire transfer request in the same scenario as the incident that cost the company £47,000" is more compelling to a board than "26% CTR." Always connect the simulation to the real-world incident or risk that justified it.
🎓

Module 7 – Security Awareness Training Program

4 labs · Turning simulation results into a training program that actually changes behaviour — and a 12-month cycle
7.1
Building the Targeted Training CurriculumWhat to teach · how to teach it · the red flags from YOUR campaign
ObjectiveDesign a training curriculum that addresses exactly what employees clicked on in the Hartley simulation — not generic phishing advice, but specific lessons built from real results.Awareness
AudienceTraining ContentDelivery Method
All staff (clicked)The five specific red flags from your campaign's email and landing page; how to verify an email before clicking; the report button10-minute interactive module, mandatory completion within 48h
Finance / AP (BEC pretext)BEC recognition and verification procedures; the dual-authorisation rule for any payment request received by email30-minute department workshop, in person or live video
IT / TechnicalWhy they're targeted specifically; credential hygiene; reporting procedures and how IMAP monitoring worksPeer-led technical discussion — 30 mins
All staff (didn't click)Positive reinforcement; what they noticed that others didn't; the report button reinforcement5-minute written communication from CISO — not training, recognition
  1. Write the five specific red flags from your campaign

    Not generic advice — the exact indicators in the email and landing page from Module 3. Employees learn better from what they experienced than from theoretical examples.

  2. Design the Finance/AP workshop agenda

    30 minutes: 10 min — what happened in the simulation, 10 min — real BEC examples (anonymised), 10 min — the new dual-authorisation procedure for email payment requests.

  3. Draft the CISO recognition email

    For staff who correctly reported. Short, specific, warm — acknowledges the action by name if the organization permits it.

💡
Research consistently shows that training delivered within 24–48 hours of a simulation is 3–4x more effective than training delivered weeks later. Schedule the mandatory training module to unlock immediately after campaign close — not at the next quarterly all-hands.
7.2
The Phishing Reporting CultureReport buttons · what happens after a report · rewarding the right behaviour
ObjectiveBuild the infrastructure and culture that makes reporting phishing emails the obvious, easy, and rewarded behaviour — not just for simulations, but for real attacks too.
ComponentWhat It IsHow to Set It Up
Report buttonOne-click "Report as Phishing" in Outlook/GmailMicrosoft Defender's "Report Message" add-in (free, deploy via M365 Admin); Google's "Report phishing" is built in
Security mailboxsecurity@ or phishing@ address — the destination for reportsCreate a shared mailbox; configure GoPhish's IMAP monitoring against it for simulation tracking
Triage SLAHow fast you acknowledge a report and confirm real vs simulationTarget: acknowledge within 1 business hour; resolve within 4 — communicate this SLA to all staff
Reporter recognitionPositive reinforcement for employees who reportAutomated "thank you for reporting" email; monthly recognition in team communications for early reporters
  1. Draft the "Thank You for Reporting" auto-response email

    Sent automatically to anyone who reports to the security mailbox — confirms receipt, sets the expectation for follow-up, and reinforces that reporting was the right action.

  2. Write the internal communication announcing the security mailbox

    All-staff message: "If you ever receive an email that seems suspicious, forward it to security@hartley-financial.com. We'll check it within the hour and let you know. If it turns out to be real, you may have just stopped an attack."

  3. Design the reporter recognition scheme

    Monthly "first reporter" acknowledgement in the team channel. Low-friction, public, positive. Not a gift card scheme — that creates perverse incentives to report everything indiscriminately.

📋
The goal is not zero-click rates. The goal is a high reporting rate — an organization where most people who receive a phishing email, real or simulated, forward it to security. That's a more resilient posture than one where people merely don't click, because it creates an early-warning system for real attacks that get through your technical controls.
7.3
Technical Controls That Reinforce TrainingMFA · email gateways · DMARC enforcement · the human-plus-technical model
ObjectiveConnect the awareness training to the technical controls that make credential theft less consequential even when an employee does click — because training alone is not a sufficient defence.
ControlWhat It DoesHow It Limits Phishing Damage
Multi-Factor Authentication (MFA)Requires a second factor beyond the passwordStolen password from a phishing landing page is worthless without the second factor — stops the most common credential-harvest path cold
DMARC enforcement (p=reject)Rejects emails spoofing Hartley's own domainPrevents external attackers from sending email that appears to come from @hartley-financial.com — the exact attack vector in the original BEC incident
Email gateway with phishing detectionScans inbound email for known-malicious indicatorsBlocks the majority of mass-phishing; less effective against targeted, novel spear-phishing
Anti-spoofing headers + display-name warningsOutlook/Gmail warns users when the display name doesn't match the sending domainSurfaces the mismatch that GoPhish's templates exploit — makes the red flag visible in the UI
Payment dual-authorisationNo wire transfer proceeds on an email request alone — requires a phone confirmationThe one control that would have stopped the original Hartley BEC incident — and the simplest to implement
🎯
If Hartley had enforced MFA and implemented payment dual-authorisation before the original incident, the BEC would have failed regardless of whether employees clicked. Technical controls are not a replacement for training — they're the safety net that makes a successful click survivable. Recommend both in your report, not one or the other.
7.4
The 12-Month Simulation CycleCadence · scenario rotation · measuring improvement · closing the loop
ObjectiveDesign a sustainable 12-month simulation and training cycle for Hartley that measures real improvement rather than just running annual "checkbox" tests.
MonthActivityScenario
Month 1Baseline simulation (this workbook's engagement)IT password reset — medium difficulty
Month 1–2Training delivery to all staff, Finance/AP workshop, CISO recognition email
Month 3First re-test — same scenario, same pretextIT password reset — measure improvement from baseline
Month 6Second simulation — harder scenarioDocuSign document pending — tests a different trigger
Month 6Targeted training for departments that show regression
Month 9Third simulation — hardest scenario, if authorizedBEC wire transfer — for Finance/AP only, with specific authorization
Month 12Annual review — compare all four simulations, update training program, set next year's baseline
  1. Track CTR trend, not just current CTR

    A drop from 26% to 18% to 12% over three simulations is the story. A single 12% is just a number.

  2. Track reporting rate trend separately

    The reporting rate often rises faster than CTR falls — both trends belong in the annual report.

  3. Rotate scenarios to avoid "trained to the test"

    If you run the same scenario three times, employees start recognising the scenario format, not phishing indicators. Each cycle should introduce a new pretext category.

  4. Connect metrics to real incidents

    Did a real phishing attempt occur this year? Was it reported? Did the reporter use the same reporting button from training? That closed-loop story is the most powerful ROI metric you can give a board.

🎯
Engagement fully closed when: the board has the initial report, training has been delivered and attendance confirmed, the Month 3 re-test is scheduled in the CISO's calendar, and the security mailbox is live with its triage SLA communicated to all staff. Everything else — the 6-month and 9-month simulations — follows from this foundation.

🎉 Engagement Complete — Operation: HOOK, LINE & SINKER

Hartley Financial Services has a baseline susceptibility measurement, a written report the CISO can present to the board, and a structured awareness training program built directly from what their people actually clicked on. That's the full loop — from the first phishing email to the training session that makes the next one less likely to work.