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.
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.

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

-
Landing Page : Nous créons une fausse page de connexion pour capturer les identifiants (
Capture Submitted DataetCapture Passwordsactivés).
-
Users & Groups : Nous définissons une liste de cibles fictives (
@lab.local).
-
Campaign : Nous assemblons le tout et lançons la campagne "Campagne Lab 1".

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.

MailHog a bien intercepté les emails envoyés :

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.

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").

É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.

É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
