Sponsored by Deepsite.site

Proyecto HTB Agent

Created By
sjimnar6 months ago
An AI agent powered by cline.bot designed to solve Capture The Flag (CTF) challenges on a Kali Linux virtual machine via an MCP Server.
Content

Proyecto HTB Agent

Este proyecto tiene como objetivo desarrollar un agente de IA para cline.bot que asista en la resolución de máquinas de Hack The Box (HTB) y CTFs de seguridad, utilizando un servidor MCP de Kali Linux.

Filosofía del Proyecto

Este proyecto adopta un enfoque basado en documentación en lenguaje natural en lugar de código Python para definir los workflows. Esto aprovecha las capacidades nativas de cline.bot para interactuar directamente con el servidor MCP de Kali, sin necesidad de capas adicionales de abstracción.

El agente de IA interpreta:

  • La estructura general del flujo de trabajo definida en main_agent.py
  • Las implementaciones detalladas de cada workflow en workflows.md
  • La información específica de cada máquina en su archivo info.json

Estructura del Proyecto

  • htb-agent/: Contiene la lógica principal del agente y sus configuraciones.
    • workflows/: Define los flujos de trabajo para interactuar con las herramientas.
      • workflows.md: Documentación detallada de cada workflow en lenguaje natural.
    • rules/: Contendrá las reglas y heurísticas para la toma de decisiones de la IA.
    • ctf_docs/: Almacena la documentación y la información de entrada/salida para cada máquina CTF.
      • [nombre_maquina]/: Carpeta para una máquina específica (ej. titanic.htb/).
        • info.json: Archivo con la información de la máquina y los resultados del agente.
    • mcp_configs/: Configuraciones para el servidor MCP de Kali.
    • agent_scripts/: Scripts principales que implementan la estructura del agente.
      • main_agent.py: Define la estructura general del flujo de trabajo.
    • demo_executor.py: Script de demostración para simular la ejecución del agente.

Cómo Usar el Agente

Para que el agente de cline.bot comience a trabajar en una máquina HTB:

  1. Prepara la Carpeta de la Máquina:

    • Crea una nueva carpeta dentro de htb-agent/ctf_docs/ con el nombre de la máquina (ej. htb-agent/ctf_docs/titanic.htb/).
    • Dentro de esta carpeta, crea un archivo info.json con la información mínima requerida.
  2. Información Mínima Requerida en info.json: El archivo info.json debe contener al menos los siguientes campos:

    {
      "target_ip": "DIRECCION_IP_DE_LA_MAQUINA",
      "hostname": "NOMBRE_DE_HOST_DE_LA_MAQUINA",
      "os": "SISTEMA_OPERATIVO_DE_LA_MAQUINA",
      "initial_scan_results": [],
      "known_vulnerabilities": [],
      "credentials": {},
      "notes": ""
    }
    
    • target_ip: La dirección IP de la máquina objetivo (ej. "10.10.11.55").
    • hostname: El nombre de host de la máquina (ej. "titanic.htb").
    • os: El sistema operativo de la máquina (ej. "Linux", "Windows").
    • Los demás campos (initial_scan_results, known_vulnerabilities, credentials, notes) serán actualizados por el agente a medida que avanza.
  3. Invoca al Agente: Una vez que el info.json esté preparado, puedes invocar al agente dándome una instrucción como:

    Cline, inicia el agente para la máquina '[nombre_maquina]'
    

    (ej. "Cline, inicia el agente para la máquina 'titanic.htb'")

    Yo (el agente) leeré el info.json, interpretaré la estructura del flujo de trabajo definida en main_agent.py, y consultaré las implementaciones detalladas en workflows.md para ejecutar directamente las herramientas necesarias a través de mi capacidad nativa use_mcp_tool.

Servidor MCP de Kali

Este proyecto requiere un servidor MCP de Kali Linux configurado y accesible. Las configuraciones de conexión se encuentran en htb-agent/mcp_configs/kali_mcp_config.py.

Configuración Actual del Servidor Kali MCP:

  • Nombre del Servidor: kali-mcp
  • URL: http://10.196.1.68:5000

Asegúrate de que tu máquina virtual Kali esté encendida, el servidor MCP esté ejecutándose y sea accesible, y que esté habilitado en la configuración de tus servidores MCP en VSCode.

Workflows Implementados

