
Laboratoire et PoC
Ce dépôt semble être un projet de recherche de preuve de concept pour valider un problème de désérialisation et de traitement de volet d’outils de type SharePoint dans un laboratoire contrôlé. Il comprend un pilote Python, une application vulnérable simulée et des ressources conteneurisées pour des tests isolés.
[!WARNING] Ce projet ne doit être utilisé que sur des systèmes, conteneurs ou réseaux que vous possédez ou pour lesquels vous êtes explicitement autorisé à effectuer des tests. N’exécutez pas ce code contre une infrastructure publique, des services tiers, des environnements de production ou toute cible sans autorisation écrite. Les tests de sécurité non autorisés peuvent violer la loi, un contrat, une politique ou des conditions d’utilisation.
Le contenu de ce dépôt doit être considéré comme un matériel de recherche sensible en matière de sécurité. Si vous utilisez ce projet dans le cadre d’un travail d’évaluation, gardez l’exécution isolée, enregistrez toute activité et coordonnez-vous avec le propriétaire du système avant de tester.
Le dépôt contient actuellement :
sploit.py : pilote asynchrone Python qui envoie des requêtes conçues à un point de terminaison ToolPane.lab/mock_vulnerable_app.cs : application ASP.NET simulée qui renvoie un marqueur de validation et, dans sa forme actuelle, peut exécuter une commande fournie à l’intérieur du conteneur du laboratoire.lab/docker-compose.yml : laboratoire local à deux conteneurs qui sépare la cible simulée du terminal de l’attaquant.lab/Dockerfile : construction .NET multi-étapes qui publie l’application vulnérable simulée dans une image d’exécution ASP.NET plus petite et l’exécute en tant qu’utilisateur non-root.lab/attacker.Dockerfile : définition du conteneur attaquant Python qui préinstalle l’ensemble des dépendances de script nécessaires pour le terminal du laboratoire.lab/vulnerable.csproj : fichier de projet web .NET 6 pour l’application vulnérable simulée.lab/genGadget.py : script auxiliaire pour générer une charge utile Base64 compressée pour les tests de désérialisation réservés au laboratoire.Ce workflow est destiné uniquement au laboratoire local.
Prérequis :
Démarrez le laboratoire depuis le répertoire lab/ :
cd lab
docker-compose up --build -d
Si votre configuration Docker nécessite des privilèges élevés, exécutez les mêmes commandes avec sudo.
Confirmez que les deux conteneurs sont en cours d’exécution :
docker-compose ps
Journalisation en cas de problème ou de validation d’exploit :
docker logs sp_attacker
docker logs sp_vulnerable_lab
Le laboratoire est intentionnellement isolé :
lab_net ;Ouvrez un interpréteur dans le conteneur attaquant :
docker exec -it sp_attacker bash
Depuis l’intérieur du conteneur attaquant, vous pouvez effectuer des vérifications sans danger pour le laboratoire, telles que confirmer que la cible est joignable et tester le script en mode de vérification contre la cible simulée :
python3 sploit.py http://sp_vulnerable_lab/
# Si la résolution DNS du nom de service échoue dans votre environnement, utilisez l’IP du laboratoire :
# python3 sploit.py http://10.10.10.5
# Si vous souhaitez aller au-delà de la validation de base, vous pouvez inclure les commandes souhaitées.
python3 sploit.py http://sp_vulnerable_lab whoami
Comportement attendu dans l’environnement simulé local :
http://sharepoint-target depuis le conteneur attaquant ;Notes opérationnelles :
Arrêtez et supprimez les conteneurs et le réseau du laboratoire :
cd lab
docker-compose down
Si vous souhaitez également supprimer les images construites :
docker-compose down --rmi local
Si vous souhaitez une réinitialisation complète des artefacts de l’espace de travail du laboratoire, supprimez tous les fichiers de résultat générés après l’arrêt :
rm -f vuln.lst
Pratique de nettoyage recommandée après chaque exercice :
docker-compose down ;Le projet est structurellement valide en tant que laboratoire de recherche local, mais il ne doit pas être traité comme un validateur sûr en production dans sa forme actuelle.
Ce qui fonctionne :
Ce qui nécessite de la prudence :
vuln.lst, ce qui peut créer des données sensibles résiduelles inutiles.Utilisez ce projet uniquement pour une validation contrôlée de la détection et de l’exposition, et non pour une exploitation opérationnelle.
Méthodologie recommandée :
Pour les travaux d’évaluation réels, la norme plus sûre consiste à remplacer la validation de type exploitation par une ou plusieurs des méthodes suivantes :
Si une cible est réellement vulnérable à une faille de désérialisation dans un composant d’application privilégié, l’impact potentiel peut être grave :
Même dans un laboratoire, la sémantique d’exécution de commande augmente considérablement le risque car elle normalise des workflows qui devraient être réservés à des enquêtes autorisées et strictement contrôlées.
La voie d’atténuation appropriée est défensive et en couches.
Actions immédiates :
Actions de durcissement :
/_layouts/15/ToolPane.aspx et les chemins administratifs adjacents.Mesures d’atténuation spécifiques au laboratoire de recherche :
Ce README ne fournit pas d’instructions pour exploiter des systèmes en production. Il documente le dépôt en tant qu’artefact de recherche contrôlé et décrit des pratiques plus sûres de validation et d’atténuation.