Consola de triaje DFIR para hosts Windows que encadena la recolección de artefactos, líneas de tiempo correlacionadas con Sigma, escaneos YARA, inspección de sockets y cuentas, enriquecimiento de indicadores y una puntuación de riesgo calibrada.
Apunta Kage a un host Windows sospechoso y ejecuta todo el triaje en una sola cadena: CyLR recopila los artefactos, Hayabusa correlaciona los registros de eventos contra Sigma, THOR Lite escanea en busca de coincidencias YARA, VirusTotal y AbuseIPDB cualifican los indicadores, y el proveedor de IA que elijas redacta el informe. Cada etapa se transmite en vivo, sella lo que produjo y puede reproducirse por sí sola.```bash pip install -r requirements.txt python -m dfirconsole # → http://127.0.0.1:8787
<p align="center">
<img src="https://assets.kitploit.com/production/public/readmes/55114/7d59d87cd6f41f9d8dc66e4da743e6c6728a7156a06f9de9bdc18cdfd1fbb5cd/de22d9f23b6327fc806bbd1febb370cdca42f33eff3718eca9a0864eeb7d87e2-display-v1.webp" alt="Kage overview" width="100%">
<br><sub>La vista general: once pasos sellados a la izquierda, el registro de ejecución
transmitiéndose y la puntuación desglosada en sus cuatro componentes.</sub>
</p>
---
## 📑 Tabla de contenidos
- [Instalación](#-installation)
- [Ejecutar tu primer escaneo](#-running-your-first-scan)
- [Añadir THOR Lite manualmente](#-adding-thor-lite-manually)
- [La cadena](#-the-chain)
- [Puntuación de riesgo](#-risk-score)
- [Alertas](#-alerts)
- [Contexto del sistema](#-system-context)
- [Registro y auditoría](#-logging--audit)
- [YARA](#-yara)
- [Sellos](#-seals)
- [Vistas](#-views)
- [Configuración](#-configuration)
- [Referencia de la CLI](#-cli-reference)
- [Solución de problemas](#-troubleshooting)
- [Versión para Linux](#-linux-version--in-progress)
- [Créditos](#-credits)
---
## 📦 Instalación
### Requisitos
| | |
|---|---|
| SO | Windows 10 / 11 o Windows Server |
| Python | 3.10+ desde [python.org](https://www.python.org/downloads/), **instalado para todos los usuarios** |
| Permisos | **Administrador** |
| Disco | unos pocos GB libres para la recolección |
### Instalar```powershell
# 1. Extract Kage anywhere — Desktop, C:\Kage, a USB stick, it does not matter
cd C:\Kage
# 2. Install the dependencies
pip install -r requirements.txt
# 3. Check the environment before touching a host
python preflight.py
preflight.py informa qué está listo y qué falta.```
Workspace : C:\Kage
System : Windows 11
Python : 3.12.3
Dependencies [ok] module fastapi [ok] module uvicorn [ok] module httpx
Rights and disk space [ok] console running as administrator [ok] free space: 84.2 GB
Tooling [!] CyLR in C:\Kage\tools\cylr → the "Locate the tooling" step downloads it [!] THOR Lite → optional step — it will simply be skipped
### Iniciar — como Administrador```powershell
python -m dfirconsole
O haz clic derecho en launch.bat → Ejecutar como administrador, lo que se encarga del
virtualenv, la instalación y abre el navegador por ti.```
Kage DFIR Toolkit 1.5.0
code C:\Kage\dfirconsole
workspace C:\Kage
open http://127.0.0.1:8787
> **El espacio de trabajo es dondequiera que lo hayas lanzado.** Nada que configurar. Las herramientas,
> la evidencia y la salida aterrizan junto a la consola.
### Pruébalo sin riesgo primero```powershell
python -m dfirconsole --demo
El modo de demostración construye una intrusión sintética —adjunto malicioso, PowerShell codificado, Defender deshabilitado, robo de credenciales, persistencia, C2, copias de sombra eliminadas— y ejecuta toda la cadena sobre ella. Nada en tu máquina se toca. La mejor forma de aprender la interfaz antes de un incidente real.
Inícialo como administrador, abre http://127.0.0.1:8787 y comprueba que la barra de estado muestre live run · Windows y no demonstration mode.
Haz clic en Settings:
| Campo | Ejemplo | Por qué importa |
|---|---|---|
| Referencia del caso | INC-2026-0042 | nombra el informe, el registro y el archivo |
| Analista | N. Delaunay | aparece en el encabezado del informe |
Deja Workspace folder vacío, rastrea la carpeta de lanzamiento por sí solo. Haz clic en Save.
La columna izquierda es la cadena de custodia. Cada paso tiene una casilla de verificación; todas están marcadas por defecto excepto el escaneo YARA.
Para una primera ejecución, desmarca todo excepto:``` ☑ Prepare the workspace ☑ Exclude the folder from Defender ☑ Locate the tooling ☑ Update the Sigma rules
Haz clic en **Run 4 steps**. Aproximadamente un minuto. Esto descarga CyLR y Hayabusa y
confirma que tu elevación realmente funciona *antes* de que comience algo largo.
### Paso 4 — Recopilar y analizar
Una vez que esos cuatro estén sellados, marca el resto:```
☑ Collect the artefacts CyLR — a few minutes, several GB
☑ Capture the system context accounts, sockets, disk root, log coverage
☑ Build the timeline Hayabusa correlates against Sigma
☑ Analyse the timeline score, alert families, indicators
Haz clic en Run y observa el flujo del registro de ejecución. Cada paso finalizado obtiene un sello — un SHA-256 que puedes verificar más tarde.
| Dónde | Qué obtienes |
|---|---|
| Overview | puntuación de riesgo con sus cuatro componentes, alertas por familia |
| Alerts | cada alerta, filtrable por severidad y familia |
| System | cuentas, sockets vinculados a procesos, carpetas inusuales, cobertura de registros |
| Indicators | hashes, IPs y dominios extraídos de la línea de tiempo |
Haz clic en cualquier fila de la tabla para abrir el panel de lectura: cada campo, la línea de comandos
completa, todos los datos sin procesar. ← → para moverte entre elementos, Esc para cerrar.
Con las claves de API configuradas:``` ☑ Enrich the indicators VirusTotal + AbuseIPDB reputation ☑ Write the summary the AI drafts the report
Sin claves, ambos se marcan como *omitidos* y se genera un **informe local**
en su lugar — misma estructura, sin llamada de red.
### Paso 7 — Exportar
Arriba a la derecha del panel:
- **Informe** — HTML imprimible, trece secciones numeradas, listo para PDF
- **JSON** — el estado completo, sellos incluidos
- **Registro** — todo lo que produjo la consola
> 💡 **Reproducir un solo paso:** haz doble clic en su etiqueta en la columna izquierda. Útil
> cuando Hayabusa falla pero la recolección está bien — no hace falta recolectar dos veces.
---
## 🔦 Añadir THOR Lite manualmente
El escaneo YARA es el único paso que Kage **no** puede configurar por ti. Nextron requiere
registro, por lo que el binario no puede ser descargado por un script. CyLR y Hayabusa
se descargan solos; THOR no.
### 1. Obtener el archivo
Regístrate y descarga en
[nextron-systems.com/thor-lite](https://www.nextron-systems.com/thor-lite/).
Recibes el escáner **y un archivo de licencia** (`.lic`) — normalmente por correo electrónico.
### 2. Colócalo en `tools\thor\`
Kage ya creó esa carpeta para ti en el primer inicio. Copia el contenido del archivo
dentro de ella, **manteniendo todo junto**:```
C:\Kage\
└── tools\
└── thor\ ← everything goes here
├── thor64-lite.exe the scanner
├── yourname.lic the licence — THOR will not start without it
├── config\ from the archive
├── signatures\ from the archive — the YARA rules themselves
└── custom-signatures\ from the archive
¿Por qué mantenerlos juntos? THOR se ejecuta desde el directorio que contiene su ejecutable y resuelve sus firmas en relación con ese directorio. Copiar el binario solo te da un escáner sin nada que buscar.
Las otras dos herramientas se encuentran junto a él, cada una en su propia carpeta:```
tools
├── cylr\ CyLR.exe ← downloaded automatically
├── hayabusa\ hayabusa-.exe ← downloaded automatically
└── thor\ thor64-lite.exe + .lic ← you place this one
### 3. Verificar```powershell
python preflight.py
| -s | --server | SERVER | http://localhost:8080 | URL del servidor de escaneo |
| -t | --token | TOKEN | | Token de autenticación |
| -o | --output | FILE | | Archivo de salida |
| -f | --format | FORMAT | json | Formato de salida (json, yaml, csv) |
| -v | --verbose | | | Salida detallada |
| -q | --quiet | | | Modo silencioso |
| -h | --help | | | Mostrar mensaje de ayuda |
| -V | --version | | | Mostrar versión |
# Escaneo básico
scanner scan --target example.com
# Escaneo con opciones
scanner scan --target example.com --port 443 --format json
# Escaneo por lotes
scanner scan --file targets.txt --output results.json
La configuración se puede proporcionar a través de:
~/.scanner/config.yaml)server:
url: http://localhost:8080
token: your-token-here
timeout: 30s
scan:
threads: 10
rate_limit: 100
retries: 3
| Variable | Descripción |
|---|---|
SCANNER_SERVER_URL | URL del servidor |
SCANNER_TOKEN | Token de autenticación |
SCANNER_TIMEOUT | Tiempo de espera de la solicitud |
SCANNER_THREADS | Número de hilos |
POST /api/v1/scan
Content-Type: application/json
{
"target": "example.com",
"options": {
"port": 443,
"timeout": 30
}
}
GET /api/v1/scan/{id}
GET /api/v1/scans?limit=10&offset=0
# Clonar el repositorio
git clone https://github.com/example/scanner.git
cd scanner
# Compilar
make build
# Ejecutar pruebas
make test
scanner/
├── cmd/
│ └── scanner/
│ └── main.go
├── internal/
│ ├── api/
│ ├── config/
│ └── scanner/
├── pkg/
│ └── utils/
├── docs/
└── README.md
git checkout -b feature/amazing-feature)git commit -m 'Add amazing feature')git push origin feature/amazing-feature)Este proyecto está licenciado bajo la Licencia MIT - consulte el archivo LICENSE para más detalles.
Esta herramienta está destinada únicamente a pruebas de seguridad autorizadas. Los usuarios son responsables de cumplir con todas las leyes aplicables. Los autores no se hacen responsables de ningún uso indebido o daño causado por esta herramienta.
Si la línea de licencia muestra `[!]`, THOR se iniciará y se detendrá inmediatamente.
### 4. Elige el alcance — esto lo decide todo
**Settings → YARA scan folder:**
| Valor | Escanea | Tarda |
|---|---|---|
| *(vacío)* | los artefactos que CyLR acaba de recopilar | minutos |
| `C:\Users\target` | un perfil de usuario | minutos |
| `C:\` | todo el volumen del sistema | **horas** |
Marca **YARA scan** en la cadena y ejecútala. Los veredictos aparecen en vivo a medida que se examinan los archivos — alertas, advertencias, avisos *y* archivos limpios, cada uno con su hash.
**Sin límite de tiempo por defecto.** Un barrido de tres horas es una decisión, no una anomalía. Establece uno en minutos si quieres un techo.
> Sin THOR, el paso se reporta como *omitido* y la cadena continúa.
> Pierdes el eje YARA de la puntuación — nada más.
---
## 🔗 La cadena
Once pasos. Marca lo que necesites, haz doble clic en una etiqueta para reproducir una sola.
| # | Paso | Qué se ejecuta realmente |
|---|---|---|
| 01 | Preparar el espacio de trabajo | árbol de carpetas, comprobación de elevación y espacio libre |
| 02 | Excluir de Defender | `Add-MpPreference -ExclusionPath <workspace>` |
| 03 | Localizar las herramientas | resuelve y descarga CyLR + Hayabusa desde las releases de GitHub |
| 04 | Recopilar los artefactos | `CyLR.exe -od evidence\ -of <case>.zip -v` |
| 05 | Capturar el contexto del sistema | `systeminfo` · `Get-LocalUser` · `netstat -ano` · `tasklist` · `auditpol` |
| 06 | Actualizar las reglas Sigma | `hayabusa update-rules` |
| 07 | Construir la línea temporal | `hayabusa <csv\|dfir>-timeline -d <Logs> -o hayabusa-output.csv -r <rules>` |
| 08 | Analizar la línea temporal | puntuación, familias de alertas, extracción de indicadores |
| 09 | Escaneo YARA *(opcional)* | `thor64-lite.exe --nocsv -p <chosen folder>` |
| 10 | Enriquecer los indicadores | VirusTotal v3 · AbuseIPDB v2 |
| 11 | Escribir el resumen | tu proveedor de IA, o un informe local |
El subcomando de Hayabusa se lee de su propia salida de ayuda, por lo que tanto v3
(`csv-timeline`) como v4 (`dfir-timeline`) funcionan, y los flags no soportados se
descartan en lugar de hacer fallar el comando.
---
## 🎯 Puntuación de riesgo
Una **prioridad de triaje, no una prueba** — y nunca se publica sin su desglose.```
80 / 100 Compromise confirmed by multiple sources
CONFIDENCE HIGH · 441 events analysed
SEVERITY 45 / 45 8 critical, 10 high, 3 medium
KILL CHAIN 25 / 25 10 ATT&CK tactics, 7 decisive
REPUTATION 0 / 20 no indicator confirmed externally
CORROBORATION 10 / 10 3 YARA detections · 3 active connections to public hosts
Cuatro ejes independientes, cada uno con un límite máximo. Eso es lo que impide que una regla ruidosa que se activa trescientas veces alcance el mismo veredicto que una intrusión genuina de múltiples etapas.
La confianza es independiente de la severidad. Cuenta cuántas fuentes independientes coinciden y si la cobertura de registro fue suficiente — por lo que una puntuación alta basada únicamente en Sigma se lee como una pista sólida, nunca como una confirmación:
| Puntuación | Confianza alta | Confianza baja |
|---|---|---|
| ≥ 70 | Compromiso confirmado por múltiples fuentes | Compromiso muy probable — corroboración aún limitada |
| ≥ 45 | Compromiso probable — se recomienda contención | Fuertes indicios de una única fuente |
| ≥ 25 | Actividad sospechosa que requiere cualificación | |
| ≥ 10 | Señales débiles, sin compromiso establecido | |
| < 10 | Nada concluyente |
Se recalcula cada vez que llega una nueva fuente — después de la línea temporal, después de YARA, después del enriquecimiento.

