Tiempo de lectura: 6 minutos
Imagen: Mario Hinojosa Freire

Claude Code como agente de hacking autónomo: guía de instalación y configuración

Uno de los productos más útiles de Anthropic es Claude Code. Esta tecnología se aprovecha del protocolo open-source desarrollado por Anthropic, MCP, para integrarse en el IDE o la terminal.

En este artículo revisaremos paso a paso como instalar Claude Code en una máquina, darle control total del sistema operativo y utilizarlo como un actor autónomo para resolver un CTF

Cómo funciona

MCP, o Model Context Protocol, es un protocolo desarrollado por Anthropic que habilita a los LLMs a interactuar con distintas herramientas, aumentando drásticamente sus capacidades.

Esto es la diferencia entre un modelo de lenguaje y un agente. Un modelo de lenguaje recibe texto, lo procesa y emite un resultado. Un agente tiene la capacidad de comunicarse con sistemas externos y mejorar sus resultados gracias a esas capacidades adicionales. Además de otros avances en materia de IA como la memoria o el planeamiento.

Imagen: Mario Hinojosa Freire

Claude Code se puede instalar en la terminal, lo cual le da acceso controlado a las herramientas disponibles a través de la terminal. Si se instala en una distribución de hacking como Kali Linux y se le dan permisos, puede utilizar todas las herramientas de hacking disponibles en el sistema.

De forma autónoma, Claude puede utilizar herramientas de red, o incluso integrarse con extensiones del navegador para «ver» lo que sucede, e ir desarrollando una estrategia para hackear una web conforme va haciendo descubrimientos.

La información que recibe del navegador, proxy o peticiones web, es utilizada para realizar una cadena de pensamiento y establecer un plan. Esto se suma a la memoria, que permite al modelo ser consciente de sus acciones previas y el contexto en el que se encuentra.

Gracias a todo lo anterior y al protocolo MCP, el agente se comunica con los servidores MCP para realizar acciones, como escanear la red o explotar una vulnerabilidad, y recibir información resultante de esa acción a través de los sensores.

Imagen: Mario Hinojosa Freire

Instalando Claude Code

Como el objetivo es lograr un entorno de hacking autónomo, la instalación se hará en Linux, así como la configuración.

Instalar Claude Code es extremadamente sencillo:

  1. Visitar la página oficial de Claude, iniciar sesión o crear una cuenta.
  2. Ir a https://claude.ai/downloads, buscar la sección «Claude Code» y dentro, clicar «Terminal»
  3. Copiar el comando curl -fsSL https://claude.ai/install.sh | bash, pegarlo en una terminal y darle a enter.
    • Para usar Claude Code hace falta estar suscrito al plan premium, pero hay alternativas con plan gratuito (a día 22/05/26) como Google Gemini CLI.
    • Hay comandos alternativos para Windows.
  4. Configurar al gusto la interfaz y autenticarse

Ahora, el agente de Claude está instalado el sistema y se puede acceder al chat con el comando claude. Sin embargo, antes de empezar a hackear, hay que configurar el entorno.

Configurando el entorno

Si vas a seguir los pasos asegúrate de hacerlo dentro de una máquina virtual o contenedor cuyo contenido no sea importante

Lo primero es crear una carpeta para el proyecto, una vez dentro, son esenciales los archivos CLAUDE.md, el directorio .claude/ y dentro del mismo el archivo settings.json.

Imagen: Mario Hinojosa Freire

CLAUDE.md es un archivo que el modelo carga en su contexto en cada sesión. Cada vez que inicias Claude, este documento se carga en su contexto. Es algo así como un prompt permanente. Para su contenido en este caso concreto, basta con algo simple (es buena práctica mantener el archivo lo más breve posible).

# CLAUDE.md

## Instrucciones

Eres un agente especializado en hacking

## Normas

- Tu propósito es resolver CTFs
- Se te proporcionará una IP y debes vulnerar la página y acceder a la máquina objetivo
- Una vez dentro debes escalar privilegios y extraer las flags
- Debes documentar todo tu razonamiento en un archivo de texto en formato markdown
  - Esto incluye tanto los intentos fallidos como exitosos, documenta todo tu proceso

## Scope

Tienes a tu disposición **todas** las herramientas del sistema y libertad total para tomar acciones no destructivas con la propia máquina

### Specs

- Linux version 6.19.11+kali-amd64
- SHELL=/usr/bin/zsh

Se le indican las instrucciones generales, una serie de normas y requisitos y el alcance de las pruebas. Además, se le facilita el OS desde el que va a hackear, para que sea consciente de las herramientas a su disposición.

