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
StepJack — Framework de evaluación comparativa para evaluar agentes de IA de uso de computadora frente a inyección indirecta de prompts en múltiples pasos, con descomposición automática de objetivos adversariales y entornos de prueba en sandbox de AWS. | Kitploit
Herramientas/GitHubGitHub/borealisai/stepjack
Análisis Dinámico (Sandboxing)Virtualización de SeguridadRed TeamingSeguridad de IAAtaque Adversario
GitHubborealisai/stepjack

StepJack

Framework de evaluación comparativa para evaluar agentes de IA de uso de computadora frente a inyección indirecta de prompts en múltiples pasos, con descomposición automática de objetivos adversariales y entornos de prueba en sandbox de AWS.

Ver Repositorio
21hace 3 mesesAú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

StepJack: Evaluación de la seguridad de agentes de uso de computadora contra la inyección indirecta de prompts en múltiples pasos

Configuración

1. Configuración del entorno de Python

Primero, instala todas las dependencias y asegúrate de que estás ejecutando Python 3.10.

root@kitploit:~
conda create -n stepjack python=3.10
conda activate stepjack

pip install -r requirements.txt

2. Configuración del entorno sandbox

Utilizamos el entorno de AWS proporcionado por RedTeamCUA.

AWS

  1. Configura NETWORK_INTERFACE_MAP:

    Configura NETWORK_INTERFACE_MAP en aws_config.py según tus propias instancias de AWS.

  2. Configura tu grupo de seguridad:

    Es importante configurar un grupo de seguridad que permita el acceso legítimo a tus instancias alojadas mientras bloquea los intentos de acceso no autorizados. Esto es crucial porque la AMI, de forma predeterminada, usa solo autenticación básica basada en contraseña, que es relativamente fácil de comprometer.

    Tu máquina local accederá a los servicios alojados en AWS a través de conexiones HTTP/TCP. Por lo tanto, debes permitir explícitamente el acceso a los siguientes puertos: 8092, 6379, 9999, 5000, 9222, 8091, 2999 y 3000, que son utilizados por WebArena o TheAgentCompany.

    Además, usamos SSH para modificar directamente la base de datos subyacente con el fin de simular escenarios de inyección. Por ello, el acceso SSH desde tu dirección IP local también debe estar permitido en la configuración del grupo de seguridad.

  3. Configura tus credenciales de AWS usando aws configure, que te solicitará:

    • Clave de acceso de AWS (ID)
    • Clave de acceso secreta de AWS
    • Nombre de región predeterminada (opcional, puedes pulsar Intro)

Experimento

scripts/run_gpt54_2step.sh muestra un ejemplo de cómo ejecutar GPT-5.4 CUA en StepJack.

  1. Establece las variables de entorno

    Claves de API de CUA

    root@kitploit:~
    # For GPT 
    unset OPENAI_BASE_URL
    export OPENAI_API_KEY="sk-proj-XXXX"
    
    # For Kimi
    export KIMI_API_KEY='sk-XXXX'
    
    # For Qwen
    export OPENAI_BASE_URL="https://dashscope-us.aliyuncs.com/compatible-mode/v1"
    export OPENAI_API_KEY="sk-XXXX"
    
    # For Claude
    export ANTHROPIC_API_KEY='sk-XXXX'
    

    Credenciales de AWS

    root@kitploit:~
    export AWS_REGION='XX'
    export AWS_ACCESS_KEY='XX'
    export AWS_SECRET_KEY='XX'
    
  2. Ejecuta los experimentos

    root@kitploit:~
    # For GPT
    python run_gpt54_multienv.py \
       --observation_type screenshot \
       --agent_type GPT54Agent \
       --headless \
       --model gpt-5.4-mini-2026-03-17 \
       --result_dir ./results_gpt54 \
       --test_all_meta_path "./dataset/{subset}/{platform_instruction}/test_{k}_step.json" \
       --test_config_base_dir "./dataset/{subset}/{platform_instruction}"  \
       --max_steps {15*k} \
       --sleep_after_execution 4 \
       --provider_name aws \
       --num_envs 12 \
       --aws_ami {reddit | agentcompany}
    
    # For Kimi
    python run_kimi_multienv.py \
       --observation_type screenshot \
       --agent_type KimiAgent \
       --headless \
       --model Kimi-K2.5 \
       --result_dir ./results_kimi \
       --test_all_meta_path "./dataset/{subset}/{platform_instruction}/test_{k}_step.json" \
       --test_config_base_dir "./dataset/{subset}/{platform_instruction}"  \
       --max_steps {15*k} \
       --sleep_after_execution 4 \
       --provider_name aws \
       --num_envs 12 \
       --aws_ami {reddit | agentcompany}
    
    # For Qwen
    python run_qwen35vl_multienv.py \
       --observation_type screenshot \
       --agent_type Qwen35VLAgent \
       --headless \
       --model qwen3.5-plus-2026-02-15 \
       --coord relative \
       --enable_thinking \
       --result_dir ./results_qwen \
       --test_all_meta_path "./dataset/{subset}/{platform_instruction}/test_{k}_step.json" \
       --test_config_base_dir "./dataset/{subset}/{platform_instruction}"  \
       --max_steps {15*k} \
       --sleep_after_execution 4 \
       --provider_name aws \
       --num_envs 12 \
       --aws_ami {reddit | agentcompany}
    
    # For Claude
    python run_claude_multienv.py \
       --observation_type screenshot \
       --action_space pyautogui \
       --agent_type AnthropicAgent \
       --api_provider anthropic \
       --headless \
       --model {claude-sonnet-4-6 | claude-haiku-4-5} \
       --result_dir ./results_claude \
       --test_all_meta_path "./dataset/{subset}/{platform_instruction}/test_{k}_step.json" \
       --test_config_base_dir "./dataset/{subset}/{platform_instruction}"  \
       --max_steps {15*k} \
       --sleep_after_execution 4 \
       --provider_name aws \
       --num_envs 12 \
       --aws_ami {reddit | agentcompany}
    

