Social engineering — Hands-on lab
You build your own campaign in the lab. A new pretext, a new angle. Three possible variations — you pick one. At the end, an aggregated report + a separate HR-only list.
Budget: 3 h.
Deliverable: ~/labs/semaine-06/rapport/phishing.md (aggregated) + ~/labs/semaine-06/drh-prive/nominatif.md (encrypted folder, contents not shared without authorization).
You send no email to a real address. The lab uses boutique-eclair.local with 5 fictional accounts — that is the only setting for this lab.
Prerequisites
- Gophish installed and working in the lab (see the walkthrough).
- Lab mail server (
10.10.10.40) with 5 fictional accounts. - Typosquatted domain (
.local) resolvable in the lab.
Step 1 — Choose the pretext (10 min)
Take one of the three variations. Each brings a different angle.
Variation A — The fake IT support
- Fabricated context: the company is migrating to Microsoft 365. Employees must "re-authenticate" their account.
- Levers: authority (IT) + urgency + social proof.
- Landing page: clone of the Microsoft 365 login page (school 1 with capture, or school 2 with awareness).
Variation B — The event invitation
- Fabricated context: the CEO invites all employees to a "quarterly review" over video call, RSVP required.
- Levers: authority (CEO) + reciprocity ("welcome drinks provided") + scarcity ("limited seats").
- Landing page: a registration form asking for name, position, email, password (school 1) or just a redirect (school 2).
Variation C — The fake invoice
- Fabricated context: a regular supplier sends an invoice to download.
- Targets: accountant + admin assistant (spear targeting).
- Levers: authority (known supplier) + consistency ("as usual").
- Landing page: a PDF (school 1: the PDF runs a macro in the lab) or a tracker (school 2).
Document your choice at the top of the report:
## Chosen variation: <A/B/C>
## Reason: <in one sentence>
Step 2 — Prepare the artifacts (60 min)
2.1. Domain
Generate several candidates:
dnstwist -f json boutique-eclair.ca | jq -r '.[] | .domain' > candidats.txt
head candidats.txt
Choose the one that fits the pretext:
- Variation A:
boutique-eclair-support.localorboutique-eclair-o365.local. - Variation B:
boutique-eclair-events.localorboutique-eclair-video.local. - Variation C:
<supplier-name>-billing.local.
Add it to the /etc/hosts of the target mail server.
2.2. Email
Write your email. Constraints:
- 150 to 250 words maximum.
- At least 3 levers stacked (no more than 4).
- A realistic signature — reuse a name and signature seen in OSINT (for the demo, make one up).
- A single link.
- No attachment (except variation C, if allowed by your lab RoE).
Save it in ~/labs/semaine-06/mail-source.html.
2.3. Landing page
School 2 is mandatory for this lab — you do not capture a password. The landing page contains only an empty form that:
- Counts the submission.
- Redirects to
sensibilisation.html.
Adapt the awareness page to your pretext:
<h1>You were just caught by a simulation</h1>
<p>The clues that should have alerted you:</p>
<ul>
<li>The sender domain: ...</li>
<li>The lever used: ...</li>
<li>The unusual wording: ...</li>
</ul>
<p>This email did not come from <b>boutique-eclair.ca</b>.</p>
Save sensibilisation.html on the Gophish server.
Step 3 — Configure Gophish (30 min)
Recreate, in the interface:
- Sending Profile:
Lab-SMTP-<your-variation>. - Email Template: name
<Variation>-<short-subject>. - Landing Page: Import Site if you clone, or static HTML.
- Group: reuse
Lab-cibles-5or create a new CSV with different names. - Campaign:
Semaine 6 - Atelier - <Variation>.
Do not launch yet.
Step 4 — Simulate the behaviors and launch (30 min)
Assign five behaviors to the five targets. Write them in ~/labs/semaine-06/plan-simulation.md before launching:
| Target | Simulated behavior |
| ------ | ------------------ |
| Alice | opens + clicks |
| Bob | opens + ignores |
| Carla | does nothing |
| David | opens + clicks + submits |
| Emma | reports immediately |
Launch the campaign, then reproduce each behavior in the Roundcube webmail (as in the walkthrough).
Step 5 — Analyze (30 min)
Wait 15 minutes. Open the Gophish dashboard. Pull down:
- Aggregated metrics (5 figures: sent, opened, clicked, submitted, reported).
- Full timeline (exported to CSV).
Compare:
- The click rate against what is expected (25-45% on average in untargeted campaigns).
- The submission rate (school 2: always < the click rate).
- The time to report — was Emma fast?
Step 6 — Write the two deliverables (30 min)
Deliverable 1 — rapport/phishing.md (aggregated, shareable)
Fixed structure:
# Phishing campaign — Aggregated report — <date>
## 1. Objective
## 2. Frame (authorization, window, scoped targets)
## 3. Pretext used (2-3 lines)
## 4. Aggregated results (table of the 5 metrics)
## 5. Analysis (3-5 short paragraphs)
## 6. Recommendations (3 items maximum)
## 7. Appendices (paths to the artifacts)
No individual names. None.
Deliverable 2 — drh-prive/nominatif.md (HR-restricted)
# Nominative list — CONFIDENTIAL HR — <date>
This list is intended for HR alone, to organize
individual training. It may not be shared.
| Name | Behavior | Recommended follow-up |
| --- | --- | --- |
| Alice Martin | Opened + clicked | 5-min reminder |
| David Poulin | Opened + clicked + submitted | 30-min individual training |
| Emma Kadri | Reported immediately | Well done, recognize it |
| Bob Nguyen | Opened + ignored | Nothing to report |
| Carla Ross | No action | Nothing to report |
This file goes into an encrypted folder (~/labs/semaine-06/drh-prive/ with an age or a gpg on top) and is not in the main report.
Self-assessment checklist
- One variation chosen and justified.
- A typosquatted domain consistent with the pretext.
- An email of 150-250 words with at least 3 levers.
- A school-2 landing page (no real password capture).
- An awareness page adapted to the pretext.
- A Gophish campaign launched, 5 emails sent.
- Five simulated behaviors covering: click, submit, report, ignore.
- An aggregated report with no individual name.
- A separate nominative list, marked confidential HR.
- Three concrete recommendations in the aggregated report.
Optional extension — Vishing as a script
If you still have energy: write a 2-page vishing script for the same target. Goal: obtain a password over the phone by posing as IT support.
Script structure:
- Opening: name, department, friendly tone.
- Pretext: "We see an issue on your account."
- Reciprocity lever: "I'm helping you fix it."
- Ask: "Can you confirm the code you are about to receive?"
- Exit routes: a response if the employee resists, a response if the employee offers to hang up and call back.
You call no one. You write, you rehearse it out loud with a peer. That is the exercise.
What usually gets you stuck
| Symptom | Cause | Fix |
|---|---|---|
| Gophish does not send | SMTP misconfigured | Test swaks on the command line. |
| The email lands in spam in Roundcube | SPF not configured | In the lab, ignore it. In production, configure it. |
| The landing page does not display | URL unreachable | Check that Gophish listens on 0.0.0.0:80. |
| The tracker does not count opens | Roundcube blocks images | Enable image loading in the webmail. |
| Emma's report does not come through | No webhook | Normal in the lab. In production, configure it on the SOC side. |
What you take away from this lab
- The discipline of preparing an end-to-end campaign, with artifacts and a frame.
- The reflex to separate the aggregated and the nominative.
- The habit of not humiliating — the nominative stays with HR.
- A Gophish template you can replay on any future engagement.
After this lab and the quiz, module 6 ends with the submission of Assignment 1 — the full reconnaissance from weeks 3-5. See the course index for the details.