ZNote Logo
ZNote
Labs Pentesteasy
01-05-2026

Simulation Phishing : Gophish & Ingénierie Sociale

Déploiement d'une infrastructure de simulation de phishing avec Gophish et MailHog, suivi de la création d'une campagne manuelle en PHP pour comprendre les mécanismes d'ingénierie sociale.

Phishing
Gophish
Social Engineering
PHP
Awareness

Vue d'ensemble

Ce laboratoire explore la création d'une campagne de phishing simulée dans un cadre strictement pédagogique et éthique, en environnement isolé. L'objectif est de comprendre les mécanismes techniques d'une attaque de phishing et d'identifier les vecteurs de risque humain.


1. Phase 1 — Phishing automatisé via Gophish

Préparation de l'environnement

Nous commençons par installer Gophish (framework open-source de simulation de phishing) et MailHog (serveur SMTP fictif pour intercepter les emails sans les envoyer réellement).

Après avoir téléchargé et extrait Gophish, nous modifions le fichier config.json pour éviter les conflits de ports :

"phish_server": {
    "listen_url": "0.0.0.0:8080",
    ...
}

Nous lançons ensuite MailHog, qui écoute sur le port SMTP 1025 et propose une interface web sur 8025.

Configuration de Gophish

Nous nous connectons à l'interface d'administration de Gophish (https://127.0.0.1:3333) et configurons notre Sending Profile pour utiliser MailHog.

Configuration Sending Profile

Création de la campagne

  1. Email Template : Nous créons un modèle d'email alertant d'une "Activité inhabituelle" et incitant l'utilisateur à vérifier son compte. Email Template

  2. Landing Page : Nous créons une fausse page de connexion pour capturer les identifiants (Capture Submitted Data et Capture Passwords activés). Landing Page

  3. Users & Groups : Nous définissons une liste de cibles fictives (@lab.local). Users List

  4. Campaign : Nous assemblons le tout et lançons la campagne "Campagne Lab 1". Campaign Launch

Analyse des résultats

Le tableau de bord Gophish nous permet de suivre en temps réel l'interaction des cibles :

  • Emails Opened : Suivi via un pixel invisible.
  • Clicked Link : Clics sur le lien piégé.
  • Submitted Data : Soumissions du formulaire.

Dashboard Gophish

MailHog a bien intercepté les emails envoyés : MailHog Interface

La victime clique sur le lien, arrive sur la fausse page de destination et soumet ses identifiants, qui sont immédiatement capturés par Gophish. Phishing Landing Credentials Captured


2. Phase 2 — Page de phishing manuelle (PHP)

Pour mieux comprendre les mécanismes sous-jacents, nous allons créer une page de phishing de A à Z.

Scénario : Fausse offre d'emploi TechCorp CI

Une entreprise fictive publie une offre d'emploi attractive. La cible reçoit un email l'invitant à créer un compte sur un faux portail de recrutement. Ce scénario est efficace car il crée un sentiment d'urgence et demande une création de compte (les utilisateurs recyclent souvent leurs mots de passe) plutôt qu'une connexion classique.

Étape 1 : Créer la fausse page HTML (index.html)

Nous créons un design professionnel inspirant confiance, avec un formulaire pointant vers notre script de capture (action="login.php").

Fausse page de recrutement

Étape 2 : Créer le script de capture (login.php)

Ce script PHP récupère les données (POST), l'IP de la victime, horodate la soumission, écrit le tout dans credentials.txt, puis redirige la victime vers une page de confirmation pour ne pas éveiller les soupçons.

<?php
$email = $_POST['email'];
$password = $_POST['password'];
$ip = $_SERVER['REMOTE_ADDR'];
$date = date('d/m/Y H:i:s');

$ligne = "[$date] | IP: $ip | Email: $email | Password: $password\n";

$file = fopen("credentials.txt", "a");
fwrite($file, $ligne);
fclose($file);

header("Location: merci.html");
exit();
?>

Étape 3 : Créer la page de redirection (merci.html)

Cette page rassurante complète l'illusion. Sans elle, la victime verrait une page blanche et pourrait changer ses mots de passe par précaution.

Page de remerciement

Étape 4 : Lancer le serveur et tester

Nous utilisons le serveur intégré de PHP pour héberger rapidement notre attaque :

php -S 127.0.0.1:8000

Une fois le formulaire soumis par une victime, les identifiants sont stockés en clair dans notre fichier credentials.txt :

[30/04/2025 10:23:45] | IP: 127.0.0.1 | Email: candidat.test@gmail.com | Password: motdepasse123

Conclusion et Enseignements

La technique de phishing ne repose pas sur des failles logicielles complexes, mais exploite la confiance humaine et l'apparence visuelle.

La première ligne de défense reste la sensibilisation des utilisateurs (vérification des URL, absence de certificat TLS, etc.), couplée à des mécanismes techniques comme le MFA (Multi-Factor Authentication), le filtrage DNS et les protocoles anti-usurpation d'emails (SPF, DKIM, DMARC).

[!CAUTION] Ce TP a été réalisé dans un environnement isolé (Kali Linux) à des fins strictement pédagogiques. Aucun email réel n'a été envoyé, aucune donnée réelle n'a été collectée.


Writeup rédigé par ZCook