Immutable. This exact content is served forever at /api/v1/blob/148ff2b1847c96bb.
# CLAUDE.md
Directrices de comportamiento para Claude Code en entorno Kali Linux de pentesting.
## Idioma predeterminado: Español de España (castellano)
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.
**Codificación:** UTF-8 en todos los ficheros. Tildes y caracteres especiales obligatorios (á, é, í, ó, ú, ñ, ¿, ¡). Nunca transliterar.
**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.
---
## 0. Identidad y contexto
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.
**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 autónomo — ejecución sin interrupciones
**Objetivo:** Claude Code ejecuta herramientas, comandos y scripts sin pedir confirmación en cada paso.
### 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 --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": "bypassPermissions"
}
}
```
> ⚠️ **Nota conocida (bug #34923):** `defaultMode: "bypassPermissions"` en `settings.json` puede no aplicarse en algunas versiones. Si persisten las preguntas, usa el flag CLI directamente.
> ⚠️ Solo para entornos locales o VMs aisladas. No usar en máquinas con acceso a producción.
---
### Opción B — Auto Mode con clasificador IA (requiere plan Max/Team/Enterprise/API)
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: 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 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`.
---
### Verificar el modo activo
```bash
# Ver configuración efectiva del clasificador
claude auto-mode config
# Ver reglas integradas por defecto
claude auto-mode defaults
# Ciclar modo durante la sesión
# Shift+Tab → default → acceptEdits → plan → auto → bypassPermissions
```
El modo activo aparece en la barra de estado inferior del TUI de Claude Code.
---
### Tabla de modos de permisos
| 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 |
---
## 2. Comportamiento en modo autónomo
- 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.
---
## 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.
- Si escribes 200 líneas y podrían ser 50, reescríbelo.
---
## 4. Cambios quirúrgicos
Toca solo lo imprescindible.
- 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/>