Guide complet pour déployer GoPhish sur Linux et mener une campagne de phishing interne : installation, configuration SMTP, e-mail piégé Microsoft 365, landing page et analyse des résultats.
GoPhish est un framework open-source de simulation de phishing conçu pour aider les entreprises et les professionnels de la cybersécurité à tester et renforcer la vigilance de leurs employés face aux attaques de phishing.
- Une machine Linux (cette procédure utilise Ubuntu 24.04.2 LTS)
- Accès root ou sudo
sudo apt -y update && sudo apt upgrade && sudo apt full-upgrade && sudo apt autoclean && sudo apt clean
sudo apt -y install wget unzipsudo apt install -y iptables
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 3333 -j ACCEPT
sudo mkdir -p /etc/iptables
sudo sh -c "iptables-save > /etc/iptables/rules.v4"
sudo iptables-restore < /etc/iptables/rules.v4
sudo iptables -L -v -n| Port | Usage |
|---|---|
| 80 | Trafic HTTP (landing page) |
| 443 | Trafic HTTPS |
| 3333 | Interface d'administration GoPhish |
# Version française (non officielle)
cd /tmp
wget https://github.com/PassAndSecure/Template_Gophish/releases/download/gophish-v0.12.1-linux-64bit-fr/gophish-v0.12.1-linux-64bit-fr.zip
sudo unzip gophish-v0.12.1-linux-64bit-fr.zip -d /opt
sudo mv /opt/gophish-v0.12.1-linux-64bit-fr /opt/gophish
# Version anglaise officielle
cd /tmp
wget https://github.com/gophish/gophish/releases/download/v0.12.1/gophish-v0.12.1-linux-64bit.zip
sudo unzip gophish-v0.12.1-linux-64bit.zip -d /opt
sudo mv /opt/gophish-v0.12.1-linux-64bit /opt/gophishRendez le binaire exécutable et lancez-le une première fois pour récupérer le mot de passe administrateur :
sudo chmod +x /opt/gophish/gophish
cd /opt/gophish
sudo ./gophishLe mot de passe administrateur s'affiche dans les logs au premier lancement.
Accédez à l'interface d'administration via : https://<IP_de_votre_machine>:3333
Identifiant : admin / Mot de passe : (récupéré dans les logs)
cd /opt/gophish
sudo cp config.json config.json.backup
sudo nano config.jsonContenu du fichier config.json :
{
"admin_server": {
"listen_url": "0.0.0.0:3333",
"use_tls": true,
"cert_path": "gophish_admin.crt",
"key_path": "gophish_admin.key",
"trusted_origins": []
},
"phish_server": {
"listen_url": "0.0.0.0:80",
"use_tls": false,
"cert_path": "gophish_admin.crt",
"key_path": "gophish_admin.key"
},
"db_name": "sqlite3",
"db_path": "gophish.db",
"migrations_prefix": "db/db_",
"contact_address": "",
"logging": {
"filename": "",
"level": ""
}
}Pour que GoPhish démarre automatiquement et fonctionne même après fermeture de session :
sudo nano /etc/systemd/system/gophish.service[Unit]
Description=Gophish Phishing Framework
After=network.target
[Service]
ExecStart=/opt/gophish/gophish
WorkingDirectory=/opt/gophish
User=root
Group=root
Restart=always
RestartSec=5
[Install]
WantedBy=multi-user.targetsudo systemctl daemon-reload
sudo systemctl restart gophish
sudo systemctl enable gophish
sudo systemctl status gophishGoPhish utilise SQLite par défaut. Pour une gestion plus robuste avec MariaDB :
sudo apt install -y mariadb-server
sudo systemctl start mariadb
sudo systemctl enable mariadb
sudo mysql_secure_installation
⚠️ Évitez les caractères suivants dans vos mots de passe :%[];<>
CREATE DATABASE gophish CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'gophish_user'@'localhost' IDENTIFIED BY 'votre_mdp_fort';
GRANT ALL PRIVILEGES ON gophish.* TO 'gophish_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;Ajustez le mode SQL de MariaDB :
echo -e "\n[mysqld]\nsql_mode=ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION" | sudo tee -a /etc/mysql/mariadb.conf.d/50-server.cnf
sudo systemctl restart mariadbModifiez config.json pour utiliser MariaDB :
"db_name": "mysql",
"db_path": "gophish_user:votre_mdp_fort@(localhost:3306)/gophish?charset=utf8&parseTime=True&loc=UTC"sudo systemctl daemon-reload
sudo systemctl restart gophish
journalctl -u gophish.service | grep "password"Dans l'interface GoPhish, allez dans Utilisateurs & Groupes > Nouveau Groupe.
Vous pouvez importer les utilisateurs via un fichier CSV. Pour extraire les utilisateurs depuis Active Directory (PowerShell) :
Get-ADUser -Filter * -SearchBase "OU=VotreOU,DC=votre-domaine,DC=local" -Properties mail,givenName,sn,title |
Select-Object @{n='First Name';e={$_.givenName}},@{n='Last Name';e={$_.sn}},@{n='Email';e={$_.mail}},@{n='Position';e={$_.Title}} |
Export-CSV -Path "C:\UsersGophish.csv" -Delimiter "," -NoTypeInformationAllez dans Profils d'Envoi > Nouveau Profil.
Exemple avec Gmail (nécessite un mot de passe d'application) :
| Champ | Valeur |
|---|---|
| Nom | |
| Type d'interface | SMTP |
| Expéditeur SMTP | votre-email@gmail.com |
| Hôte | smtp.gmail.com:465 |
| Nom d'utilisateur | votre-email@gmail.com |
| Mot de passe | (mot de passe d'application) |
| Ignorer les erreurs de certificat | ✅ |
Envoyez un e-mail de test pour valider la configuration avant de lancer la campagne.
Allez dans Modèles d'Email > Nouveau Modèle.
Exemple de configuration pour une simulation d'alerte Microsoft 365 :
| Champ | Valeur |
|---|---|
| Nom | AlerteSecuriteMicrosoft |
| Sujet | No-reply alerte de sécurité Microsoft |
| Ajouter une image de suivi | ✅ |
Utilisez la variable
{{.Email}}dans le corps de l'e-mail pour personnaliser chaque envoi avec l'adresse du destinataire.
Allez dans Pages de Destination > Nouvelle Page.
| Champ | Valeur |
|---|---|
| Nom | m365-connexion |
| Capturer les données soumises | ✅ |
| Capturer les mots de passe | ❌ |
| Redirection vers | https://www.office.com |
⚠️ Avertissement : les identifiants capturés sont stockés en clair dans la base de données. Ne capturez jamais de vrais mots de passe en production.
Allez dans Campagnes > Nouvelle Campagne :
| Champ | Valeur |
|---|---|
| Modèle d'Email | AlerteSecuriteMicrosoft |
| Page de Destination | m365-connexion |
| URL | http://<IP_de_votre_machine> |
| Profil d'Envoi | (votre profil SMTP) |
| Groupes | (sélectionnez vos groupes cibles) |
Conseil : définissez une date de fin pour que GoPhish répartisse les envois dans le temps — cela évite que tous les destinataires reçoivent l'e-mail simultanément.
GoPhish vous permet de suivre en temps réel :
- Email Sent : nombre d'e-mails envoyés
- Email Opened : nombre d'e-mails ouverts
- Clicked Link : nombre de clics sur le lien piégé
- Submitted Data : nombre de formulaires soumis
- Email Reported : nombre d'e-mails signalés comme suspects