Pipeline de descomposición automática y adición de nuevos objetivos adversariales

El código del pipeline de descomposición automática está en auto_decomp/.

  1. cd auto_decomp. Añade nuevos objetivos adversariales para descomponer en adv_goals.py.
  2. Ejecuta python iterative_refinement.py -k {k} para cada k \in \{2, 3\}. Salida: ir/goal_*_k{k}_N20_K3_all.json, que contiene los resultados de la Etapa 1.
  3. Ejecuta python selected_examples/select_examples.py. Salida: selected_examples/selected_examples.json, que selecciona los 10 mejores ejemplos de la Etapa 1.
  4. Para la Etapa 2, escribe ejemplos de prueba json para la verificación CUA. Luego, registra el número de pasos utilizado para seleccionar el resultado final de descomposición.

Agradecimientos

StepJack se basa en RedTeamCUA (Liao et al., 2025; arXiv:2505.21936), que a su vez se deriva de OSWorld (XLANG NLP Lab, 2024). Ambas fuentes upstream están licenciadas bajo Apache-2.0.

Algunos directorios de datos de StepJack no llevan cabecera por archivo porque contienen archivos binarios o fixtures que no son código fuente. Su linaje se registra aquí para atribución:

  • adv/TheAgentCompany_OwnCloud/file_to_upload/ — copiado de RedTeamCUA (adv/TheAgentCompany_OwnCloud/file_to_upload/), originalmente licenciado bajo Apache-2.0.
  • adv/upload_file/ — contiene dos fixtures de claves SSH (system/authorized_keys, system/id_rsa) utilizados como cargas de subida por las configuraciones de tareas del dataset. Curado por StepJack (los valores son cadenas de marcador de posición, no claves reales). Publicado bajo la licencia que se encuentra en el archivo LICENSE en el directorio raíz de este árbol de código fuente.
  • adv/upload_file_dir/ — original de StepJack. No está presente en RedTeamCUA. Publicado bajo la licencia que se encuentra en el archivo LICENSE en el directorio raíz de este árbol de código fuente.
  • dataset/ — adaptado de evaluation_examples/ de RedTeamCUA con modificaciones sustanciales. Los ejemplos de evaluación de RedTeamCUA se publican bajo según su . Las modificaciones y adiciones de StepJack a las configuraciones de tareas se publican bajo la licencia que se encuentra en el archivo en el directorio raíz de este árbol de código fuente.
Descargar herramienta

Argumentos:

  • {subset}: Puede ser single_step (k=1), w_urgent (Urgente = Y), wo_urgent (Sin urgente = N).
  • {platform_instruction}: Puede ser forum, forum_follow, owncloud, owncloud_follow. Corresponden a 2 plataformas y 2 tipos de instrucciones de usuario.
  • {k}, {15*k}: El número de pasos, $k \in {1,2,3}$. Combinaciones válidas de (subset, k): single_step solo con k=1; w_urgent y wo_urgent solo con k \in \{2,3\}.
  • {reddit | agentcompany}: AMI de AWS a lanzar. Debe ser reddit para la plataforma forum o agentcompany para la plataforma owncloud.
CC-BY-4.0
croissant_metadata.json
LICENSE
  • desktop_env/ — copiado/adaptado del desktop_env/ de RedTeamCUA, derivado a su vez de OSWorld; ambas fuentes upstream están licenciadas bajo Apache-2.0. Las cabeceras por archivo de código fuente (.py / .sh / .yml / .service / .txt) registran el linaje específico de cada archivo (copia o modificado por StepJack). Los archivos de documentación complementarios (p. ej., README.md, DOCKER_GUIDELINE.md, INSTALL_*.md) se copian de RedTeamCUA.