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
Manipulating-Web-Agents | Kitploit
Herramientas/GitHubGitHub/sej2020/manipulating-web-agents
ExplotaciónSeguridad WebPapers e InvestigaciónAprendizaje y EducaciónSeguridad de IAAtaque Adversario
GitHubsej2020/manipulating-web-agents

Manipulating-Web-Agents

Ver Repositorio
63hace 1 añoAú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

Manipulación de agentes web autónomos basados en LLM mediante ataques de inyección indirecta de prompts

Con la ubicuidad de las aplicaciones integradas con LLM, investigar los posibles riesgos de seguridad es crucial. Una de las vulnerabilidades más significativas de estos sistemas es su susceptibilidad a ataques adversarios mediante inyección indirecta de prompts. En este repositorio, mostramos un método mediante el cual un actor malicioso podría generar un trigger universal que le permita controlar las acciones de un agente remoto de navegación web derivado de un LLM. Esperamos que presentar esta información ayude a los profesionales a tomar conciencia de su posible vulnerabilidad e inspire a los investigadores a desarrollar salvaguardas contra ataques de esta variedad.

Configuración

Después de clonar este repositorio, los siguientes comandos son necesarios para configurar la infraestructura de navegación web de Browser Gym:

root@kitploit:~
conda create -n browser-gym
conda init
conda activate browser-gym
pip install browsergym-core
playwright install chromium
pip install transformers

Los detalles pueden variar según el entorno informático.

Si estás interesado en ejecutar un procedimiento de optimización de trigger universal, tendrás que generar un conjunto de datos de sitios web y objetivos de navegación web. Esto se puede lograr con los comandos proporcionados por el archivo src/actions/mask_dataset.py. También necesitarás crear algunas claves de API y almacenarlas en un entorno seguro.

  1. Ejecuta pip install python-dotenv y luego touch .env
  2. Guarda una clave de API de OpenAI en el archivo, junto con la información para un Google Programmable Search Engine. Sigue las instrucciones de la primera sección de este enlace para configurar tu motor de búsqueda. La sintaxis de tu archivo '.env' debe ser la siguiente:
    root@kitploit:~
    OPENAI_API_KEY=<key>
    GOOGLE_API_KEY=<key>
    GOOGLE_ENGINE_NAME=<name>
    GOOGLE_CX=<engine ID>
    
  3. Ejecuta python -m src.dataset.actions.make_dataset get_webs hasta que tengas un número adecuado de archivos json de sitios web en tu carpeta de datos.
  4. Ejecuta python -m src.dataset.actions.make_dataset set_goals para filtrar los json de los sitios web que están bloqueados, reequilibrar las clases de sitios y enviar un trabajo por lotes a la API de OpenAI para generar objetos de objetivo para los sitios web restantes. Debes añadir la bandera --n_batch_splits <int> si tienes más de 10 000 json de sitios web.
  5. Al ejecutar el comando set_goals, tus IDs de lote se imprimirán en la terminal. Ejecuta python -m src.dataset.actions.make_dataset get_goals --batch_ids <batch ID 1> <batch ID 2> ... para escribir los objetos de objetivo en sus correspondientes json de sitios web si los trabajos por lotes están completos. Un trabajo por lotes puede tardar 24 horas en completarse en OpenAI, por lo que es posible que tengas que esperar un día antes de que este comando se ejecute correctamente.

Ejecutando la Demo 1

La Demo 1 muestra cómo un atacante podría alojar un sitio web con malware incrustado en un enlace y obligar a un agente de navegación web a hacer clic en ese enlace cada vez. Un json de sitio web y un trigger para controlar la salida del agente web se almacenan en las carpetas data/ y triggers/, respectivamente.

Control

Ejecutar python -m src.attack.actions.run_demo lanzará un navegador con una página web de muestra y una interfaz de chat de LLM. El chat de LLM te pedirá que proporciones un objetivo para el agente de navegación web. Escribe una tarea como "Busca un vuelo a Chicago" en la ventana. El agente completará la tarea en la pestaña con la página web de muestra, como se espera.

Ataque

Ejecuta python -m src.attack.actions.run_demo --trigger_json triggers/zzz_travel_ad_demo_1_trigger_uni_secondary.json para atacar al agente de navegación web en esta tarea. Se lanzará un navegador con la página web de muestra y la interfaz de chat de LLM como antes, y como antes, escribe algún objetivo en la ventana de chat. El proceso será idéntico al del control, con la única diferencia de que el trigger del archivo zzz_travel_ad_demo_1_trigger_uni_secondary.json se insertará en un enlace oculto del sitio web. Deberías ver que esta vez el agente web ignora la instrucción que proporcionaste y hace clic en el anuncio del pie de página.

Optimizando tu propio trigger adversario

Para optimizar un trigger adversario que controle la salida de un agente de navegación web en un sitio web de tu elección, puedes usar el archivo find_narrow_trigger.py. Una vez que hayas generado un json de sitio web con la utilidad de creación de conjuntos de datos, puedes insertar el texto '{optim_str}' en algún lugar del ax tree. Esto le indica a la librería nanogcg que usaremos que deseas insertar el trigger en ese lugar del sitio web.

  1. Ejecuta pip install nanogcg
  2. Acepta los términos de uso de los modelos Llama/Mistral en Hugging Face y crea un token de acceso en la configuración.
  3. Inserta '{optim_str}' en el objeto ax_tree del json de datos del sitio web de tu elección.
  4. Ejecuta python -m src.attack.actions.find_narrow_trigger. Las opciones y banderas de esta utilidad de línea de comandos son las siguientes:
root@kitploit:~
-h, --help            show this help message and exit
--json JSON           File and path for the JSON file to find a trigger for.
--target TARGET       The desired output when triggered.
--device DEVICE       Device to run the model on.
--trigger_length TRIGGER_LENGTH
--include_target, --no-include_target
--loss_fn {cw,mm,ce}
--search_width SEARCH_WIDTH
--top_k TOP_K
--model {mistral-7B,mistral-24B,llama2,llama3}
                    The model to use for generation.
--dtype DTYPE         Data type to use for the model.

Para que el ataque funcione usando nuestro entorno, el objetivo de tu optimización debe ser una función en el espacio de acciones de navegación web de Browser Gym. Consulta el archivo action_space.txt.

El trigger optimizado se guardará en un archivo json en la carpeta triggers/, con el nombre del archivo coincidiendo con el json de datos del sitio web correspondiente. Puedes usar este trigger para ejecutar tu propia demo con la utilidad python -m src.attack.actions.run_demo y las banderas adecuadas.

Descargar herramienta