
Laboratorio y PoC
Este repositorio parece ser un proyecto de investigación de prueba de concepto para validar un problema de deserialización y procesamiento de ToolPane de estilo SharePoint en un laboratorio controlado. Incluye un controlador Python, una aplicación vulnerable simulada y recursos de contenedores para pruebas aisladas.
[!WARNING] Este proyecto solo debe utilizarse en sistemas, contenedores o redes que sean de tu propiedad o para los que tengas autorización explícita para realizar pruebas. No ejecutes este código contra infraestructuras públicas, servicios de terceros, entornos de producción ni ningún objetivo sin permiso por escrito. Las pruebas de seguridad no autorizadas pueden violar la ley, contratos, políticas o términos de uso aceptables.
El contenido de este repositorio debe tratarse como material sensible de investigación de seguridad. Si utilizas este proyecto para trabajos de evaluación, mantén la ejecución aislada, registra toda la actividad y coordina con el propietario del sistema antes de realizar las pruebas.
El repositorio contiene actualmente:
sploit.py: controlador Python asíncrono que envía solicitudes manipuladas a un endpoint de ToolPane.lab/mock_vulnerable_app.cs: aplicación ASP.NET simulada que refleja un marcador de validación y, en su forma actual, puede ejecutar un comando proporcionado dentro del contenedor del laboratorio.lab/docker-compose.yml: laboratorio local de dos contenedores que separa el objetivo simulado del terminal del atacante.lab/Dockerfile: compilación .NET de varias etapas que publica la aplicación vulnerable simulada en una imagen de runtime ASP.NET más pequeña y la ejecuta como un usuario no root.lab/attacker.Dockerfile: definición del contenedor atacante Python que preinstala el conjunto de dependencias del script necesario para el terminal del laboratorio.lab/vulnerable.csproj: archivo de proyecto web .NET 6 para la aplicación vulnerable simulada.lab/genGadget.py: script auxiliar para generar una carga útil (payload) Base64 comprimida para pruebas de deserialización solo en laboratorio.Este flujo de trabajo está pensado únicamente para el laboratorio local.
Requisitos previos:
Inicia el laboratorio desde el directorio lab/:
cd lab
docker-compose up --build -d
Si tu configuración de Docker requiere privilegios elevados, ejecuta los mismos comandos con sudo.
Confirma que ambos contenedores están en ejecución:
docker-compose ps
Registro en caso de problemas o validación de exploits:
docker logs sp_attacker
docker logs sp_vulnerable_lab
El laboratorio está aislado intencionadamente:
lab_net;Abre un shell en el contenedor del atacante:
docker exec -it sp_attacker bash
Desde el interior del contenedor del atacante, puedes realizar comprobaciones seguras para el laboratorio, como confirmar que el objetivo es accesible y probar el script en modo de verificación contra el objetivo simulado:
python3 sploit.py http://sp_vulnerable_lab/
# If service-name DNS resolution fails in your environment, use the lab IP:
# python3 sploit.py http://10.10.10.5
# If you wish to go past base validation you can include wanted commands.
python3 sploit.py http://sp_vulnerable_lab whoami
Comportamiento esperado en el entorno simulado local:
http://sharepoint-target desde el contenedor del atacante;Notas operativas:
Detén y elimina los contenedores y la red del laboratorio:
cd lab
docker-compose down
Si también quieres eliminar las imágenes construidas:
docker-compose down --rmi local
Si quieres un restablecimiento completo de los artefactos del espacio de trabajo del laboratorio, elimina cualquier archivo de resultados generado después del apagado:
rm -f vuln.lst
Práctica de limpieza recomendada después de cada ejercicio:
docker-compose down;El proyecto es estructuralmente válido como laboratorio de investigación local, pero no debe tratarse como un validador seguro para producción en su forma actual.
Lo que funciona:
Lo que requiere precaución:
vuln.lst, lo que puede generar datos sensibles residuales innecesarios.Utiliza este proyecto únicamente para la validación controlada de detección y exposición, no para explotación operativa.
Metodología recomendada:
Para trabajos de evaluación en el mundo real, el estándar más seguro es sustituir la validación de tipo exploit por una o más de las siguientes opciones:
Si un objetivo es realmente vulnerable a una falla de deserialización en un componente de aplicación privilegiado, el impacto potencial puede ser grave:
Incluso en un laboratorio, la semántica de ejecución de comandos aumenta significativamente el riesgo porque normaliza flujos de trabajo que deberían reservarse para una investigación autorizada y estrictamente controlada.
La vía de mitigación adecuada es defensiva y en capas.
Acciones inmediatas:
Acciones de endurecimiento (hardening):
/_layouts/15/ToolPane.aspx y rutas administrativas adyacentes.Mitigaciones específicas para laboratorios de investigación:
Este README no proporciona instrucciones para explotar sistemas en producción. Documenta el repositorio como un artefacto controlado de investigación y describe prácticas más seguras de validación y mitigación.