La severidad indica cuán urgente. Las familias indican de qué tipo.``` FAMILIES AUTHENTICATION 4 INFECTION 1 EXECUTION 6 NETWORK 5 EVASION 5 OTHER 0
TIMESTAMP LEVEL FAMILY RULE ID 09/09 10:26 CRITICAL EVASION Windows Defender Disabled 5001 09/09 11:09 CRITICAL EVASION Volume Shadow Copies Deleted 4688 09/09 11:15 CRITICAL EVASION Security Event Log Cleared 1102 09/09 10:32 CRITICAL AUTH LSASS Memory Access 10
Clasificado primero por ID de evento, después por el texto. **Cuando ambos no coinciden, el texto prevalece**: un `4688` es una creación de proceso, pero `vssadmin delete shadows` pertenece a Evasion, porque ahí es donde un analista lo buscará.
**Los recuentos de familias siempre coinciden con la tabla.** Calculados sobre las alertas que realmente llegan a la lista — una insignia que promete filas que no puedes encontrar es un error, no un detalle.
**El histograma sigue a la selección.** Con una familia activa, la ventana observada se redibuja en el color de esa familia y una marca señala su momento de mayor actividad.
**El triaje no se marca a sí mismo.** THOR escribe en el registro de eventos de Windows mientras se ejecuta, y escanear una carpeta de binarios ofensivos hace que Hayabusa marque nuestro propio escáner. Esos eventos se excluyen, se cuentan aparte y se reporta el total.
---
## 🖥️ Contexto del sistema

Lo que ningún registro de eventos te dice, capturado en modo de solo lectura:```
NETWORK — 7 listening, 4 established, 8 flagged
RISK PROTO LOCAL REMOTE PROCESS
HIGH TCP 10.20.4.11:52233 45.155.205.233:8443 powershell.exe
→ active connection to the Internet · powershell.exe should not
open a socket · remote port 8443 associated with offensive tooling
HIGH TCP 0.0.0.0:3389 — TermService.exe
→ exposed listener on RDP
ROOT C:\ — 3 flagged entries
HIGH C:\Tools folder created 0 day(s) ago
→ non-standard entry at the disk root · name suggests tooling
HIGH C:\Temp folder → frequently abused location
Cada socket se asocia a su proceso propietario mediante el PID — esa referencia cruzada
es lo que hace que powershell.exe manteniendo una conexión a un host público sea legible de
un vistazo.
Las cuentas locales se verifican para comprobar la pertenencia a Administrators, el estado habilitado pero inactivo y el último inicio de sesión. Las direcciones públicas de las conexiones establecidas se añaden automáticamente a la lista de indicadores: una dirección con la que se está comunicando durante el triaje vale al menos tanto como una leída de una entrada de registro de hace tres días.
Un triaje solo vale lo que la máquina aceptó registrar.``` LOGGING & AUDIT — coverage 51/100 · partial coverage
Blind spots: Sysmon · PowerShell (script blocks) · Process creation · Credential validation
STATE CHANNEL IMPORTANCE EVENTS ACTIVE Security critical 84 213 MISSING Sysmon critical — EMPTY PowerShell (script blocks) critical — ACTIVE System important 12 045 DISABLED WinRM important —
Dieciséis canales clasificados como **activo / vacío / deshabilitado / ausente** — la distinción importa: un canal vacío está a un comando de ser corregido, uno ausente necesita un despliegue. Trece subcategorías de `auditpol` leídas en paralelo.
La puntuación de cobertura se sitúa junto a la puntuación de riesgo. *Riesgo 80, cobertura 51* significa que el veredicto se basa en la mitad de la información disponible — y el informe lo indica.
---
## 🔬 YARA
```
8 verdicts
VERDICT DETECTION FILE HASH SCORE
ALERT YARA rule HKTL_Rubeus C:\AD\Tools\Rubeus.exe 9c4133ee… 100
ALERT YARA rule HKTL_AmsiTrigger C:\AD\Tools\AmsiTrigger.exe af7af55c… 95
ALERT YARA rule PS_Reverse_Shell C:\AD\Tools\PowerShellTcp… ab1e98e8… 80
WARNING Suspicious filename C:\AD\Tools\svchost32.exe 6b6f1901… —
NOTICE File checked - signed C:\AD\Tools\chrome.exe c5a10bff… —
CLEAN Clean C:\AD\Tools\notepad.exe 20eded6a… —
La página se llena durante el escaneo, no solo cuando se encuentra algo. Eso es lo que separa no encontró nada de no miró nada.
El escaneo comienza en el primer hallazgo real. THOR abre cada ejecución con una docena de líneas de banner — versión, compilación, nombre de host, directorio de trabajo, lista de argumentos, tiempo de actividad — y cierra con un resumen. Nada de eso describe el host que se está examinando, por lo que nada de eso llega a la vista. Los hashes de las alertas se envían a la lista de indicadores, listos para VirusTotal.
Cada paso completado se sella con un SHA-256, y el sello declara qué cubre:``` ✔ Analyse the timeline SEALED 0.1s seal 31d1991a65598de8 — content of hayabusa-output.csv
✔ Exclude the folder from Defender SEALED 6.2s seal 8f2c04b71ae93d55 — execution record (no file produced)
Cuando un paso produjo archivos, el sello es el hash **de su contenido** — vuelve a ejecutarlo más tarde y tendrás la prueba de que el artefacto no fue alterado. Cuando no produjo ninguno, el sello cubre únicamente el registro de ejecución, y lo dice en lugar de implicar más.
---
## 🧭 Vistas
Cada vista tiene su propia URL, no recarga nada y no pierde nada — el análisis vive en el servidor y una recarga completa lo restaura.
| Dirección | Contenido |
|---|---|
| `/` | pipeline, registro de ejecución, desglose por familia |
| `/alerts` | alertas por severidad y familia |
| `/indicators` | indicadores con reputación de VirusTotal / AbuseIPDB |
| `/system` | máquina, cuentas, red, raíz de disco, cobertura |
| `/yara` | veredictos de THOR, en vivo durante el escaneo |
| `/attack` | tácticas ATT&CK inferidas |
| `/summary` | informe escrito |
| `/log` | registro completo, descargable |
### Ejecución en vivo

Cada comando se transmite a medida que se ejecuta. Los pasos se sellan uno a uno; el reloj se detiene cuando lo hace la cadena.
### Indicadores

Hashes, IPs y dominios extraídos de la línea de tiempo, de sockets activos y de coincidencias de YARA — cada uno con su reputación una vez que se ha ejecutado el enriquecimiento.
### Tácticas ATT&CK

### Panel de lectura

Cualquier fila, en cualquier lugar, se abre completa: cada campo, la línea de comando completa, los datos sin procesar de THOR. `←` `→` para moverse entre elementos, `Esc` para cerrar, **Copy** para JSON.
### Resumen escrito

Hechos observados separados de los evaluados, lenguaje calibrado y una sección explícita de lagunas de evidencia que nombra lo que el registro no podría haber mostrado.
### Configuración

### Registro de ejecución

---
## 📄 El informe
`/api/report.html` — autocontenido, oscuro, trece secciones numeradas, listo para imprimir a PDF. Sin recursos externos: sigue siendo legible dentro de diez años en una máquina sin conexión.
### Veredicto y puntuación

La puntuación nunca aparece sin sus cuatro componentes, de modo que un lector puede cuestionar un eje en lugar de un número opaco.
### Hallazgos y contención

### Lagunas de evidencia y cadena de custodia

Cada paso con su sello y **lo que ese sello cubre** — el contenido de un archivo nombrado, o únicamente el registro de ejecución.
> Al imprimir a PDF, marca *Background graphics* en las opciones del navegador, de lo contrario se omite el fondo oscuro.
---
## ⚙️ Configuración
### Estructura de herramientas
Cada herramienta tiene su propia carpeta, y cada una incluye un README que explica qué va en ella.```
<workspace>/
├── tools/
│ ├── cylr/ CyLR.exe ← downloaded automatically
│ ├── hayabusa/ hayabusa-<version>.exe ← downloaded automatically
│ └── thor/ thor64-lite.exe + .lic ← manual, registration required
├── evidence/ collection archive, unpacked
└── output/ timeline, logs, enrichment cache
CyLR y Hayabusa se instalan por sí mismos. El paso Locate the tooling consulta la API de releases de GitHub, elige el asset actual de Windows x64 y lo descomprime en la carpeta correcta. Fijar una versión significa que la descarga se rompe el día que upstream avance; resolverla significa que la consola sigue funcionando sin supervisión. Una URL fijada toma el control si la API no es accesible.
Todo funciona sin una sola clave. Los pasos no configurados se marcan como skipped, nunca como failed.
Dónde van las credenciales. El repositorio incluye apikeys.env.example, una plantilla
con valores vacíos. Cópiala, mantén la copia en local:```powershell
copy apikeys.env.example apikeys.env
notepad apikeys.env
| `--no-color` | Desactiva la salida en color |
| `--debug` | Habilita el registro de depuración |
| `--verbose` | Habilita el registro detallado |
| `--silent` | Suprime toda la salida excepto los resultados |
| `--json` | Genera los resultados en formato JSON |
| `--output <file>` | Escribe los resultados en un archivo |
| `--config <file>` | Especifica un archivo de configuración |
| `--threads <n>` | Número de hilos concurrentes |
| `--timeout <n>` | Tiempo de espera en segundos |
| `--retry <n>` | Número de reintentos |
| `--proxy <url>` | Proxy a utilizar |
| `--user-agent <string>` | User-Agent personalizado |
| `--header <header>` | Encabezado personalizado |
| `--cookie <cookie>` | Cookie personalizada |
| `--rate-limit <n>` | Límite de peticiones por segundo |
| `--random-agent` | Utiliza un User-Agent aleatorio |
| `--follow-redirects` | Sigue las redirecciones |
| `--insecure` | Ignora los errores de certificado SSL |
| `--no-verify` | Omite la verificación SSL |
| `--version` | Muestra la versión y sale |
| `--help` | Muestra el mensaje de ayuda y sale |```ini
# apikeys.env — sits next to launch.bat
VT_API_KEY=your_virustotal_key
ABUSEIPDB_API_KEY=your_abuseipdb_key
AI_PROVIDER=groq
AI_API_KEY=your_provider_key
AI_MODEL=
Dónde obtenerlas
| Clave | Nivel gratuito | Registro |
|---|---|---|
VT_API_KEY | 4 solicitudes/minuto, 500/día | virustotal.com |
ABUSEIPDB_API_KEY | 1 000 comprobaciones/día | abuseipdb.com |
AI_API_KEY | varía — Groq y Ollama son gratuitos | consulta la tabla de proveedores a continuación |
También puedes configurarlas como variables de entorno en lugar de un archivo, que es normalmente lo que quieres en un contenedor o en una estación de trabajo de respuesta compartida:```powershell $env:VT_API_KEY = "..." python -m dfirconsole
### Proveedores de resumen
Cada uno tiene su propio endpoint, conectado explícitamente, por lo que elegir Groq nunca envía tu clave a OpenAI.
| Proveedor | Endpoint | Modelo predeterminado |
|---|---|---|
| Anthropic | `api.anthropic.com` | `claude-sonnet-4-6` |
| OpenAI | `api.openai.com/v1` | `gpt-4o` |
| Groq | `api.groq.com/openai/v1` | `llama-3.3-70b-versatile` |
| Mistral | `api.mistral.ai/v1` | `mistral-large-latest` |
| OpenRouter | `openrouter.ai/api/v1` | `anthropic/claude-sonnet-4` |
| Ollama | `localhost:11434/v1` | `llama3.1` — sin clave |
| None | — | informe local |
Los niveles gratuitos pequeños están contemplados: Groq permite 12 000 tokens por minuto, por lo que la carga útil se mide contra ese límite y, ante un rechazo por tamaño, se reproduce con menos alertas y detalles más breves. El veredicto se mantiene; solo se reduce la evidencia de respaldo.
El modelo se rige por un estándar: lo observado separado de lo evaluado, lenguaje calibrado, afirmaciones cuantificadas, lagunas de evidencia explícitas y la explicación benigna considerada.
---
## 📟 Referencia de la CLI```
python -m dfirconsole console on 127.0.0.1:8787
python -m dfirconsole --port 9000 custom port
python -m dfirconsole --demo synthetic data, no collection
python preflight.py environment check
python preflight.py D:\CASE42 check another workspace
python -m pytest tests/ -q 115 tests
python tests/ui_check.py browser: full chain, reading pane
python tests/ui_nav.py browser: navigation, counts, histogram
python tests/ui_flood.py browser: 6000 log lines at once
Las ejecuciones del navegador necesitan pip install playwright && playwright install chromium.
"Se requieren derechos de administrador" / exclusión de Defender rechazada
Kage no está elevado. Ciérralo, haz clic derecho en launch.bat → Ejecutar como
administrador, o abre PowerShell como administrador primero.
did not find executable … python.exe
Tu Python proviene de Microsoft Store, que se instala por usuario y desaparece
en una sesión de administrador. Reinstálalo desde python.org, para todos los usuarios.
CyLR no produjo ningún archivo / la recolección está vacía
Añade --force-native en Settings → CyLR arguments. Abandona la lectura
NTFS en bruto por la API de Windows, que funciona cuando la detección de
particiones falla en un disco.
THOR se inicia y luego se queda en silencio
Su licencia falta o ha expirado, o signatures\ no se copió junto al
binario. Ejecuta preflight.py para confirmarlo.
Se está construyendo una cadena de triaje para Linux sobre la misma consola, las mismas vistas, el mismo modelo de puntuación. Los analizadores ya son agnósticos a la plataforma; lo que cambia es la capa de evidencia:
| Windows | Linux (en progreso) |
|---|---|
| Recolección CyLR | Recolección UAC / CyLR Linux |
| EVTX + Hayabusa Sigma | journald / auth.log / syslog + Sigma |
Get-LocalUser · auditpol | /etc/passwd · /etc/shadow · reglas de auditd |
netstat -ano + tasklist | ss -tunap |
| Anomalías en la raíz del disco | /tmp · /dev/shm · /var/tmp · cron · unidades systemd |
| THOR Lite | THOR Lite para Linux |
Marca con estrella o sigue el repositorio para enterarte del lanzamiento.
Kage es una consola, no un recolector ni un escáner. El trabajo pesado pertenece a estos proyectos, y merecen la estrella mucho más que este repositorio:
| Herramienta | Repositorio | Rol en la cadena |
|---|---|---|
| CyLR | orlikoski/CyLR | recolección de artefactos en vivo sobre NTFS en bruto |
| Hayabusa | Yamato-Security/hayabusa | correlación Sigma, generación de líneas de tiempo |
| Sigma | SigmaHQ/sigma | las reglas de detección detrás de cada alerta |
| THOR Lite | NextronSystems/thor-lite | escaneo YARA e IOC |
| VirusTotal | virustotal.com | reputación de hash, IP y dominio |
| AbuseIPDB | abuseipdb.com | puntuación de abuso de IP |
| MITRE ATT&CK | attack.mitre.org | el marco de tácticas detrás del eje de kill-chain |
Respeta la licencia y los términos de uso de cada proyecto — THOR Lite en particular requiere registro con Nextron y no es redistribuible.
| Herramienta | Dominio | |
|---|---|---|
| ☁️ | Kumo 蜘蛛 | OSINT y reconocimiento de dominios |
| 🌑 | Kage 影 | triaje de host DFIR |
⚠️ Solo para respuesta a incidentes autorizada. Ejecuta Kage únicamente en hosts que poseas o para los que tengas permiso escrito explícito de examinar.
Built for those who arrive after. 影