Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
purpleteam-s2-containers — Contenedores de etapa dos | Kitploit
Herramientas/GitLabGitLab/purpleteam-labs/purpleteam-s2-containers
Escáneres de VulnerabilidadesSeguridad de ContenedoresAnálisis Dinámico (Sandboxing)Seguridad WebPruebas de PenetraciónSeguridad en la NubeDevSecOpsAprendizaje y EducaciónArchived
GitLabpurpleteam-labs/purpleteam-s2-containers

purpleteam-s2-containers

Contenedores de etapa dos

Ver Repositorio
110hace 5 añosAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

logo de purpleteam

Contenedores de la Etapa Dos de purpleteam


Contenedores de la Etapa Dos de purpleteam




Estos contenedores se inician dinámicamente según la configuración del usuario Build (Job) proporcionada a la CLI de purpleteam, específicamente el número de testSessions que definas.

Las siguientes configuraciones son relevantes si tienes la intención de ejecutar el backend de purpleteam en el entorno local. En la nube (cloud) todo esto se hace por ti.

Clona este repositorio.

Define las variables de entorno

app-slave (Zap)

Usamos un archivo .env directamente en el directorio app-slave para las pruebas.

ZAP_API_KEY

Asegúrate de haber asignado un valor a la variable de entorno ZAP_API_KEY.

La ZAP_API_KEY puede ser la que elijas, solo asegúrate de que, además de definirla para app-slave, también la agregues a la configuración del proyecto app-scanner. El proyecto app-scanner requiere que la clave API de Zap esté configurada para autenticarse en Zap que se ejecuta en el contenedor de la Etapa Dos. Para el proyecto app-scanner, esto debe configurarse en lo siguiente:
{ "slave": { "apiKey": <zap-api-key-here> } }

HOST_ZAP_LOG4J_PROPERTIES_PATH y ZAP_LOG4J_PROPERTIES_PATH_MOUNT_TARGET

Si/cuando necesites registros de depuración de Zap, también necesitarás agregar las variables de entorno para la configuración de depuración de LOG4J.

Archivo .env

Si eliges usar un archivo .env, agregar todas estas variables de entorno se vería similar a lo siguiente:

root@kitploit:~
ZAP_API_KEY=<zap-api-key-here>
HOST_ZAP_LOG4J_PROPERTIES_PATH=<ruta-absoluta-hacia/purpleteam-s2-containers/app-slave/log4j.properties>
ZAP_LOG4J_PROPERTIES_PATH_MOUNT_TARGET=/home/zap/.ZAP/log4j.properties

Depuración

app-slave (Zap)

Registro de depuración

Siempre que hayas establecido las variables de entorno discutidas anteriormente:

Para activar el registro de depuración para los contenedores app-slave (Zap) que se ejecutan en el entorno local, descomenta el arreglo volumes y el elemento que contiene la clave source con la variable de entorno HOST_ZAP_LOG4J_PROPERTIES_PATH.

Los detalles a continuación para ver realmente los registros.

Interactuar con Zap