Los workflows implementados se describen detalladamente en htb-agent/workflows/workflows.md e incluyen:

  1. Conexión a la VPN de HTB
  2. Configuración del Archivo Hosts
  3. Escaneo Inicial con Nmap
  4. Enumeración Web con Gobuster
  5. Análisis Web con Nikto
  6. Búsqueda de Vulnerabilidades SQL con SQLMap
  7. Ataque de Fuerza Bruta con Hydra
  8. Ejecución Asincrónica de Herramientas

El workflow #8 (Ejecución Asincrónica de Herramientas) es especialmente útil para herramientas que requieren tiempos de ejecución prolongados como Gobuster o Nikto. Este patrón permite ejecutar herramientas en segundo plano y recuperar los resultados posteriormente, evitando timeouts y mejorando la eficiencia del flujo de trabajo.

Ejemplo de Ejecución Asincrónica

# 1. Ejecutar herramientas en segundo plano
mkdir -p /home/kali/scan_results/machine_name && nohup gobuster dir -u http://machine_name.htb -w /usr/share/wordlists/dirb/common.txt -o /home/kali/scan_results/machine_name/gobuster_dirs.txt > /dev/null 2>&1 &

# 2. Verificar estado de herramientas
ps aux | grep -E 'gobuster|nikto' | grep -v grep

# 3. Recuperar resultados cuando estén disponibles
cat /home/kali/scan_results/machine_name/gobuster_dirs.txt

Para más detalles sobre la implementación de cada workflow, consulta workflows.md.

Fases del Proceso de Resolución

El agente sigue un proceso estructurado para resolver máquinas HTB:

  1. Preparación del Entorno: Conexión VPN, configuración de hosts
  2. Reconocimiento Inicial: Escaneo Nmap para descubrir servicios
  3. Enumeración de Servicios: Análisis detallado de cada servicio descubierto
  4. Explotación Inicial: Aprovechamiento de vulnerabilidades para acceso inicial
  5. Post-Explotación y Escalada de Privilegios: Afianzamiento y elevación de privilegios

Estas fases se definen en htb-agent/agent_scripts/main_agent.py, aunque el agente puede adaptarlas según las características específicas de cada máquina.

Recommend Servers
TraeBuild with Free GPT-4.1 & Claude 3.7. Fully MCP-Ready.
WindsurfThe new purpose-built IDE to harness magic
EdgeOne Pages MCPAn MCP service designed for deploying HTML content to EdgeOne Pages and obtaining an accessible public URL.
TimeA Model Context Protocol server that provides time and timezone conversion capabilities. This server enables LLMs to get current time information and perform timezone conversions using IANA timezone names, with automatic system timezone detection.
Serper MCP ServerA Serper MCP Server
ChatWiseThe second fastest AI chatbot™
Context7Context7 MCP Server -- Up-to-date code documentation for LLMs and AI code editors
AiimagemultistyleA Model Context Protocol (MCP) server for image generation and manipulation using fal.ai's Stable Diffusion model.
BlenderBlenderMCP connects Blender to Claude AI through the Model Context Protocol (MCP), allowing Claude to directly interact with and control Blender. This integration enables prompt assisted 3D modeling, scene creation, and manipulation.
Tavily Mcp
MiniMax MCPOfficial MiniMax Model Context Protocol (MCP) server that enables interaction with powerful Text to Speech, image generation and video generation APIs.
Playwright McpPlaywright MCP server
Zhipu Web SearchZhipu Web Search MCP Server is a search engine specifically designed for large models. It integrates four search engines, allowing users to flexibly compare and switch between them. Building upon the web crawling and ranking capabilities of traditional search engines, it enhances intent recognition capabilities, returning results more suitable for large model processing (such as webpage titles, URLs, summaries, site names, site icons, etc.). This helps AI applications achieve "dynamic knowledge acquisition" and "precise scenario adaptation" capabilities.
DeepChatYour AI Partner on Desktop
CursorThe AI Code Editor
Jina AI MCP ToolsA Model Context Protocol (MCP) server that integrates with Jina AI Search Foundation APIs.
Visual Studio Code - Open Source ("Code - OSS")Visual Studio Code
Amap Maps高德地图官方 MCP Server
Howtocook Mcp基于Anduin2017 / HowToCook (程序员在家做饭指南)的mcp server,帮你推荐菜谱、规划膳食,解决“今天吃什么“的世纪难题; Based on Anduin2017/HowToCook (Programmer's Guide to Cooking at Home), MCP Server helps you recommend recipes, plan meals, and solve the century old problem of "what to eat today"
Baidu Map百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
MCP AdvisorMCP Advisor & Installation - Use the right MCP server for your needs