A Testing Environment for Manual Security Testers

Sh00t
- es un gestor de tareas para que te centres en realizar pruebas de seguridad
- proporciona listas de verificación Por Hacer de casos de prueba
- ayuda a crear informes de errores con plantillas de errores personalizables
Características:
- Gestor de tareas dinámico para reemplazar editores simples o herramientas de gestión de tareas que NO están diseñadas para Seguridad
- Lista de verificación automatizada y personalizable de casos de prueba de seguridad para reemplazar Evernote, OneNote u otras herramientas que NO están diseñadas para Seguridad
- Gestiona plantillas de errores personalizadas para diferentes propósitos y genera automáticamente informes de errores
- Soporta múltiples Evaluaciones y Proyectos para separar lógicamente tus diferentes necesidades
- Úsalo como papel: todo se guarda automáticamente
- Exporta el informe de errores generado automáticamente a Markdown y envíalo ciegamente en HackerOne. (Trabajo en progreso)
- Integración con JIRA, ServiceNow - Próximamente
- Exporta informe de errores a Markdown - Próximamente
- Personaliza todo internamente
Instalación:
- Instala Docker si no está disponible. Los usuarios de Windows 10 Home o versiones anteriores, consulten las instrucciones de instalación alternativa a continuación.
- Descarga la imagen de Sh00t para Docker:
docker pull pavanw3b/sh00t:latest
- Crea un volumen para la persistencia de datos entre contenedores Docker:
docker volume create --name sh00t
- Ejecuta el contenedor:
docker run -d -p 8000:8000 --name sh00t -v sh00t:/root/sh00t/db pavanw3b/sh00t:latest
- Inicia sesión en http://127.0.0.1:8000/ en tu navegador favorito.
- Inicia sesión con las credenciales
sh00t / sh00t
- Para detener:
docker stop sht00t
Instalaciones alternativas:
- ¿Aún no te sientes cómodo con Docker? Te cubrimos. Instalación sin Docker
- ¿Eres un experto en Django y quieres configurar todo por tu cuenta? También te cubrimos: Configuración manual
- ¿Usas una máquina que no tiene Hyper-V, como Windows Home? Puedes usar Docker Toolbox y Docker Quickstart Terminal. Tu Sh00t se ejecutará en la IP predeterminada de tu Docker:
http://YOUR_DOCKER_IP:8000/. La dirección IP se mostrará al inicio de la Quickstart Terminal. También puedes encontrarla con docker-machine ls y docker-machine ip MACHINE_NAME.
- Si quieres migrar a la versión Docker de Sh00t desde una configuración anterior sin perder ninguno de tus datos existentes, debes reemplazar manualmente el archivo /root/sh00/db/db.sqlite3 en el contenedor Docker con tu configuración anterior de Sh00t.
Usando Sh00t más tarde:
- Inicia el contenedor:
docker start sh00t
- Inicia sesión en
http://YOUR_IP:8000/ en tu navegador favorito
- Inicia sesión con
sh00t / sh00t si no lo has cambiado
- Detén el contenedor si te importa:
docker stop sh00t
¡y repite!
Nota: Usa siempre docker start y docker stop. Podrías perder tus datos si eliminas el contenedor o el volumen.
Actualización
Es importante mantener tu Sh00t actualizado para aprovechar las nuevas funciones y correcciones de errores.
- Elimina el contenedor existente:
docker container rm -f sh00t
No te preocupes, tus datos están seguros a menos que elimines el volumen de Docker.
- Descarga la última imagen de Docker:
docker pull pavanw3b/sh00t:latest
- Inicia un nuevo contenedor con el código más reciente, pero aún con los datos antiguos:
docker run -d -p 8000:8000 --name sh00t -v sh00t:/root/sh00t/db pavanw3b/sh00t:latest
Desinstalación
En caso de que quieras eliminar todas las imágenes, contenedores y volúmenes de Sh00t, se pueden ejecutar las siguientes instrucciones. Nota: Esta es una operación destructiva y no se puede deshacer.
- Eliminar imagen:
docker rmi pavanw3b/sh00t:latest
- Eliminar contenedor:
docker rm sh00t
- Eliminar volumen:
docker volume rm sh00t:/root/sh00t/db
Solución de problemas:
Sh00t está escrito en Python y funciona con Django Web Framework. Si te encuentras con algún error, buscar en Google el mensaje de error debería ayudarte la mayoría de las veces. Si no estás seguro, por favor reporta un nuevo problema en GitHub.
Glosario:
- Flag: Una Flag es un objetivo al que se dispara (sh00ted). Es un caso de prueba que necesita ser probado. Las Flags se generan automáticamente según la metodología de prueba elegida. El error puede o no ser encontrado, pero el objetivo es apuntar y disparar (sh00t) a él. La Flag contiene pasos detallados para la prueba. Si el error se confirma, se llama Sh0t.
- Sh0t: Los Sh0ts son errores. Normalmente un Sh0t contiene una descripción técnica del error, Archivos/URLs afectados, Pasos para Reproducir y Recomendación de Corrección. La mayoría del contenido de un Sh0t se genera con un solo clic y solo el contenido dinámico como Parámetros Afectados, Pasos debe ser cambiado. Los Sh0ts pueden pertenecer a una Evaluación.
- Evaluación (Assessment): Una Evaluación es una evaluación de pruebas. Puede ser la evaluación de una aplicación, un programa, según la forma que el usuario desee gestionarla. Es parte de un proyecto.
- Proyecto (Project): Un proyecto contiene evaluaciones. Un proyecto puede ser una separación lógica de lo que haces. Puede ser un trabajo diferente, bug bounty, depende de ti decidir.
- Plantilla (Template): Las plantillas son tus plantillas de errores. Se usan con
Sh0t. Esto reemplaza el trabajo de copiar y pegar cuando reportas un nuevo error. Crea plantillas para todos tus errores, deja las variables que cambiarán en tu informe real de error, como URL, Área Afectada, etc., que serán reemplazadas cuando la plantilla se cargue en tu Sh0t.
- Maestro de Casos (Case Master): El Maestro de Casos es un conjunto de Casos de Prueba. Son pruebas individuales que realizarás en tu objetivo. Configurar los Casos de Prueba te ayudará a gestionar tus pruebas y cubrir todas las cosas que necesitarás en tu Evaluación. Cada hacker tendrá sus propios Casos de Prueba. Mantenlos cortos y fáciles de seguir. Mantener una lista completa de Casos de Prueba en tu Sh00t es la parte más importante de usar Sh00t. Los Casos de Prueba se convertirán en Flags que deben ser probadas cuando inicies una nueva Evaluación.
- Maestro de Módulos (Module Master): Los Módulos son partes lógicas de las pruebas. Por ejemplo, Gestión de Usuarios y Sesiones es un ejemplo de Módulo. Los Módulos son similares a la categoría de la prueba.
- Maestro de Metodología (Methodology Master): La Metodología es tu enfoque para tus pruebas. OWASP Testing Guide V4 y Web Application Hacker Handbook (WAHH) son ejemplos de Metodología y vienen incluidos por defecto con Sh00t. Puedes crear tu propia Metodología, Módulos y Casos de Prueba. Puedes tener diferentes Metodologías para tu trabajo oficial y bug bounty personal. La Metodología te ayudará a separarlos.