Un honeypot basé sur Docker conçu pour détecter et journaliser les tentatives d'exploitation des vulnérabilités zero-day de Microsoft SharePoint.
Ce honeypot est conçu pour la détection précoce et le renseignement sur les menaces, et non pour simuler un environnement SharePoint complet ou une activité post-exploitation.
Fonctionnalités principales
- Détection avancée basée sur des tags (catégories IOC, Pattern, Heuristique)
- Analyse d'exploit R7 Metasploit avec décompression complète de la charge utile
- Temps de réponse inférieurs à 100 ms via une architecture asynchrone Sensor+Analyzer
- Détection basée sur YARA sur les charges utiles brutes et décompressées
- Journalise toutes les requêtes HTTP avec analyse améliorée et émulation d'en-têtes IIS
- Tableau de bord de renseignement avec analyses en temps réel et filtrage par tags
- HTTPS avec certificat auto-signé
- Architecture Docker modulaire à 3 services
Couverture et limites
Ce que ce honeypot fait :
- Détecte et journalise les tentatives d'exploitation ciblant les vulnérabilités SharePoint connues (CVE-2025-49704, CVE-2025-49706, CVE-2025-53770, CVE-2025-53771)
- Capture les charges utiles, y compris les webshells, les commandes encodées et le contenu obfusqué
- Fournit une détection basée sur IOC et YARA pour le renseignement sur les menaces et la recherche
Ce que ce honeypot NE fait PAS :
- Ne simule pas l'authentification complète de SharePoint, la gestion des sessions ou le contenu dynamique
- Ne permet pas l'interaction post-exploitation (par exemple, exécution de commandes webshell, téléchargement/téléversement de fichiers, mouvement latéral)
- Les attaquants peuvent rapidement se rendre compte que le système est un honeypot après la réponse initiale
Architecture
Docker Compose
├── honeypot (Sensor - HTTP capture, port 443, <100ms response)
├── analyzer (Deep analysis engine, tag-driven processing)
└── dashboard (Intelligence dashboard, port 8501)
Flux de données
HTTP Request → Sensor → Event Queue → Analyzer → Dashboard
↓ ↓ ↓
Fast Response SHA256 Body Deep Analysis
Tag Assignment Raw Storage YARA + R7
Améliorations clés :
- Traitement asynchrone (les réponses ne sont jamais bloquées par l'analyse)
- Pipeline piloté par tags (classification IOC/Pattern/Heuristique)
- Analyse complète des exploits R7 (décompression Gzip→Base64→.NET)
- Déduplication des corps basée sur SHA256
Pipeline de détection
flowchart TD
A[HTTP Request] --> B[Sensor: Tag Assignment]
B --> C{Route-Based IOCs}
B --> D{Pattern Detection}
B --> E{Heuristic Analysis}
C --> F[IOC Tags]
D --> G[Pattern Tags]
E --> H[Heuristic Tags]
F --> I[Event JSON + Body Storage]
G --> I
H --> I
I --> J[Event Queue]
J --> K[Analyzer: Deep Analysis]
K --> L{Tag-Driven Pipeline}
L -->|R7_PAYLOAD| M[Gzip→Base64→.NET Analysis]
L -->|LARGE_B64| N[Generic Base64 Decoding]
L -->|Always| O[YARA Scanning]
M --> P[Enhanced Event JSON]
N --> P
O --> P
P --> Q[Dashboard Intelligence]
- Tags IOC : Indicateurs de haute confiance (IOC:ENDPOINT_TOOLPANE, IOC:CVE_2025_53771)
- Tags Pattern : Signatures d'exploit connues (PATTERN:R7_PAYLOAD, PATTERN:YSOSERIAL)
- Tags Heuristiques : Détection d'anomalies (HEURISTIC:LARGE_B64, HEURISTIC:UNUSUAL_METHOD)
Indicateurs de compromission de haute confiance avec priorité d'alerte immédiate
IOC basés sur les points de terminaison :
IOC:ENDPOINT_TOOLPANE - Accès à /_layouts/15|16/ToolPane.aspx
IOC:ENDPOINT_SIGNOUT - Accès à /_layouts/SignOut.aspx
IOC:ENDPOINT_FAVICON - Accès à /favicon.ico
IOC:ENDPOINT_ACLEDITOR - Accès à /_controltemplates/15|16/AclEditor.ascx
IOC:ENDPOINT_LAYOUTS_ASPX - Accès générique au point de terminaison /_layouts/*.aspx
IOC:WEBSHELL_PROBE - Détection de sondage de webshell
IOC spécifiques aux CVE :
IOC:CVE_2025_53771 - Contournement d'authentification par slash final (CVE-2025-53771)
IOC basés sur les paramètres :
IOC:PARAM_DISPLAYMODE_EDIT - Paramètre DisplayMode=Edit détecté
IOC:PARAM_TOOLPANE_REFERENCE - Valeur de paramètre faisant référence à ToolPane
IOC basés sur les en-têtes :
IOC:REFERER_SIGNOUT - En-tête Referer contenant SignOut.aspx
IOC:SUSPICIOUS_USER_AGENT - Motif User-Agent suspect (par exemple, Firefox/120.0)
Signatures de frameworks d'exploit et motifs de charge utile connus
Signatures d'exploit :
PATTERN:R7_PAYLOAD - Exploit Metasploit R7 (MSOTlPn_DWP + CompressedDataTable)
PATTERN:VIEWSTATE_EXPLOIT - Tentative d'exploitation de __VIEWSTATE
PATTERN:YSOSERIAL - Outil de désérialisation Java (mot-clé ysoserial)
Motifs d'exécution de code :
PATTERN:POWERSHELL - Commandes/scripts PowerShell détectés
PATTERN:ASPX_WEBSHELL - Tentatives de téléversement de webshell ASPX
Détection d'anomalies comportementales pour les menaces inconnues
Anomalies de charge utile :
HEURISTIC:LARGE_PAYLOAD - Taille de charge utile >1 KO (1024 octets)
HEURISTIC:LARGE_B64 - Contenu Base64 >100 caractères
HEURISTIC:MULTIPLE_B64 - Plusieurs chaînes Base64 (>3)
Anomalies de paramètres :
HEURISTIC:MANY_PARAMETERS - Paramètres d'URL excessifs (>10)
HEURISTIC:MISSING_CONTENT_TYPE - Requête POST sans Content-Type
HEURISTIC:MALFORMED_MULTIPART - Données multipart mal formées
Anomalies de requête :
HEURISTIC:UNUSUAL_METHOD - Méthodes HTTP inhabituelles (PUT/DELETE/PATCH)
HEURISTIC:LONG_PATH - Chemin d'URL extrêmement long (>200 caractères)
HEURISTIC:UNKNOWN_ENDPOINT - Point de terminaison non surveillé (route générique)
Points de terminaison et motifs surveillés
/ (route générique)
/favicon.ico
/_layouts/SignOut.aspx
/_layouts/15/ToolPane.aspx et /_layouts/16/ToolPane.aspx (POST/GET, paramètres DisplayMode=Edit, a=/ToolPane.aspx)
/_layouts/15/spinstall0.aspx, /_layouts/16/spinstall0.aspx, spinstall.aspx, spinstall1.aspx, info3.aspx, xxx.aspx
Indicateurs de compromission (IOC)
- Point de terminaison d'exploit ToolPane (avec paramètres suspects)
- Paramètre DisplayMode=Edit
- Paramètre a=/ToolPane.aspx
- Referer SignOut.aspx
- User-Agent suspect (par exemple, Firefox/120.0)
- Points de terminaison de sondage de webshell
- Charge utile ViewState dans le corps POST
Règles YARA et détection avancée
- Détecte les exploits connus, les webshells, les charges utiles PowerShell encodées/obfusquées et les binaires suspects
- Les règles sont appliquées aux charges utiles brutes et décodées (base64, UTF-16LE)
- Facilement extensible pour les nouvelles menaces
- Règles personnalisées : Vous pouvez ajouter vos propres règles YARA dans le répertoire
yara_rules/
- Exemples de règles : Pour des exemples supplémentaires et des contributions communautaires, consultez awesome-yara
Données collectées et affichées
- Métadonnées de requête : méthode, chemin, IP, en-têtes, arguments de requête, système de tags amélioré (IOC/Pattern/Heuristique)
- Corps POST : Fichiers .bin nommés par SHA256 avec déduplication (remplace les archives ZIP quotidiennes)
- Résultats d'analyse approfondie : Décompression de charge utile R7, correspondances YARA sur contenu brut + décodé
- Journaux améliorés : JSON basé sur les événements avec capture du capteur et résultats de l'analyseur
- Tableau de bord : Filtrage en temps réel par tags, surveillance des performances, alertes d'exploit R7, exportation du renseignement
Démarrage rapide
-
Générer un certificat auto-signé :
openssl req -x509 -nodes -days 365 \
-newkey rsa:2048 -keyout key.pem -out cert.pem \
-subj "/CN=sharepoint.local"
cp cert.pem key.pem ToolShell-Honeypot/
-
Construire et exécuter tous les services :
cd ToolShell-Honeypot
sudo docker-compose up --build
Ou utilisez le script de gestion interactif :
Choisissez l'option 6 pour démarrer tous les services, ou démarrez les composants individuellement.
-
Tester le honeypot :
# Suite de tests complète couvrant toutes les fonctionnalités
./test_comprehensive.sh
-
Accéder au tableau de bord :
Ouvrez http://localhost:8501 pour consulter le tableau de bord de renseignement avec :
- Filtrage basé sur les tags (catégories IOC, Pattern, Heuristique)
- Alertes de détection d'exploit R7 avec statut de décompression de la charge utile
- Métriques de performance en temps réel (temps de réponse, vitesse d'analyse)
- Capacités d'exportation (JSON, CSV, charges utiles brutes)
Les scripts de test simulent des scénarios d'attaque réels. Consultez le tableau de bord pour examiner les résultats, la détection IOC et l'analyse des données.
Gestion des services (manage.sh)
Un script de gestion est fourni pour un contrôle facile du honeypot et des services du tableau de bord.
Utilisation :
cd ToolShell-Honeypot
chmod +x manage.sh # (première fois uniquement)
./manage.sh
Options du menu :
- 0 : Construire toutes les images Docker
- 1 : Démarrer uniquement le honeypot (capteur)
- 2 : Démarrer uniquement l'analyseur
- 3 : Démarrer uniquement le tableau de bord
- 4 : Démarrer honeypot + analyseur
- 5 : Démarrer analyseur + tableau de bord
- 6 : Démarrer tous les services (honeypot + analyseur + tableau de bord)
- 7 : Afficher le statut
- 8-11 : Arrêter les services individuellement
- q : Quitter
Notes
- Les données sont enregistrées dans ./data avec la structure : /raw_bodies, /events/{new,processed,error}
- Déduplication des corps basée sur SHA256 (remplace les archives ZIP quotidiennes)
- Le tableau de bord, le honeypot (capteur) et l'analyseur sont séparés pour la sécurité et les performances
- access.log est compatible SIEM avec des informations de tags améliorées
- Temps de réponse inférieurs à 100 ms obtenus grâce au traitement asynchrone
Renseignement sur les menaces et logique de détection
Les motifs IOC, les règles YARA et la logique de détection sont basés sur des campagnes d'attaque réelles et des renseignements publics sur les menaces pour les vulnérabilités ToolShell/SharePoint, notamment :
- Tentatives d'exploitation sur les points de terminaison ToolPane.aspx avec des paramètres spécifiques
- Utilisation d'en-têtes Referer et User-Agent malveillants connus
- Sondage des points de terminaison de webshell
- Détection des charges utiles ViewState dans les corps POST
- Techniques avancées d'obfuscation PowerShell et de livraison de webshell
CVE pertinentes :
- CVE-2025-49704 : Contrôle de génération de code inapproprié (injection de code) dans SharePoint
- CVE-2025-49706 : Authentification inappropriée dans SharePoint
- CVE-2025-53770 : Désérialisation de données non fiables dans SharePoint
- CVE-2025-53771 : Traversée de chemin dans SharePoint
À faire
- Alertes par webhook, analyse avancée, intégration SIEM, authentification du tableau de bord, étendre les capacités du honeypot pour simuler l'authentification, la gestion des sessions, le contenu dynamique, une interaction post-exploitation limitée (par exemple, exécution de commandes webshell, téléchargement/téléversement de fichiers) pour un engagement et une analyse plus profonds des attaquants, et bien plus encore...