
Framework de alto rendimiento de OSINT/CTI para pivotaje automatizado de identidades y análisis de riesgos en más de 120 fuentes.
Marco OSINT para red teaming, análisis forense digital y análisis de exposición corporativa.
NOX es un motor de inteligencia contra amenazas cibernéticas diseñado específicamente para operadores que requieren velocidad, seguridad operativa y profundidad en un único marco cohesivo. No es un envoltorio de herramientas existentes — es una plataforma de inteligencia completamente asíncrona basada en plugins, con una separación estricta entre la lógica de ejecución y las definiciones de fuentes.
NOX opera con una estricta separación de responsabilidades: nox.py es un motor de ejecución puro y agnóstico — maneja E/S asíncrona, huellas JA3, gestión de sesiones SSL, pivoteo recursivo y correlación de resultados. No contiene lógica de inteligencia codificada.
Toda la inteligencia se define como plugins JSON en sources/. Estos plugins son la única fuente de verdad para lo que NOX consulta, cómo se autentica y qué extrae. La herramienta de construcción build_sources.py es la única forma autorizada de crearlos o modificarlos.```
build_sources.py ──► sources/*.json ──► nox.py (runtime loader)
[Builder] [Plugins] [Execution Engine]
> [!IMPORTANT]
> **`sources/*.json` archivos son artefactos generados automáticamente. Nunca los edites directamente.**
> Todas las adiciones y modificaciones de fuentes deben realizarse en `build_sources.py` y aplicarse ejecutando `python build_sources.py`. Las ediciones manuales se sobrescribirán en la próxima compilación.
#### Esquema de Fuentes```json
{
"name": "MyPrivateDB",
"endpoint": "https://api.myprivatedb.com/search?q={target}",
"method": "GET",
"headers": { "Authorization": "Bearer {MY_API_KEY}" },
"regex_pattern": "([\\w.+-]+@[\\w-]+\\.[\\w.]+):([\\S]+)",
"required_api_key_name": "MY_API_KEY",
"api_key_slots": ["{MY_API_KEY}"],
"input_type": "email",
"output_type": ["username", "ip"],
"pivot_types": ["email", "username"],
"confidence": 0.9
}
Campos admitidos: name, endpoint, method, headers, regex_pattern (o json_root + normalization_map), required_api_key_name, api_key_slots, input_type, output_type, pivot_types, confidence.
--autoscan (CLI) / autoscan (REPL) ejecuta el pipeline de inteligencia completo en un solo comando:```
For each asset (seed + every discovered identifier):
├─ Phase 1 — Breach Scan
│ 124 sources queried in parallel (async)
│
├─ Phase 2 — Hash Crack (non-blocking, concurrent)
│ Hashes found in breach data → rainbow-table APIs → cracked plaintext
│ → password-recycling breach scan
│
├─ Phase 3 — Dorking
│ Google/Bing/SearXNG dorks → leaked docs, .env files, SQL dumps
│ → new identifiers extracted and re-injected
│
└─ Phase 4 — Scraping
Pastebin, IntelX, Telegram CTI channels → credential extraction
→ new identifiers extracted and re-injected
All identifiers discovered in phases 1–4 are re-injected as new seeds. Child assets are processed concurrently via asyncio.gather.
`scan` (sin `--autoscan`) ejecuta solo la Fase 1 — fuentes de breach, sin pivot/dork/scrape.
---
### Motor de Avalancha Recursivo
Cada identificador descubierto durante un escaneo — desde registros de breach, hits de dork, o contenido scraped de paste/Telegram — es tratado como una nueva semilla de inteligencia. Para cada activo, el motor ejecuta cuatro fases secuencialmente: breach scan → hash crack → dork → scrape. Los identificadores extraídos de **todas las cuatro fases** son recolectados y reinyectados como nuevas semillas. Los activos hijos son luego procesados concurrentemente mediante `asyncio.gather`.```
[email protected]
└─► [Breach] username: j.doe ──► [Breach + Crack + Dork + Scrape]
│ └─► github.com/jdoe ──► [Breach + Crack + Dork + Scrape]
└─► [Breach] hash: 5f4dcc... ──► [AutoCrack] → "password123"
│ └─► [Breach] password-recycling scan across all sources
└─► [Dork] [email protected] ──► [Breach + Crack + Dork + Scrape]
└─► [Scrape/paste] [email protected] ──► [Breach + Crack + Dork + Scrape]
seen_assets set — desduplicación global; ningún identificador se procesa dos veces, independientemente de la fase que lo descubrió--threads--depth N — profundidad de pivote configurable (predeterminado: 2); tope duro evita recursión descontrolada--no-pivot — deshabilita el enriquecimiento recursivo para un escaneo rápido solo de brechasCuando se encuentra un hash en datos de brecha durante --autoscan:
nox_system.log, el hash se conserva en el informe y el pivoteo sobre todos los demás activos continúa inmediatamenteEl proceso de descifrado es completamente no bloqueante. Un tiempo de espera o fallo de API nunca pausa el escaneo. Use --no-online-crack para restringir el descifrado solo a la lista de palabras local (no se envían datos a APIs de terceros).
El Motor Guardian es la capa OPSEC de configuración cero de NOX. Se activa automáticamente cuando no se proporciona la bandera --proxy o --tor.
Orden de resolución:
proxies.txt — si está presente en el directorio de trabajo, NOX carga y rota entre los proxies listados.proxies.txt está ausente, el Motor Guardian obtiene una lista nueva de proxies públicos de alto anonimato, valida cada uno y mantiene el grupo validado en memoria para la sesión. No se escribe nada en disco.[!WARNING] Los pools de proxies públicos son infraestructura inherentemente no confiable. Para compromisos sensibles, siempre proporcione un proxy controlado mediante
--proxyo enrute a través de Tor mediante--tor.
Todos los formatos de informe incluyen un panel de resumen ejecutivo:
| Métrica | Descripción |
|---|---|
| Tiempo Total | Duración en tiempo real del escaneo completo |
| Nodos Descubiertos | Identidades únicas encontradas en todas las fuentes |
| Contraseñas en Texto Claro | Credenciales en texto plano encontradas o descifradas |
| Profundidad de Pivote | Profundidad alcanzada por el motor de avalancha recursiva |
Los informes también incluyen una Visualización de Cadena de Pivote que muestra la ruta relacional completa desde la semilla inicial hasta el descubrimiento final:``` [[email protected]] -> [LeakA / username:jdoe] -> [Dork: leaked .env] -> [[email protected]]
Las exportaciones JSON incluyen un bloque `_meta` con `scan_id`, `target`, `timestamp`, `nox_version` y `pivot_depth_reached`, lo que hace que cada exportación se autodescriba para su ingesta en plataformas de gestión de casos.
Todo el resultado está saneado: se eliminan errores de proxy, tiempos de espera y trazas. Solo se incluye inteligencia procesable.
---
## Estructura del sistema de archivos```
~/.nox/
├── sources/ # Auto-generated JSON source plugins
├── reports/ # Generated forensic reports
├── logs/ # Runtime log (nox.log)
├── wordlists/ # Hash cracking wordlists
├── vault/ # Secure storage
└── nox_cache.db # Forensic persistence database (SQLite)
~/.config/nox-cli/
├── apikeys.json # API keys — chmod 0600, never committed to VCS
└── logs/
└── nox_system.log # Silent system log: API events, rate-limits, crack attempts
# .deb install (isolated venv)
/opt/nox-cli/
├── nox.py
├── build_sources.py
├── requirements.txt
├── sources/
└── .venv/ # Isolated Python environment (PEP 668 compliant)
python3-pip en Debian/Kali)--tor. En Kali: sudo apt install tor -y. El servicio tor debe estar ejecutándose en el puerto 9050.Descargue el paquete .deb desde la página de lanzamientos, luego ejecute:```bash
sudo dpkg -i nox-cli_*_all.deb
nox-cli --help
El script de post-instalación automáticamente:
1. Crea un entorno virtual aislado en `/opt/nox-cli/.venv`
2. Instala todas las dependencias de Python dentro del venv (compatible con PEP 668 — cero contaminación del sistema)
3. Construye los 124 plugins fuente
4. Enlaza `/usr/bin/nox-cli` → `/opt/nox-cli/nox-wrapper.sh`
### Opción 2: Desde el código fuente```bash
git clone https://github.com/nox-project/nox-framework.git
cd nox-framework
pip install -r requirements.txt
python build_sources.py
python3 nox.py
Paso 1 — Compilar plugins desde el código fuente (solo desde el código fuente — .deb lo hace automáticamente)```bash python build_sources.py
**Paso 2 — Configurar claves API**
`build_sources.py` crea `~/.config/nox-cli/apikeys.json` en la primera ejecución, prellenado con todos los servicios compatibles. El archivo tiene permisos `chmod 0600` y nunca se confirma en VCS.
Este es el **único almacén de claves canónico** — todas las fuentes lo leen en tiempo de ejecución.```bash
# Edit the file directly
nano ~/.config/nox-cli/apikeys.json
# Or inspect plugin status and key configuration
nox-cli --list-sources
[!NOTE] Cualquier clave configurada como
INSERT_API_KEY_HEREo""se considera no configurada — esa fuente se omite silenciosamente. Las fuentes sin requisito de clave siempre están activas.Prioridad de carga: variable de entorno (ej.
export HIBP_API_KEY=xxx) →~/.config/nox-cli/apikeys.json
Paso 3 — Ejecutar
[!NOTE] Interruptor de seguridad OPSEC: Por defecto, NOX activa el motor Guardian (rotación automática de proxies). Use
--guardian-offpara conectarse directamente.```bash
nox-cli -t [email protected]
nox-cli -t [email protected] --autoscan
nox-cli -t [email protected] --autoscan --tor
nox-cli -t [email protected] --autoscan --proxy socks5://127.0.0.1:1080 -o report.pdf --format pdf
nox-cli -t [email protected] --autoscan --depth 3
nox-cli -t [email protected] --no-pivot
nox-cli -t company.com
nox-cli --crack 5f4dcc3b5aa765d61d8327deb882cf99
nox-cli --crack 5f4dcc3b5aa765d61d8327deb882cf99 --no-online-crack
nox-cli --analyze "P@ssw0rd123"
nox-cli --dork [email protected]
nox-cli --scrape [email protected]
nox-cli -t [email protected] --diff
nox-cli --list-sources
nox-cli --reset-sources
## Referencia de CLI```
usage: nox-cli [-h] [-t TARGET] [-i] [--version]
[--autoscan] [--fullscan] [--no-pivot] [--depth N]
[--dork TARGET] [--scrape TARGET]
[--crack HASH] [--no-online-crack]
[--analyze PASS] [--list-sources] [--reset-sources]
[--tor] [--proxy URL] [--guardian-off] [--allow-leak]
[--threads N] [--timeout N]
[-o FILE] [--format {json,csv,html,md,pdf}]
[--diff]
-t, --target TARGET Target to scan (auto-detected type)
-i, --interactive Launch interactive REPL
--version Show version and exit
--autoscan Full pipeline: breach + pivot + dork + scrape
--fullscan Breach + pivot only (no dork/scrape)
--no-pivot Disable recursive pivot enrichment
--depth N Avalanche pivot depth (default: 2)
--dork TARGET Google/Bing/SearXNG dorking for leaked documents
--scrape TARGET Paste site + Telegram scraping
--crack HASH Identify and crack a hash
--no-online-crack Local wordlist only — no data sent to third-party APIs
--analyze PASS Deep password strength analysis
--list-sources Plugin debug: input type, confidence, key status
--reset-sources Force resync of source plugins from package
--tor Route all traffic through Tor (port 9050)
--proxy URL HTTP/S or SOCKS5 proxy URL
--guardian-off Bypass OPSEC kill-switch (direct connection)
--allow-leak Allow direct connection if proxy/Tor is unavailable
--threads N Concurrency limit (default: 20)
--timeout N Request timeout in seconds (default: 15)
-o, --output FILE Output file path
--format FORMAT Output format: json, csv, html, md, pdf
--diff Show only new findings vs last cached scan
Iniciar el REPL interactivo sin argumentos:```bash nox-cli
Tenemos la función `proc_find_suspect_task` a la que podemos engancharnos para localizar una estructura de tarea que coincida con nuestros criterios de búsqueda. Por ejemplo, buscar una tarea con un PID o nombre de comando específico.```
Command Description
----------- ---------------------------------------------------------------
autoscan Full pipeline: breach + pivot + dork + scrape
scan Breach intelligence scan only
dork Google/Bing/SearXNG dorking for leaked documents
scrape Paste site + Telegram scraping
crack Identify and crack a hash
analyze Deep password strength analysis
graph ASCII identity graph of last scan
visualize ASCII relationship map (Target → Data → Pivots)
pivot <n> Re-scan using result #n as new pivot seed
search <q> Filter in-memory records by keyword
sources Plugin debug: input type, confidence, key status
export Export results (json / csv / html / md / pdf)
tor Toggle Tor routing on/off
proxy Set or clear proxy URL
config Configure threads / timeout / depth
help Show this menu
quit Exit NOX
Ejemplos:``` nox> autoscan [email protected] nox> graph nox> visualize nox> pivot 3 nox> search admin nox> export pdf investigation.pdf nox> sources nox> config threads 30 nox> config depth 3 nox> proxy socks5://127.0.0.1:1080 nox> tor
---
## Gestión de fuentes
### Añadir una fuente
**1. Define en `build_sources.py`:**```python
_auth("NewIntelDB", "breaches",
"https://api.newinteldb.com/v1/search?q={target}", "GET",
{"results": "$.results"},
headers={"X-API-Key": "{NEWINTELDB_API_KEY}"},
api_key_slots=["{NEWINTELDB_API_KEY}"],
normalization_map={"email": "email", "password": "password"},
input_type="email",
output_type=["username", "ip"],
confidence=0.85)
2. Reconstruir:```bash python build_sources.py
> [!NOTE]
> El constructor valida cada fuente en tiempo de compilación: los puntos finales GET deben contener `{target}`, las fuentes volátiles deben tener `reliability_score ≤ 4`, y el campo `confidence` se puede establecer explícitamente para anular el valor derivado de la fórmula.
---
## Construyendo el paquete .deb```bash
gem install fpm
bash build_deb.sh
sudo dpkg -i dist/nox-cli_*_all.deb
[!WARNING] NOX está diseñado exclusivamente para:
- Pruebas de penetración autorizadas y compromisos de equipo rojo con consentimiento explícito por escrito
- Análisis de exposición corporativa en activos que posee o que está contratado para evaluar
- Forense digital y respuesta a incidentes
- Investigación académica y de seguridad en entornos controlados y aislados
El uso no autorizado de esta herramienta contra sistemas, redes o individuos sin permiso explícito por escrito es un delito penal según la Ley de Fraude y Abuso Informático (CFAA, 18 U.S.C. § 1030), la Ley de Uso Indebido de Computadoras de 1990 (CMA) y la legislación equivalente en todas las jurisdicciones principales del mundo.
Los autores y contribuyentes de NOX no aceptan ninguna responsabilidad por daños directos, indirectos, incidentales o consecuentes que surjan del mal uso de este software. Al descargar, instalar o ejecutar NOX, acepta incondicionalmente cumplir con todas las leyes locales, nacionales e internacionales aplicables, y atacar únicamente sistemas y datos para los cuales posea autorización explícita y documentada.
Si no acepta estos términos, no utilice este software.
| Capacidad | Detalle |
|---|
| ⚡ Motor de Ejecución Asíncrona | Escaneo masivamente paralelo a través de 124 fuentes de inteligencia sin cuellos de botella secuenciales ni E/S bloqueante. |
| 🛡️ Guardian Engine | Capa OPSEC integrada con rotación automática de proxy y soporte SOCKS5. Un interruptor de seguridad (kill-switch) detiene todo el tráfico si el circuito de transporte no está disponible. |
| 🧠 Puntuación de Riesgo | Puntuación dinámica de 0 a 100 con decaimiento temporal, ponderación de confianza de fuente, análisis de complejidad de contraseñas, multiplicadores de persistencia y detección de HVT. |
| 🔗 Motor Avalancha Recursiva | Cada activo descubierto — nombre de usuario, correo electrónico, contraseña descifrada, teléfono — se reinyecta automáticamente como una nueva semilla de escaneo. La canalización por activo se ejecuta secuencialmente (brecha → descifrado → dork → scrape); los activos hijos se ejecutan concurrentemente. Los identificadores de las cuatro fases alimentan la cola de pivote. La deduplicación global y un límite de profundidad configurable evitan la recursión descontrolada. |
| 🔍 Autoscan | Un solo comando activa escaneo de brechas + pivote recursivo + dorking + scraping de pastes — completamente automatizado, sin encadenamiento manual. |
| Característica | Descripción |
|---|
| 124 Fuentes de Plugins JSON | Cada fuente de inteligencia es un plugin JSON. El motor de ejecución no contiene lógica de fuente codificada. |
| Núcleo Asíncrono | Bucle de eventos asyncio completo con huellas JA3, gestión de sesiones SSL, jitter por solicitud y concurrencia configurable. |
| Canalización Autoscan | --autoscan activa: escaneo de brechas → pivote recursivo → dorking en Google/Bing/SearXNG → scraping de pastes/Telegram — todo en un solo comando. |
| Motor Avalancha Recursiva | Cada identificador descubierto — ya sea de registros de brechas, resultados de dorking o contenido de pastes/Telegram raspado — se reinyecta como una nueva semilla. La canalización por activo es secuencial (brecha → descifrado → dork → scrape); los activos hijos se ejecutan concurrentemente mediante asyncio.gather. Un conjunto global seen_assets evita bucles infinitos. La concurrencia y la profundidad son totalmente configurables en tiempo de ejecución a través de --threads y --depth. |
| Pivoteo de Hashes | Los hashes encontrados en los datos de brechas se identifican automáticamente (MD5/SHA1/SHA256/NTLM/bcrypt) y se descifran mediante consultas API concurrentes en segundo plano. Los textos planos descifrados se inyectan en la cola de pivote como semillas de reciclaje de contraseñas. Los fallos se registran silenciosamente — el escaneo nunca se detiene. |
| Guardian Proxy Engine | Capa OPSEC sin configuración: lee proxies.txt si existe; de lo contrario, obtiene automáticamente y valida un pool de proxies de alta anonimidad en memoria. Soporte completo para SOCKS5/HTTP/S y Tor. |
| Rotación de Claves API | api_key_slots por fuente — NOX hace round-robin entre múltiples claves para eludir los límites de tasa por clave. |
| Graficación de Identidad | Motor de correlación Union-Find unifica registros de brechas en clústeres de identidad a través de todas las fuentes, utilizando clasificación de pivote consciente del tipo. |
| Informes Forenses Empresariales | Informes profesionales en PDF/HTML/JSON/CSV/Markdown con panel de Resumen Ejecutivo (Tiempo Total, Nodos Descubiertos, Contraseñas en Texto Claro, Profundidad de Pivote), Visualización Interactiva de Cadena de Pivotes y estricta sanitización de datos — sin ruido técnico en la salida. Las exportaciones JSON son autodescriptivas con un bloque completo de metadatos. |
| Detección HVT | Marca automáticamente cuentas de nivel C, Admin, DevOps y dominios gubernamentales como Objetivos de Alto Valor (HVT). |
| Motor de Dorking | Descubrimiento pasivo de documentos mediante dorks de Google/Bing/SearXNG con extracción de metadatos de PDF/Office. |
| Motor de Scraping | Indexación de sitios de pastes, monitoreo de canales CTI de Telegram, extracción de credenciales y descubrimiento de configuraciones incorrectas. Cada activo de autoscan obtiene una sesión de scraping dedicada — sin estado compartido. |
| Proxy / Tor | Proxy SOCKS5, HTTP/S, enrutamiento completo de Tor a través de stem y respaldo automático de Guardian. Los proxies SOCKS5 se validan y enrutan correctamente mediante aiohttp-socks. |
| Almacenamiento Seguro de Claves | Las claves API se gestionan a través de ~/.config/nox-cli/apikeys.json (chmod 0600). Las claves no configuradas se omiten silenciosamente. Las claves establecidas mediante variables de entorno se recogen automáticamente sin necesidad de reinicio. |
| Registro del Sistema | Todos los eventos de escaneo, finalizaciones de fase, descubrimientos de pivote, eventos de API, límites de tasa e intentos de descifrado se escriben en ~/.nox/logs/nox.log. Solo la inteligencia procesable llega a la terminal. |
| Depuración de Plugins | --list-sources imprime una tabla de depuración completa para el operador: nombre del plugin, tipo de entrada, puntuación de confianza, estado de la clave (configurada / no configurada / pública) y cualquier error de análisis JSON. |
| Bandera | Comportamiento |
|---|
--proxy <url> | Enruta todo el tráfico a través del proxy HTTP/S o SOCKS5 especificado. Desactiva Guardian. |
--tor | Enruta todo el tráfico a través de Tor (requiere el servicio tor en el puerto 9050). Desactiva Guardian. |
--guardian-off | Omite el interruptor de seguridad OPSEC y conecta directamente. |
| (sin bandera) | El Motor Guardian se activa automáticamente. |