Refinando los ajustes

Luego, se configurarán los ajustes, para este caso, como Claude va a operar en una máquina virtual sin información sensible, se le darán unos permisos muy amplios.

Se define el modo por defecto «auto» (sin confirmación del usuario), se dan permisos para ejecutar comandos, leer, editar, grepear y buscar en la web, aunque se le impide borrar de forma forzada y recursiva.

{
  "permissions": {
    "defaultMode": "auto",

    "allow": ["Bash", "Read", "Edit", "Grep", "Glob", "WebFetch"],
    "deny": ["Bash(rm -rf *)"]
  },
  "model": "opus",
  "outputStyle": "Explanatory"
}

Añadiendo un servidor MCP

El próximo paso es instalar un servidor MCP. Esto le da una interfaz a Claude para usar mejor las herramientas de pentesting, para ello, se instala el contenedor del servidor escogido.

docker pull ramgameer/pentest-mcp:latest

Entonces, se crea el archivo .mcp.json, con el siguiente contenido:

{
  "mcpServers": {
    "pentestMCP": {
      "command": "docker",
      "args": ["run", "--rm", "-i", "ramgameer/pentest-mcp:latest"]
    }
  }
}

Creando un subagente

A continuación, se configura un subagente, que el agente principal llamará cuando se cumplan ciertos criterios para completar la tarea en paralelo y facilitar los resultados al agente principal.

Al hacer esto hay que tener en cuenta que el consumo de tokens se dispara

Se crea un .md con el nombre deseado para el subagente en el directorio /agents con el siguiente contenido

agents/nmap-scanner.md

---
name: nmap-scanner
description: Realiza un escaneo de puertos con la herramienta Nmap, interpreta los resultados e identifica potenciales vulnerabilidades.
tools: Read, Bash(nmap)
---

Debes identificar con precisión los puertos, servicios y versiones expuestos.

1. Identifica los puertos abiertos, los servicios que corren en ellos y sus versiones
2. Determina en base a la información si algún servicio es vulnerable
3. Aumenta la agresividad del escaneo si los resultados no son concluyentes
4. Devuelve los resultados al agente principal

El directorio queda así.

Imagen: Mario Hinojosa Freire

Probando la herramienta

Para probar la herramienta se escoge un laboratorio de The Hackers Labs que había sido previamente resuelto y documentado. Como la idea es darle control total a Claude, se correrá la herramienta como root (sudo claude o sudo su, y luego claude). No es recomendable, pero hay muchas herramientas limitadas o que no funcionan sin privilegios. Hay alternativas, como darle la contraseña de sudo a Claude, pero como se trata de una máquina virtual se ha optado por darle privilegios.

Se descarga, importa e inicia la máquina, y cuando está operativa en la red inicia la prueba. El prompt es muy sencillo.

❯ El objetivo tiene la siguiente IP: 192.168.1.43. Consigue acceder al equipo y resolver el CTF.

En 12 minutos, $2.98 y 26.3k output tokens, Claude resuelve el laboratorio. Tanto el writeup que ha generado, como la conversación completa y los archivos de configuración se pueden encontrar en este repositorio.

El writeup está redactado por fases y bien escrito. Inicia con un reconocimiento, averiguando el OS mediante un ping y escaneando puertos con nmap.

Imagen: Mario Hinojosa Freire

Continúa fuzzeando directorios y encuentra con éxito una vulnerabilidad de subida insegura de archivos en la funcionalidad de registros. Identifica que utilizando la extensión .phtml puede subir código en PHP. Entonces sube una revshell y gana acceso a la máquina.

Imagen: Mario Hinojosa Freire

Encuentra la forma de leer la clave ssh de otro usuario gracias a un bit SUID en el binario base64. La extrae y rompe, y entra en la máquina vía SSH como el usuario james.

Por último, encuentra la manera de leer la flag de root sin escalar privilegios.

Imagen: Mario Hinojosa Freire

En definitiva

Esto es tan sólo un ejemplo simple. La personalización permitida por Claude es impresionante, y se le pueden dar capacidades adicionales muchísimo mayores. Para ello se recomienda leer la documentación en profundidad. Desde luego la efectividad de esta herramienta en tareas que van desde sencillas hasta exigentes es altísima.

Este laboratorio dista mucho de una infraestructura real y es sencillo para alguien experimentado, sin embargo, las capacidades del modelo van mucho más allá. «Claude» y «hackeado» cada vez van a aparecer en más titulares juntos, y entender es clave tanto para usar con criterio como para saber defender.