Puedes interactuar con Zap (consultar la interfaz de usuario de Zap) mientras se ejecutan tus pruebas. Esto ha sido útil en el pasado para verificar el estado de Zap mientras se depura el app-scanner.

  1. Confirma que el contenedor appslave_zap_[n] se esté ejecutando con:
    root@kitploit:~
    docker stats
    
  2. Verifica a qué puerto del host está vinculado el contenedor appslave_zap_[n] con:
    root@kitploit:~
    docker container ls
    
    Esto podría ser cualquier puerto entre 8080-8091 inclusive, según lo definido en docker-compose.yml.
    El puerto en el que Zap dentro del contenedor está escuchando siempre será 8080
  3. En tu navegador, usando FoxyProxy, configura un proxy a localhost:[zap-host-port]
    FoxyProxyDetails_Zap-min
    Opcional: configura el siguiente Patrón de URL en FoxyProxy: zap:8080/*
    FoxyProxyURLPattern_Zap-min
    Si usas el Patrón de URL, te permitirá dejar FoxyProxy activado, seleccionando "Use proxies based on their predefined patterns and priorities". De lo contrario, puedes simplemente seleccionar el proxy específico que hayas creado
  4. Navega a http://zap:8080/
    Tus solicitudes serán proxy a través del puerto de tu host y responderán a través del proceso zap en el contenedor especificado por el puerto del host en tu configuración de FoxyProxy

selenium-standalone

Registro de depuración

Para activar el registro de depuración para los contenedores Selenium que se ejecutan en el entorno local, descomenta el arreglo environment y el elemento SE_OPTS=-debug para chrome y/o firefox.

Los detalles a continuación para ver realmente los registros.

Ver el navegador en el contenedor Selenium

Lo siguiente describe lo que necesitarás hacer para ver el navegador dentro de cualquiera de los contenedores Selenium ejecutados desde este proyecto.

Configuración de docker-compose.yml:

  • Intercambia las imágenes de los contenedores con las imágenes -debug. Las imágenes -debug pueden estar comentadas, así que simplemente comenta la imagen habitual y descomenta la imagen con -debug agregado al final debería funcionar
  • Asegúrate de poder acceder al servidor VNC dentro del contenedor descomentando el rango de puertos 5900. Al especificar un rango como puerto externo (Ej: 5900-5901) podrás conectarte por VNC a más de un contenedor a la vez; en el ejemplo hemos permitido abrir dos sesiones concurrentemente. Si necesitas conectarte por VNC a más de dos, simplemente amplía el rango de puertos externos

Configuración del cliente VNC:

  1. Necesitarás un cliente VNC para abrir una conexión al servidor VNC dentro del contenedor. Hemos tenido éxito usando el Cliente de Escritorio Remoto Remmina en Linux Mint. Instala el complemento Remmina-plugin-vnc a través del Gestor de Software

  2. Ejecuta tu Cliente de Escritorio Remoto Remmina

  3. Crea nuevas entradas. Si tienes la intención de conectarte por VNC a un par de contenedores Selenium concurrentemente, puedes configurar cada uno como lo siguiente:

    ClaveValor
    Nombreseleniumstandalone_chrome_1
    ProtocoloVNC - Computación en Red Virtual
    En la pestaña Básico
    Servidor127.0.0.1:5900
    Contraseñasecret
    Profundidad de colorColor verdadero (24 bits) # Esta fue la única que funcionó para nosotros
    CalidadPobre (más rápida)

Más detalles en el github de SeleniumHQ

Ver el navegador dentro del contenedor Selenium

Una vez que los contenedores Selenium estén en ejecución (mantener docker stats ejecutándose en una terminal es conveniente para ver esto), puedes confirmar qué contenedor Selenium está usando qué puerto externo con docker container ls, ya que Docker no tiene idea de qué puertos has asignado a cuáles de tus entradas de cliente VNC, por lo que el nombre de una entrada de cliente VNC dada puede no coincidir necesariamente con el contenedor Selenium del mismo nombre. Por esta razón, es buena idea confirmar las asignaciones de puertos con docker container ls.

Para correlacionar qué contenedor Selenium se está utilizando para qué Sesión de Prueba cuando tienes múltiples Sesiones de Prueba, es posible que necesites revisar el registro del app-scanner en ejecución. También es posible que necesites asegurarte de que el app-scanner esté configurado en el nivel de registro debug para poder ver algunos o más de los siguientes mensajes de registro:

[app.parallel] cucCli process with PID "28" has been spawned for test session with Id "lowPrivUser"

[app.parallel] cucCli process with PID "34" has been spawned for test session with Id "adminUser"

[pid-28,world] seleniumContainerName is: seleniumstandalone_chrome_1

[pid-34,world] seleniumContainerName is: seleniumstandalone_chrome_2

En este ejemplo, tenemos dos Sesiones de Prueba configuradas en nuestra configuración de Usuario Build (Job). Una tiene un id de lowPrivUser y la otra tiene un id de adminUser. En este ejemplo, la Sesión de Prueba lowPrivUser tiene un proceso con PID 28 y la Sesión de Prueba adminUser tiene un proceso con PID 34.
En los dos mensajes de registro siguientes después de eso, vemos al correlacionar los PID que la Sesión de Prueba lowPrivUser está ejecutando un contenedor llamado seleniumstandalone_chrome_1 y la Sesión de Prueba adminUser está ejecutando un contenedor llamado seleniumstandalone_chrome_2.
No hay garantías sobre qué Sesión de Prueba ejecutará cuál de los contenedores seleniumstandalone_chrome_[n], así que si necesitas estar seguro, usa esta técnica de correlación.

Para conectarte por VNC a los contenedores Selenium, una vez que tengas Remmina ejecutándose, simplemente haz doble clic en una o más de las entradas VNC que creaste anteriormente y deberías poder ver el navegador siendo interactuado... siempre que los pasos de prueba de Cucumber en el app-scanner estén realmente en ese punto.
Por supuesto, puedes ralentizar tus pruebas, pausarlas, avanzar paso a paso con un depurador. Estos detalles están en la wiki de purpleteam en la página de flujo de trabajo

Redirigir y ver los registros del contenedor

Localmente puedes mantener docker stats ejecutándose si lo deseas para poder ver qué contenedores se están ejecutando, cuándo se inician y detienen. Esto también te dará sus nombres para los siguientes comandos.

Para ver los registros del contenedor de la Etapa Dos, sigue stdout (y stderr, ya que Docker combina stdout y stderr) de un contenedor:

root@kitploit:~
docker logs --follow [nombre-del-contenedor]

Si deseas enviar esos registros a un archivo también:

root@kitploit:~
docker logs --follow [nombre-del-contenedor] |tee output.log$(date '+%Y-%m-%d_%T')

Si deseas enviar esos registros a un archivo sin verlos a través de tu terminal:

root@kitploit:~
docker logs --follow [nombre-del-contenedor] > output.log$(date '+%Y-%m-%d_%T')
Descargar herramienta
ClaveValor
Nombreseleniumstandalone_chrome_2
ProtocoloVNC - Computación en Red Virtual
En la pestaña Básico
Servidor127.0.0.1:5901
Contraseñasecret
Profundidad de colorColor verdadero (24 bits) # Esta fue la única que funcionó para nosotros
CalidadPobre (más rápida)