Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
Cisco-FMC-honeypot — À l'origine un honeypot pour CVE-2026-20131 | Kitploit
Outils/GitHubGitHub/hassan-pouladi/cisco-fmc-honeypot
Analyse des VulnérabilitésSécurité RéseauAnalyse de MalwareRenseignement sur les MenacesRéponse aux Incidents
GitHubhassan-pouladi/cisco-fmc-honeypot

Cisco-FMC-honeypot

À l'origine un honeypot pour CVE-2026-20131

Voir le dépôt
1114il y a 2 moisPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

FMC-Trap

Un honeypot à faible interaction qui imite l'interface web d'un Cisco Secure Firewall Management Center (FMC) et capture le trafic d'attaque non authentifié de type sérialisation Java (sondes de désérialisation non sécurisée de type CVE).

  • Sûr par conception : l'application ne désérialise pas les objets Java ; elle détecte \xac\xed\x00\x05 (et le Base64 rO0AB…) et extrait les chaînes shell ou URL à l'aide d'expressions régulières et d'heuristiques.
  • Aucune exécution de commande : les URL de deuxième étape ne sont récupérées qu'avec Python requests dans un volume de téléchargements non exécutable.
  • Stack orientée production : Docker Compose avec Gunicorn et éventuellement Caddy (HTTPS, Let’s Encrypt).

Pourquoi l'utiliser ?

Journaux JSON sur une seule ligne (compatibles avec Splunk et ELK), alertes Telegram facultatives, artefacts de deuxième étape hachés et utilisateur de conteneur non-root. Le projet est destiné aux chercheurs qui ont besoin d'un piège ciblé de type FMC sans code d'intégration supplémentaire.

Prérequis

ÉlémentRemarques
Docker et Docker Compose v2Installer Docker
VPS ou hôteUn segment réseau dédié ou isolé est recommandé
Domaine (facultatif)Pour HTTPS : configurer le DNS et autoriser les connexions entrantes TCP 80 et TCP 443 vers l'hôte

Démarrage rapide (environ cinq minutes)

1. Cloner

git clone https://github.com/Hassan-Pouladi/Cisco-FMC-honeypot
cd FMC-Trap

2. Configurer l'environnement

cp .env.example .env

Modifiez .env selon vos besoins (voir Variables d'environnement). Pour les déploiements derrière le Caddy fourni, définissez TRUST_X_FORWARDED_FOR=1 afin que les adresses IP des clients dans les journaux reflètent le client d'origine.

3. Pointer Caddy vers votre domaine

Modifiez Caddyfile : remplacez les noms d'hôte factices par votre domaine (et www le cas échéant) :

example.com, www.example.com {
	reverse_proxy fmc-trap:5000
}

En option, décommentez le bloc global email [email protected] dans Caddyfile pour les avis d'expiration de Let’s Encrypt.

4. DNS et pare-feu (HTTPS)

  • Créez les enregistrements A (et AAAA le cas échéant) : yourdomain.com vers l'adresse IP publique de votre serveur, et www si utilisé.
  • Autorisez les connexions entrantes TCP 80 et TCP 443 sur l'hôte (groupe de sécurité cloud et pare-feu de l'hôte, par exemple ufw allow 80,443/tcp).

5. Répertoires de données (requis)

L'application s'exécute avec l'UID 10001 dans le conteneur. Le répertoire ./data monté en bind doit être accessible en écriture :

mkdir -p data/logs data/downloads
sudo chown -R 10001:10001 data/logs data/downloads

Sans droits de propriété corrects, les requêtes POST d'exploitation peuvent renvoyer 500 (Permission denied lors de l'écriture des journaux ou des blobs bruts).

6. Démarrer

docker compose up -d --build

7. Vérifier

docker compose ps
curl -sI https://yourdomain.com/

Attendez-vous à HTTP/2 200 (ou 301 ou 302) et à Via: Caddy. Dans un navigateur, https://yourdomain.com/ doit afficher la page de connexion FMC simulée.

