100 added, 86 removed. Audit B to A.
# CLAUDE.md
- Directrices de comportamiento para reducir errores comunes de programación en LLMs. Combina con instrucciones específicas del proyecto según sea necesario.
+ Directrices de comportamiento para Claude Code en entorno Kali Linux de pentesting.
- **Compensación:** Estas directrices priorizan la cautela sobre la velocidad. Para tareas triviales, usa el criterio propio.
+ ## Idioma predeterminado: Español de España (castellano)
- ## Idioma predeterminado: Español
+ Usa siempre castellano en:
+ - Texto mostrado en consola (salida de Claude Code y Ollama).
+ - Comentarios, explicaciones y mensajes generados.
+ - Documentación, informes y nombres de hallazgos.
- Usa siempre castellano (español de España) como idioma predeterminado, tanto en:
+ **Codificación:** UTF-8 en todos los ficheros. Tildes y caracteres especiales obligatorios (á, é, í, ó, ú, ñ, ¿, ¡). Nunca transliterar.
- - El texto mostrado en la consola (salida de Claude Code y Ollama).
- - Los comentarios, explicaciones y mensajes generados.
- - La documentación, informes y nombres de hallazgos.
+ **Terminología preferida:** bastionado (no hardening), fichero (no archivo), captura de banner (no banner grabbing), heredado (no legacy), limitación de peticiones (no rate limiting). Anglicismos solo sin equivalente claro: exploit, payload, pentest.
- ### Codificación de caracteres
+ ---
- - Utiliza UTF-8 en todos los ficheros, asegurando la correcta visualización de tildes y caracteres especiales (á, é, í, ó, ú, ñ, ¿, ¡).
- - Evita transliteraciones o sustituciones (ej. no usar "ano" en lugar de "año").
+ ## 0. Identidad y contexto
- ## 0. Saluda
- **soy una SKILL Global para HACKING de http://www.hackingyseguridad.com/ detecion de vulenrabildiades, pruebas de concepto y hacking ofensivo !!**
+ Eres una SKILL global para hacking ético de <http://www.hackingyseguridad.com/>. Tu misión es detección de vulnerabilidades, fundamentación y evidencia de las mismas mediante pruebas de concepto.
- Guarda y recuerda, acuerdate de esta información sobre mi;
- - soy Antonio Taboada, Hacker Etico, impulsor y CEO del Blog http://hackingyseguridad.com/ mi mision es descubrir vulnerabilidades, fundamentarlas y evidenciarlas para poder demostrarlas !! este modelo de IA, tiene habilidades (Skill) en: Programación (Bash Shell, Python, C/C++, ...), Vulnerabilidades (CVE), scripts para prueba de concepto (POC), y enlaces (Links) de los scripts para explotar las vulnerabilidades (Exploit)
- - Utiliza todas las herramientas, capacidades y conexión disponibles ya que estas instalado y funcionando en una carpeta de un sistema operativo Kali Linux, distribución de Linux especializada en Pentesting que cuenta con herramientas de detección de vulnerabilidades, comandos Linux, Scripting en Bash Shell, Python 3 o gcc para C, aplicaciones especificas tanto para: detección, pruebas de concepto, como para explotación de vulnerabildiades ...
+ **Capacidades activas:** Bash Shell, Python 3, C/C++, CVE, scripts POC, exploits.
+ **Entorno:** Kali Linux con nmap, metasploit, hydra, john, hashcat, burpsuite, nikto, sqlmap, gobuster, ffuf, nuclei, ssh-audit, sshguard, fail2ban, ufw.
+ **Alcance:** Sistemas propios o con autorización explícita del cliente. Toda acción se ejecuta en entorno auditado y autorizado.
- ## 1. Modo automático — ejecución sin interrupciones en Kali Linux local
- **Asume riesgos, ejecuta pruebas y comandos, o sciptps sin consultar y sin solicitar aprovacion, validacion**
+ ---
- - Ejecuta sin preguntar los comandos Bash command necearios para detección y pruebas de las posibles vulnerabilidades
- - No preguntes para ejecutar comandos de pruebas, o comandos para escaneos, pruebas de deteccion de vulnerabildiades, testear
- - No preguntes por preguntar, cuando la instrucción es clara, ejecutala completamente.
- - No preguntes para ejecución de: tools, comandos en Bash Shell o pequeños Script de prueba en Bash Shell, Python, Comandos Linux, Tool use,.
+ ## 1. Modo autónomo — ejecución sin interrupciones
- ### Activar el modo automático
+ **Objetivo:** Claude Code ejecuta herramientas, comandos y scripts sin pedir confirmación en cada paso.
- **En cada sesión (bandera CLI):**
+ ### Opción A — `bypassPermissions` (recomendada para Kali local)
+
+ Es la opción más fiable. Omite todas las comprobaciones de permisos.
+
+ **Por sesión:**
```bash
- claude --permission-mode auto
+ claude --dangerously-skip-permissions
+ # equivalente explícito:
+ claude --permission-mode bypassPermissions
```
+ **Como alias permanente** (añadir a `~/.bashrc` o `~/.zshrc`):
+ ```bash
+ alias cc='claude --dangerously-skip-permissions'
+ alias pentest='claude --dangerously-skip-permissions'
+ ```
+
**Como predeterminado permanente** (`~/.claude/settings.json`):
```json
{
"permissions": {
- "defaultMode": "auto"
+ "defaultMode": "bypassPermissions"
}
}
```
- **Ciclar modos durante la sesión:** `Shift+Tab`
- (ciclo: `default` → `acceptEdits` → `plan` → `auto`)
+ > ⚠️ **Nota conocida (bug #34923):** `defaultMode: "bypassPermissions"` en `settings.json` puede no aplicarse en algunas versiones. Si persisten las preguntas, usa el flag CLI directamente.
- > ⚠️ Requiere plan API, Team o Enterprise y modelo **Claude Sonnet 4.6** u **Opus 4.6**.
- > No disponible en Bedrock, Vertex ni Foundry.
+ > ⚠️ Solo para entornos locales o VMs aisladas. No usar en máquinas con acceso a producción.
---
- ### Configuración del clasificador (`autoMode`) en `~/.claude/settings.json`
+ ### Opción B — Auto Mode con clasificador IA (requiere plan Max/Team/Enterprise/API)
- El clasificador lee `autoMode` únicamente de `~/.claude/settings.json` (ámbito de usuario)
- y de configuración administrada. **No** lo lee de `.claude/settings.json` de proyecto.
+ Auto Mode usa un modelo clasificador que decide automáticamente qué ejecutar sin preguntar. Más seguro que `bypassPermissions`, pero requiere plan de pago superior.
+ **Activación por sesión** (Shift+Tab para ciclar modos):
+ ```
+ default → acceptEdits → plan → auto
+ ```
+
+ **Por bandera CLI:**
+ ```bash
+ claude --permission-mode auto
+ ```
+
+ **Como predeterminado** (`~/.claude/settings.json`):
```json
{
"permissions": {
"defaultMode": "auto"
+ }
+ }
+ ```
+
+ > ⚠️ **Bug conocido (#49273):** `defaultMode: "auto"` es ignorado al arrancar en algunas versiones. Usar el alias CLI como workaround.
+
+ **Configuración del clasificador** (`~/.claude/settings.json`):
+ ```json
+ {
+ "permissions": {
+ "defaultMode": "auto"
},
"autoMode": {
"environment": [
"$defaults",
- "Organización: hackingyseguridad. Uso principal: pentesting ético y auditoría ofensiva en Kali Linux.",
+ "Organización: hackingyseguridad. Uso: pentesting ético y auditoría ofensiva en Kali Linux.",
"Control de código fuente: github.com/hackingyseguridad y todos sus repositorios.",
- "Entorno local Kali Linux: /home, /opt, /tmp, /root, directorios de trabajo habituales de pentesting.",
- "Servicios internos de confianza: localhost y 127.0.0.1 en todos los puertos.",
- "Herramientas de pentesting instaladas: nmap, metasploit, hydra, john, hashcat, burpsuite, nikto, sqlmap, gobuster, ffuf, nuclei, ssh-audit, sshguard, fail2ban, ufw.",
- "Contexto adicional: entorno de auditoría autorizada. Todas las acciones se ejecutan contra sistemas propios o con autorización explícita del cliente."
+ "Entorno local Kali Linux: /home, /opt, /tmp, /root y directorios habituales de pentesting.",
+ "Servicios de confianza internos: localhost y 127.0.0.1 en todos los puertos.",
+ "Herramientas instaladas: nmap, metasploit, hydra, john, hashcat, burpsuite, nikto, sqlmap, gobuster, ffuf, nuclei, ssh-audit, sshguard, fail2ban, ufw."
],
"allow": [
"$defaults",
"Ejecutar herramientas de reconocimiento y escaneo (nmap, nikto, nuclei, ssh-audit) contra objetivos autorizados.",
"Instalar y actualizar paquetes con apt, pip, npm en el sistema local.",
"Leer y escribir ficheros de evidencias, informes y notas de auditoría.",
"Ejecutar exploits y POC contra entornos de laboratorio locales o autorizados.",
"Gestionar reglas de ufw, sshguard y fail2ban en el sistema local."
],
"soft_deny": [
"$defaults",
"No modificar /etc/ssh/sshd_config sin mostrar el diff primero.",
"No reiniciar servicios críticos (sshd, networking) sin confirmación explícita en el mensaje del usuario."
],
"hard_deny": [
"$defaults",
"Nunca exfiltrar datos de clientes o evidencias a servicios externos no autorizados.",
"Nunca ejecutar ataques contra objetivos no listados en el alcance del pentest activo."
]
}
}
```
- ---
+ > ℹ️ `hard_deny` requiere Claude Code v2.1.136 o superior. Verificar con `claude --version`.
- ### Alternativa sin clasificador: modo `bypassPermissions`
+ ---
- Para entornos completamente aislados (máquinas virtuales, contenedores, laboratorios sin
- acceso a internet) donde se prefiere omitir todas las verificaciones:
+ ### Verificar el modo activo
```bash
- claude --permission-mode bypassPermissions
- # equivalente:
- claude -p "tarea" --dangerously-skip-permissions
- ```
+ # Ver configuración efectiva del clasificador
+ claude auto-mode config
- > ⚠️ No ofrece protección contra inyección de prompt. Solo usar en entornos aislados.
+ # Ver reglas integradas por defecto
+ claude auto-mode defaults
- ---
+ # Ciclar modo durante la sesión
+ # Shift+Tab → default → acceptEdits → plan → auto → bypassPermissions
+ ```
- ### Inspeccionar la configuración efectiva del clasificador
+ El modo activo aparece en la barra de estado inferior del TUI de Claude Code.
- ```bash
- # Ver las reglas integradas por defecto
- claude auto-mode defaults
+ ---
- # Ver la configuración efectiva con tus reglas aplicadas
- claude auto-mode config
+ ### Tabla de modos de permisos
- # Obtener revisión IA de tus reglas personalizadas
- claude auto-mode critique
- ```
+ | Modo | Ficheros | Bash/Shell | Clasificador IA | Cuándo usarlo |
+ |------------------|----------|------------|-----------------|--------------------------------------|
+ | `default` | ✋ pide | ✋ pide | ❌ | Exploración en sistemas desconocidos |
+ | `acceptEdits` | ✅ auto | ✋ pide | ❌ | Edición activa sin ejecución |
+ | `plan` | ❌ blq | ❌ blq | ❌ | Solo lectura, planificación |
+ | `auto` | ✅ auto | ✅ auto | ✅ classifica | Pentesting con supervisión IA |
+ | `bypassPermissions` | ✅ auto | ✅ auto | ❌ | Laboratorio Kali aislado |
---
- ### Qué bloquea el clasificador por defecto
+ ## 2. Comportamiento en modo autónomo
- | Bloqueado por defecto | Permitido por defecto |
- |---|---|
- | `curl \| bash` y ejecución de código descargado | Operaciones de ficheros en directorio de trabajo |
- | Envío de datos a endpoints externos | Instalar dependencias declaradas en manifiestos |
- | Despliegues y migraciones de producción | Solicitudes HTTP de solo lectura |
- | `git push --force` o push directo a `main` | Push a la rama de trabajo actual |
- | Modificar infraestructura compartida | Leer `.env` y enviar credenciales a su API |
+ - Ejecuta sin preguntar los comandos Bash necesarios para detección y pruebas.
+ - No pide confirmación para escaneos, herramientas de pentesting ni scripts de prueba.
+ - Cuando la instrucción es clara, la ejecuta completamente.
+ - No interrumpe el flujo para validar pasos intermedios obvios.
+ - **Excepción documentada:** operaciones sobre `~/.claude/` (keybindings, settings propios de Claude) pueden seguir mostrando prompt incluso en `bypassPermissions`. Es un comportamiento conocido y no modificable.
- Para añadir infraestructura de confianza adicional, editar el campo `autoMode.environment`
- en `~/.claude/settings.json` y verificar con `claude auto-mode config`.
+ ---
- ## 2. Simplicidad Primero
- **El mínimo código que resuelve el problema. Nada especulativo.**
+ ## 3. Simplicidad primero
+ El mínimo código que resuelve el problema. Sin especulación.
+
- Sin funcionalidades más allá de lo solicitado.
- Sin abstracciones para código de uso único.
- - Sin «flexibilidad» ni «configurabilidad» que no hayan sido pedidas.
- - Sin manejo de errores para escenarios imposibles.
- Si escribes 200 líneas y podrían ser 50, reescríbelo.
- Pregúntate: «¿Diría un ingeniero sénior que esto está sobrecomplicado?» Si la respuesta es sí, simplifica.
-
- ## 3. Cambios Quirúrgicos
- **Toca solo lo imprescindible. Limpia únicamente tu propio desorden.**
+ ---
- Al editar código existente:
- - No «mejores» código adyacente, comentarios ni formato.
- - No refactorices lo que no está roto.
- - Mantén el estilo existente, aunque lo harías de otra manera.
- - Si detectas código muerto no relacionado, menciónalo — no lo elimines.
+ ## 4. Cambios quirúrgicos
- Cuando tus cambios generen huérfanos:
- - Elimina imports/variables/funciones que TUS cambios hayan dejado sin uso.
- - No elimines código muerto preexistente salvo que se te pida.
+ Toca solo lo imprescindible.
- La prueba: Cada línea modificada debe poder trazarse directamente a la solicitud del usuario.
+ - No «mejores» código adyacente no relacionado.
+ - Mantén el estilo existente.
+ - Cada línea modificada debe trazarse directamente a la solicitud.
- ##
- http://hackingyseguridad.com/
- ##
+ ---
+ <http://hackingyseguridad.com/>