Pour savoir où lire les événements, les charges utiles et les sorties Docker, voir Où trouver les journaux, les téléchargements et la sortie de service et Opérations courantes.

Où trouver les journaux, les téléchargements et la sortie de service

Tout ce qui suit est relatif à votre répertoire de projet (le dossier qui contient docker-compose.yml, généralement FMC-Trap après le clonage). Les chemins se trouvent sur l'hôte ; Docker les monte en bind dans le conteneur.

QuoiChemin sur l'hôteComment ouvrir ou suivre
Journal d'événements (lignes JSON)data/logs/fmc-trap.jsontail -f data/logs/fmc-trap.json (flux en direct), ou ouvrez dans un éditeur, ou ingérez dans Splunk ou ELK
Charges utiles de deuxième étape téléchargéesdata/downloads/Les fichiers n'apparaissent que lorsque le collecteur enregistre une réponse distante ; chaque fichier est nommé avec son hash SHA256 (64 caractères hexadécimaux), sans extension. Listez avec ls -la data/downloads (Linux ou macOS) ou Get-ChildItem data\downloads (Windows PowerShell)
Sortie du processus applicatifPas un fichier ; Dockerdocker compose logs -f fmc-trap
Caddy (TLS, proxy, ACME)Pas un fichier ; Dockerdocker compose logs -f caddy
Alertes Telegram (facultatives)Non stockées dans data/Définissez TELEGRAM_BOT_TOKEN et TELEGRAM_CHAT_ID dans .env ; les alertes se déclenchent lorsque des événements sont journalisés

Quand quelque chose apparaît dans le fichier journal : fmc-trap.json reçoit un objet JSON par ligne lorsqu'une requête correspond au comportement d'une sonde de désérialisation (octets magiques dans un POST). Les requêtes GET ordinaires vers la page de connexion factice ne sont pas écrites dans ce fichier par défaut.

Quand le dossier de téléchargements contient des fichiers : les entrées n'apparaissent que si le pipeline extrait une URL d'une sonde et que le collecteur récupère avec succès le contenu distant autorisé dans la limite de MAX_DOWNLOAD_MB. Si le répertoire reste vide, il se peut qu'aucune URL admissible n'ait encore été détectée, ou que les récupérations soient bloquées par la politique de l'application.

Affichage lisible du JSON (facultatif) : pour une seule ligne, faites passer par python -m json.tool ou utilisez jq s'il est installé.

Opérations courantes

ObjectifCommande ou action
Vérifier si les conteneurs sont en cours d'exécutiondocker compose ps
Redémarrer après modification de .env ou Caddyfiledocker compose up -d --build (ou docker compose up -d --force-recreate si seul l'environnement a changé)
Arrêter la stackdocker compose down
Suivre en continu les nouveaux événements JSONtail -f data/logs/fmc-trap.json
Inspecter les derniers événementstail -n 50 data/logs/fmc-trap.json
Compter les artefacts téléchargésOuvrez data/downloads dans votre gestionnaire de fichiers, ou utilisez un comptage de fichiers en shell sur ce répertoire (les fichiers sont nommés d'après leur hash SHA256)
Confirmer que la page du honeypot se chargeOuvrez https://yourdomain.com/ dans un navigateur ou utilisez curl -sI comme à l'étape de vérification

Architecture

Internet :443/:80 → Caddy (TLS, Let’s Encrypt) → fmc-trap:5000 (Gunicorn/Flask)
                              ↓
                    ./data/logs, ./data/downloads (bind mounts)
  • Seul Caddy publie les ports 80 et 443 sur l'hôte ; le conteneur applicatif n'est pas exposé directement (voir expose: "5000" dans Compose).
  • Caddy utilise les résolveurs DNS publics (1.1.1.1, 8.8.8.8) dans le conteneur afin que Let’s Encrypt fonctionne sur les hôtes où le résolveur du VPS est inaccessible depuis Docker (une limitation courante chez certains fournisseurs cloud).

Variables d'environnement

Télécharger l’outil