Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
Shadowbroker — Plataforma OSINT geoespacial en tiempo real que agrega más de 60 fuentes de telemetría pública (ADS-B, AIS, satélites, CCTV) en un mapa unificado con un kit de reconocimiento del lado del servidor, un canal de agente de IA y comunicaciones descentralizadas en malla. | Kitploit
Herramientas/GitHubGitHub/bigbodycobain/shadowbroker
OSINT (Inteligencia de Fuentes Abiertas)ReconocimientoMapeo de RedesAnálisis de VulnerabilidadesRecopilación de InformaciónAnálisis de MalwareComando y ControlInteligencia de AmenazasCrawler

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir
Análisis de DNS
GitHubbigbodycobain/shadowbroker

Shadowbroker

Plataforma OSINT geoespacial en tiempo real que agrega más de 60 fuentes de telemetría pública (ADS-B, AIS, satélites, CCTV) en un mapa unificado con un kit de reconocimiento del lado del servidor, un canal de agente de IA y comunicaciones descentralizadas en malla.

Ver Repositorio
10.7k1.7khace 18h 21mRevisado por Kitploit

🛰️ S H A D O W B R O K E R

Intercepción Global de Amenazas — Plataforma de Inteligencia Geoespacial en Tiempo Real


ShadowBroker

ShadowBroker es una plataforma de inteligencia descentralizada que agrega telemetría OSINT en tiempo real de múltiples dominios desde más de 60 fuentes de inteligencia en vivo en una única interfaz de mapa de operaciones oscuras. Aeronaves, barcos, satélites, zonas de conflicto, redes CCTV, interferencias GPS, dispositivos conectados a internet, escáneres policiales, nodos de radio mesh y eventos geopolíticos de última hora — todo actualizándose en tiempo real en una sola pantalla, así como un protocolo de comunicaciones ofuscado e infraestructura de intercambio de información.

🛰️ Descripción del Proyecto

Construido con Next.js, MapLibre GL, FastAPI y Python. Más de 40 capas de datos alternables, incluyendo detección de cambios en el suelo mediante SAR, Telegram OSINT (vistas previas de canales públicos georreferenciadas en el mapa), un kit de herramientas de reconocimiento del lado del servidor (DNS, WHOIS, sanciones, BGP, barrido de IP y más), superposiciones de riesgo de cadena de suministro, y feeds de amenazas cibernéticas de malware/C2 + CISA KEV. Múltiples modos visuales (DEFAULT / SATELLITE / FLIR / NVG / CRT). Haga clic derecho en cualquier punto de la Tierra para obtener un dossier del país, un resumen del jefe de estado, una expansión del grafo de entidades y la última foto satelital Sentinel-2. ShadowBroker no tiene cuentas, telemetría de producto ni analíticas; el panel se comunica con su backend autoalojado. Las consultas sensibles de reconocimiento y Shodan nunca llegan a APIs de terceros desde el navegador; se enrutan a través del backend con protecciones SSRF y autenticación del operador local. El canal de comandos de agente OpenClaw expone los mismos backends de reconocimiento más la búsqueda completa de telemetría — no se requiere integración API separada.

Diseñado para analistas, investigadores, operadores de radio y cualquier persona que quiera ver cómo se ve el mundo cuando todas las señales públicas están en el mismo mapa.


🌍 Por Qué Existe Esto

Una cantidad sorprendente de telemetría global ya es pública — transmisiones ADS-B de aeronaves, señales AIS marítimas, datos orbitales de satélites, sensores sísmicos, redes de radio mesh, feeds de escáneres policiales, estaciones de monitoreo ambiental, telemetría de infraestructura de internet y más. Estos datos están dispersos en docenas de herramientas y APIs. ShadowBroker combina todo en una sola interfaz.

El proyecto no introduce nuevas capacidades de vigilancia — agrega y visualiza conjuntos de datos públicos existentes. Es completamente de código abierto para que cualquiera pueda auditar exactamente qué datos se acceden y cómo. ShadowBroker no incluye telemetría de producto, analíticas ni cuentas. Las claves proporcionadas por el operador permanecen en su implementación local, pero las funciones OSINT en vivo necesariamente realizan solicitudes salientes a los proveedores de datos públicos que habilite o consulte.


📡 Shodan y Reconocimiento (priorizando la seguridad)

ShadowBroker incluye un conector Shodan opcional para acceso API proporcionado por el operador (SHODAN_API_KEY) y un panel de Kit de Herramientas de Reconocimiento para búsquedas OSINT sin clave. Ambos se ejecutan solo en el lado del servidor: el navegador llama a sus rutas autoalojadas /api/osint/* y /api/tools/shodan/*; las solicitudes salientes son realizadas por el backend después de la validación SSRF. El reconocimiento requiere acceso de operador local (mismo modelo de confianza que las alternancias de capas y rutas de administración). Los resultados de Shodan se renderizan como una superposición de mapa separada y siguen sujetos a los términos de servicio de Shodan.


🗺️ Casos de Uso Interesantes
  • Siga al Air Force One, los jets privados de multimillonarios y dictadores, y todos los petroleros militares, ISR y cazas que transmiten ADS-B. Air Force One y todos los aviones presidenciales/vicepresidenciales que lo acompañan se resaltan y monitorean desde el momento en que despegan.
  • Conecte un agente de IA como coanalista a través del canal de comandos de agente firmado por HMAC de ShadowBroker — compatible con OpenClaw y cualquier otro agente que hable el protocolo (Claude, GPT, LangChain, personalizado). El agente obtiene acceso completo de lectura/escritura a todas las más de 40 capas de datos, búsqueda compacta entre capas (search_telemetry, search_news), el kit de herramientas de reconocimiento completo (osint_lookup para IP/DNS/WHOIS/sanciones/CVE/etc.), expansión de grafos de entidades, colocación de pines, control del mapa, cambio de suelo SAR, redes mesh y entrega de alertas. Ve todo lo que el operador ve y puede tomar acciones en el mapa en tiempo real.
  • Comuníquese en la testnet InfoNet — La primera malla de inteligencia descentralizada integrada en una herramienta OSINT. Mensajería ofuscada con personajes de puerta, intercambio peer-to-peer Dead Drop y una CLI de terminal integrada. Sin cuentas, sin registro. La privacidad aún no está garantizada — esta es una testnet experimental — pero el protocolo está activo y se está endureciendo.
  • Haga clic derecho en cualquier lugar de la Tierra para obtener un dossier del país (jefe de estado, población, idiomas), un resumen de Wikipedia y la última foto satelital Sentinel-2 con resolución de 10 metros.
  • Haga clic en un nodo KiwiSDR y sintonice la radio de onda corta en vivo directamente en el panel. Haga clic en un feed de escáner policial y espíe con un solo clic.
  • Vea más de 11,000 cámaras CCTV en 6 países — Londres, Nueva York, California, España, Singapur y más — transmitiendo en vivo en el mapa.
  • Vea zonas de interferencia GPS en tiempo real — derivadas del análisis de degradación NAC-P de datos de transpondedores de aeronaves.
  • Monitoree satélites en órbita codificados por colores según el tipo de misión — reconocimiento militar, SIGINT, SAR, alerta temprana, estaciones espaciales — con redes de estaciones terrestres SatNOGS y TinyGS.

⚡ Inicio Rápido (Docker)

Desde GitHub (predeterminado — usa imágenes GHCR)```bash

git clone https://github.com/bigbodycobain/Shadowbroker.git cd Shadowbroker docker compose pull docker compose up -d

root@kitploit:~
### De GitLab (usa GitLab Container Registry)```bash
git clone https://gitlab.com/bigbodycobain/Shadowbroker.git
cd Shadowbroker
docker compose -f docker-compose.yml -f docker-compose.gitlab.yml pull
docker compose -f docker-compose.yml -f docker-compose.gitlab.yml up -d

Ambos caminos producen contenedores idénticos: misma fuente, mismo CI, mismas imágenes byte por byte. Elige el ecosistema que ya uses.

Abre http://localhost:3000 para ver el panel de control! (Requiere Docker Desktop o Docker Engine)

Únete al enjambre privado InfoNet (sb-testnet-0): Haz clic en NODE en el panel, o ejecuta ./meshnode.sh para un participante sin interfaz. Sin lista manual de pares — la flota por defecto descubre la semilla y obtiene el manifiesto firmado automáticamente. Establece MESH_INFONET_FLEET_JOIN=false en .env para un nodo privado solitario.

¿Puerto del backend ya en uso? El navegador solo necesita el puerto 3000, pero la API del backend también se publica en el puerto del host 8000 para diagnósticos locales. Si otra aplicación ya usa 8000, crea o edita .env junto a docker-compose.yml y establece BACKEND_PORT=8001, luego ejecuta docker compose up -d.

¿Noticias/UAP/bases/aguas residuales en blanco después de varios minutos? Verifica reinicios OOM del backend con docker events --since 30m --filter container=shadowbroker-backend --filter event=oom. El archivo compose predeterminado asigna al backend 4GB; si tu host tiene menos memoria, reduce los feeds habilitados o establece BACKEND_MEMORY_LIMIT=3G y espera que las capas más lentas/pesadas se calienten más gradualmente.

Usuarios de Podman: Podman funciona, pero podman compose es un envoltorio y aún necesita un proveedor de Compose instalado. En Windows/WSL, si ves looking up compose provider failed, instala podman-compose y ejecuta podman-compose pull seguido de podman-compose up -d desde dentro de la carpeta clonada Shadowbroker. En shells de Linux/macOS/WSL también puedes usar ./compose.sh --engine podman pull y ./compose.sh --engine podman up -d.


🔄 Cómo Actualizar

ShadowBroker usa imágenes Docker preconstruidas — no requiere compilación local. La actualización toma segundos:```bash docker compose pull docker compose up -d

root@kitploit:~
Eso es todo. `pull` obtiene las últimas imágenes, `up -d` reinicia los contenedores.

> **¿Vienes de una versión anterior?** Primero obtén el código del repositorio más reciente y luego las imágenes:
>
> ```bash
> git pull origin main
> docker compose down
> docker compose pull
> docker compose up -d
> ```
>
> Los usuarios de Podman deben ejecutar el comando equivalente de su proveedor, por ejemplo `podman-compose pull` y `podman-compose up -d`, o usar `./compose.sh --engine podman pull` y `./compose.sh --engine podman up -d` desde un shell compatible con bash.

### Integridad de las Actualizaciones

Las actualizaciones de Docker se entregan a través de registros de contenedores firmados. El actualizador automático ZIP heredado verifica los archivos de lanzamiento a través de esta cadena, en orden:

* `MESH_UPDATE_SHA256` cuando un operador fija un resumen explícitamente.
* `backend/data/release_digests.json` para pines de lanzamiento incluidos.
* El activo `SHA256SUMS.txt` del lanzamiento en GitHub cuando no hay un pin incluido.

Los mantenedores de versiones deben ejecutar `python backend/scripts/release_helper.py hash <ShadowBroker_vX.Y.Z.zip>` antes de publicar, luego publicar `SHA256SUMS.txt` y actualizar `backend/data/release_digests.json` al enviar un objetivo de actualización ZIP. El actualizador mantiene intacta la ruta de anulación del operador en lugar de fallar de forma cerrada ante la ausencia de resúmenes incluidos, de modo que las instalaciones existentes no queden varadas por un error en el proceso de lanzamiento.

### Endurecimiento de CSP

El frontend de producción se distribuye con un CSP compatible con hidratación y un CSP estricto solo con nonce en `Content-Security-Policy-Report-Only`. Establezca `SHADOWBROKER_STRICT_CSP=1` solo después de verificar que la compilación exacta se hidrata correctamente en su implementación. Las fuentes de Google en tiempo de ejecución no son necesarias; el pipeline de fuentes Next incluido sirve la fuente del panel desde la compilación de la aplicación.

### ⚠️ **¿Atascado en la versión anterior?**

**Si `git pull` falla o `docker compose up` sigue compilando desde el código fuente en lugar de obtener imágenes**, su clonación es anterior a una migración del repositorio de marzo de 2026 que reescribió el historial de commits. Un `git pull` normal no puede solucionarlo. Ejecute:```bash
# Back up any local config you want to keep (.env, etc.)
cd ..
rm -rf Shadowbroker
git clone https://github.com/bigbodycobain/Shadowbroker.git
cd Shadowbroker
docker compose pull
docker compose up -d

Cómo saber si estás afectado: Si docker compose up muestra RUN apt-get, RUN npm ci, o RUN pip install — está compilando desde el código fuente en lugar de descargar imágenes precompiladas. Necesitas un clon nuevo.

Otras soluciones de problemas:

  • Forzar re-descarga: docker compose pull --no-cache
  • Purgar imágenes antiguas: docker image prune -f
  • Ver registros: docker compose logs -f backend

☸️ Kubernetes / Helm (Avanzado)

Para despliegues de alta disponibilidad o clústeres de laboratorio en casa, ShadowBroker soporta el despliegue mediante Helm. Este chart está basado en la plantilla bjw-s-labs y proporciona una configuración robusta y modular tanto para el backend como para el frontend.

1. Añadir el Repositorio:```bash helm repo add bjw-s-labs https://bjw-s-labs.github.io/helm-charts/ helm repo update

root@kitploit:~
**2. Instalar el Chart:**```bash
# Default — pulls images from GHCR
helm install shadowbroker ./helm/chart --create-namespace --namespace shadowbroker

# GitLab registry variant
helm install shadowbroker ./helm/chart --create-namespace --namespace shadowbroker \
  -f helm/chart/values.yaml \
  -f helm/chart/values-gitlab.yaml

3. Características Clave:

  • Arquitectura Modular: Escala de forma individual el backend de inteligencia y el frontend HUD.
  • Contexto de Seguridad: Se ejecuta con UIDs restringidos (1001) para endurecimiento de contenedores.
  • Preparado para Ingress: Compatible con Traefik, Cert-Manager y Gateway API para acceso externo seguro a su nodo de inteligencia.

Agradecimientos especiales a @chr0n1x por contribuir con la arquitectura inicial de Kubernetes.


🌐 Red de Pruebas Experimental — Sin Garantía de Privacidad

ShadowBroker v0.9.7 incluye InfoNet (malla de inteligencia descentralizada + economía de gobernanza Sovereign Shell), un canal de comandos de IA agéntica (compatible con OpenClaw y cualquier agente con firma HMAC), reproducción instantánea de Time Machine y detección de cambios terrestres por satélite SAR. Esta es una red de pruebas experimental — no es un mensajero privado ni un sistema de gobernanza en producción.


✨ Características

🧅 InfoNet — Malla de Inteligencia Descentralizada + Sovereign Shell (expandido en v0.9.7)

La primera capa de comunicación y gobernanza de inteligencia descentralizada construida directamente en una plataforma OSINT. Sin cuentas, sin registro, sin identidad requerida. v0.9.7 promueve InfoNet de una capa de chat a una economía de gobernanza completa con un camino claro hacia una plataforma de inteligencia descentralizada que preserva la privacidad.

Capa de comunicación (desde v0.9.6):

  • InfoNet Red de Pruebas Experimental — Un relevo de mensajes global y ofuscado utilizando Tor y Reticulum. Cualquier persona que ejecute ShadowBroker puede transmitir y recibir en InfoNet. Los mensajes pasan a través de una capa de relevo Wormhole con personas de puerta, firma canónica de carga útil Ed25519 y ofuscación de transporte.
  • Panel de Chat de Malla — Interfaz de tres pestañas: INFONET (chat de puerta con transporte ofuscado), MESH (integración de radio Meshtastic), DEAD DROP (intercambio de mensajes peer-to-peer con buzones de correo de época basados en tokens — canal más fuerte actualmente).
  • Sistema de Persona de Puerta — Identidades seudónimas con claves de firma Ed25519, paquetes de claves previas, verificación de contacto por palabras SAS e informes de abuso.
  • Terminal de Malla — CLI integrada: send, dm, comandos de mercado, inspección de estado de puerta. Panel arrastrable, se minimiza a la barra superior. Escriba help para ver todos los comandos.
  • Pila Criptográfica — Firma Ed25519, Diffie-Hellman X25519, cifrado AESGCM con derivación de clave HKDF, sistema de compromiso de cadena hash. Andamiaje de DM de doble trinquete en progreso.

Sovereign Shell — economía de gobernanza (NUEVO en v0.9.7):


📊 Fuentes de datos y APIs

🚀 Empezando

🐳 Configuración con Docker (Recomendado para autoalojamiento)

El repositorio incluye un docker-compose.yml que descarga imágenes preconstruidas desde GitHub Container Registry.```bash git clone https://github.com/BigBodyCobain/Shadowbroker.git cd Shadowbroker

Add your API keys in a repo-root .env file (optional — see Environment Variables below)

docker compose pull docker compose up -d

root@kitploit:~
Abre `http://localhost:3000` para ver el panel de control.

> **¿Desplegando públicamente o en una LAN?** No se necesita configuración para la mayoría de los casos.
> El frontend redirige todas las llamadas API a través del servidor Next.js a `BACKEND_URL`,
> que por defecto es `http://backend:8000` (red interna de Docker).
> El puerto `8000` del host está publicado solo para acceso local a la API/depuración (`127.0.0.1:8000`
> en `docker-compose.yml`). Si entra en conflicto con otro servicio, establece
> `BACKEND_PORT=8001` en `.env`; deja `BACKEND_URL` como `http://backend:8000`
> porque ese es el puerto interno de Docker.
>
> **Ejecutando el backend fuera de Docker** (`cd backend && python main.py`):
> el servidor de desarrollo se vincula **solo a loopback** (`127.0.0.1:8000`) por lo que otras máquinas en
> tu LAN no pueden acceder a rutas de administrador/confianza local con un `ADMIN_KEY` vacío. Establece
> `SHADOWBROKER_DEV_BIND_ALL=true` en `.env` solo cuando deliberadamente necesites
> `0.0.0.0` y uses un `ADMIN_KEY` fuerte para cualquier llamador no local.
> El límite de memoria del backend se controla mediante `BACKEND_MEMORY_LIMIT` y por defecto es
> `4G`. Si Docker reporta eventos OOM, el backend se reiniciará y las capas lentas
> pueden verse vacías hasta que se vuelvan a poblar.
>
> Si tu backend se ejecuta en un **host o puerto diferente**, establece `BACKEND_URL` en tiempo de ejecución — no se necesita reconstruir:
>
> ```bash
> # Linux / macOS
> BACKEND_URL=http://myserver.com:9096 docker compose up -d
>
> # Podman (via compose.sh wrapper)
> BACKEND_URL=http://192.168.1.50:9096 ./compose.sh up -d
>
> # Windows (PowerShell)
> $env:BACKEND_URL="http://myserver.com:9096"; docker compose up -d
>
> # Or add to a .env file next to docker-compose.yml:
> # BACKEND_URL=http://myserver.com:9096
> ```

**Usuarios de Podman:** No pases la URL de GitHub a `podman compose pull`; clona el repositorio primero, `cd Shadowbroker`, luego ejecuta compose desde esa carpeta. `podman compose` también requiere un proveedor de Compose. Si Podman informa `looking up compose provider failed`, instala uno:```bash
# Linux / macOS / WSL
python3 -m pip install --user podman-compose
podman-compose pull
podman-compose up -d

📦 Inicio rápido (sin necesidad de código)

Si solo quieres ejecutar el panel sin usar comandos de terminal:

  1. Ve a la pestaña Releases en el lado derecho de esta página del repositorio.
  2. Descarga el último archivo .zip de la versión.
  3. Extrae la carpeta en tu computadora.
  4. Windows: Haz doble clic en start.bat. Mac/Linux: Abre la terminal, escribe chmod +x start.sh, dos2unix start.sh y ejecuta ./start.sh.
  5. ¡Se instalará automáticamente todo y lanzará el panel!

Notas sobre el lanzador local:

  • start.bat / start.sh ejecutan la aplicación sin Docker: instalan dependencias e inician ambos servidores directamente.
  • Si los puntos finales de identidad de Wormhole o contacto DM fallan después de una actualización, consulta la carpeta docs/mesh/ para solucionar problemas.
  • Para la implementación de testigo raíz de DM, transparencia y monitoreo de operadores, comienza con docs/mesh/wormhole-dm-root-operations-runbook.md.

💻 Configuración para desarrolladores

Si deseas modificar el código o ejecutar desde el código fuente:

Requisitos previos

  • Node.js 18+ y npm — nodejs.org
  • Python 3.10, 3.11 o 3.12 con pip — python.org (marca "Agregar a PATH" durante la instalación)
    • ⚠️ Python 3.13+ puede tener problemas de compatibilidad con algunas dependencias. Se recomienda 3.11 o 3.12.
  • Claves de API para: aisstream.io (obligatorio) y opcionalmente opensky-network.org (OAuth2), lta.gov.sg

Instalación```bash

Clone the repository

git clone https://github.com/BigBodyCobain/Shadowbroker.git cd Shadowbroker

Backend setup

cd backend python -m venv venv venv\Scripts\activate # Windows

source venv/bin/activate # macOS/Linux


🎛️ Capas de Datos

Las 41 capas se pueden activar/desactivar de forma independiente desde el panel izquierdo:


🔧 Rendimiento

La plataforma está optimizada para manejar conjuntos de datos masivos en tiempo real:

  • Compresión Gzip — cargas útiles de API comprimidas ~92% (11.6 MB → 915 KB)
  • Caché ETag — las respuestas 304 Not Modified evitan el análisis redundante de JSON
  • Recorte de viewport — Solo se renderizan las características dentro de los límites del mapa visible (+20% de búfer)
  • Actualizaciones imperativas del mapa — Las capas de alto volumen (vuelos, satélites, incendios) evitan la reconciliación de React mediante llamadas directas a setData()
  • Renderizado agrupado — Barcos, CCTV, terremotos y centros de datos usan agrupamiento de MapLibre para reducir el recuento de características
  • Actualizaciones de viewport con debounce — El debounce de 300ms evita la reconstrucción excesiva de GeoJSON durante el desplazamiento/zoom; debounce de 2s en capas densas (satélites, incendios)
  • Interpolación de posición — Animación suave de tick de 10s entre actualizaciones de datos
  • React.memo — Componentes pesados envueltos para evitar re-renderizaciones innecesarias
  • Precisión de coordenadas — Lat/lng redondeado a 5 decimales (~1m) para reducir el tamaño del JSON

📁 Estructura del Proyecto

Los nuevos colaboradores pueden usar docs/contributor-map.md para una guía de orientación más breve.``` Shadowbroker/ ├── openclaw-skills/shadowbroker/ # OpenClaw skill — SKILL.md, sb_query.py client, alerts/monitor helpers ├── backend/ │ ├── main.py # FastAPI app, middleware, API routes (~4,000 lines) │ ├── cctv.db # SQLite CCTV camera database (auto-generated) │ ├── config/ │ │ └── news_feeds.json # User-customizable RSS feed list │ ├── services/ │ │ ├── data_fetcher.py # Core scheduler — orchestrates all data sources │ │ ├── ais_stream.py # AIS WebSocket client (25K+ vessels) │ │ ├── carrier_tracker.py # OSINT carrier position estimator (GDELT news scraping) │ │ ├── cctv_pipeline.py # 14-source CCTV camera ingestion pipeline │ │ ├── ssrf_guard.py # SSRF validation for operator recon fetches │ │ ├── sanctions/ofac.py # OpenSanctions OFAC SDN index │ │ ├── osint/lookups.py # Server-side recon lookups (Osiris port) │ │ ├── osint/openclaw_recon.py # OpenClaw dispatch for recon + entity_expand │ │ ├── osint_intel/resolve.py # Entity graph resolver (Wikidata + OFAC) │ │ ├── scm/suppliers.py # Supply-chain risk overlay │ │ ├── intel_feeds/ # Country risk index helpers │ │ ├── fetchers/malware.py # abuse.ch Feodo + URLhaus │ │ ├── fetchers/cyber_status.py # CISA KEV feed │ │ ├── fetchers/telegram_osint.py # Public Telegram channel scrape + geoparse │ │ ├── third_party/osiris/ # MIT attribution for Osiris-derived code │ │ ├── geopolitics.py # GDELT + Ukraine frontline + air alerts │ │ ├── region_dossier.py # Right-click country/city intelligence │ │ ├── radio_intercept.py # Police scanner feeds + OpenMHZ │ │ ├── kiwisdr_fetcher.py # KiwiSDR receiver scraper │ │ ├── sentinel_search.py # Sentinel-2 STAC imagery search │ │ ├── shodan_connector.py # Shodan device search connector │ │ ├── sigint_bridge.py # APRS-IS TCP bridge │ │ ├── network_utils.py # HTTP client with curl fallback │ │ ├── api_settings.py # API key management │ │ ├── news_feed_config.py # RSS feed config manager │ │ ├── fetchers/ │ │ │ ├── flights.py # OpenSky, adsb.lol, GPS jamming, holding patterns │ │ │ ├── geo.py # AIS vessels, carriers, GDELT, fishing activity │ │ │ ├── satellites.py # CelesTrak TLE + SGP4 propagation │ │ │ ├── earth_observation.py # Quakes, fires, volcanoes, air quality, weather │ │ │ ├── infrastructure.py # Data centers, power plants, military bases │ │ │ ├── trains.py # Amtrak + DigiTraffic European rail │ │ │ ├── sigint.py # SatNOGS, TinyGS, APRS, Meshtastic │ │ │ ├── meshtastic_map.py # Meshtastic MQTT + map node aggregation │ │ │ ├── military.py # Military aircraft classification │ │ │ ├── news.py # RSS intelligence feed aggregation │ │ │ ├── financial.py # Global markets data │ │ │ └── ukraine_alerts.py # Ukraine air raid alerts │ │ └── mesh/ # InfoNet / Wormhole protocol stack │ │ ├── mesh_protocol.py # Core mesh protocol + routing │ │ ├── mesh_crypto.py # Ed25519, X25519, AESGCM primitives │ │ ├── mesh_hashchain.py # Hash chain commitment system (~1,400 lines) │ │ ├── mesh_router.py # Multi-transport router (APRS, Meshtastic, WS) │ │ ├── mesh_wormhole_persona.py # Gate persona identity management │ │ ├── mesh_wormhole_dead_drop.py # Dead Drop token-based DM mailbox │ │ ├── mesh_wormhole_ratchet.py # Double-ratchet DM scaffolding │ │ ├── mesh_wormhole_gate_keys.py # Gate key management + rotation │ │ ├── mesh_wormhole_seal.py # Message sealing + unsealing │ │ ├── mesh_merkle.py # Merkle tree proofs for data commitment │ │ ├── mesh_reputation.py # Node reputation scoring │ │ ├── mesh_oracle.py # Oracle consensus protocol │ │ └── mesh_secure_storage.py # Secure credential storage │ ├── routers/ │ │ ├── osint.py # /api/osint/* recon routes (local operator) │ │ ├── entity_graph.py # /api/entity/expand │ │ ├── scm.py # /api/scm-suppliers │ │ └── intel_feeds.py # /api/malware, /api/cyber-threats, /api/telegram-feed, /api/country-risk ├── frontend/ │ ├── public/data/ │ │ └── submarine-cables.json # Static undersea cable GeoJSON │ ├── src/ │ │ ├── app/ │ │ │ └── page.tsx # Main dashboard — state, polling, layout │ │ └── components/ │ │ ├── MaplibreViewer.tsx # Core map — all GeoJSON layers │ │ ├── MeshChat.tsx # InfoNet / Mesh / Dead Drop chat panel │ │ ├── MeshTerminal.tsx # Draggable CLI terminal │ │ ├── NewsFeed.tsx # SIGINT feed + entity detail panels │ │ ├── WorldviewLeftPanel.tsx # Data layer toggles (40+ layers) │ │ ├── ShodanPanel.tsx # Shodan device search overlay │ │ ├── ReconPanel.tsx # Server-side OSINT recon toolkit │ │ ├── ScmPanel.tsx # Supply-chain risk command panel │ │ ├── EntityGraphPanel.tsx # Entity graph on map selection │ │ ├── MaplibreViewer/popups/TelegramOsintPopup.tsx # Threat-intercept styled Telegram pin popups │ │ ├── WorldviewRightPanel.tsx # Search + filter sidebar │ │ ├── AdvancedFilterModal.tsx # Airport/country/owner filtering │ │ ├── MapLegend.tsx # Dynamic legend with all icons │ │ ├── MarketsPanel.tsx # Global financial markets ticker │ │ ├── RadioInterceptPanel.tsx # Scanner-style radio panel │ │ ├── FindLocateBar.tsx # Search/locate bar │ │ ├── ChangelogModal.tsx # Version changelog popup (auto-shows on upgrade) │ │ ├── SettingsPanel.tsx # API Keys + News Feed + Shodan config │ │ ├── ScaleBar.tsx # Map scale indicator │ │ └── ErrorBoundary.tsx # Crash recovery wrapper │ └── package.json


🤝 Colaboradores

ShadowBroker se construye en abierto. Estas personas enviaron código real:


⚠️ Aviso legal

Esta herramienta está construida enteramente con datos de inteligencia de código abierto (OSINT) disponibles públicamente. No se utilizan datos clasificados, restringidos o no públicos. Las posiciones de los portadores son estimaciones basadas en informes públicos. La interfaz de usuario con temática militar es puramente estética.


📜 Licencia

Este proyecto es para fines educativos y de investigación personal. Consulta los términos de servicio de cada proveedor de API para conocer las restricciones de uso de datos.


Construido con ☕ y demasiadas llamadas API

Descargar herramienta
  • Siga el tráfico naval incluyendo más de 25,000 embarcaciones AIS, actividad pesquera a través de Global Fishing Watch, y superyates de multimillonarios.
  • Siga terremotos, erupciones volcánicas, incendios forestales activos (NASA FIRMS), alertas meteorológicas severas y lecturas de calidad del aire en todo el mundo.
  • Mapa de bases militares, más de 35,000 plantas de energía, más de 2,000 centros de datos y regiones de corte de internet — referenciados cruzadamente de forma automática.
  • Conéctese a nodos de radio mesh Meshtastic y redes de radioaficionados APRS — visibles en el mapa e integrados en Mesh Chat.
  • Detecte cambios en el suelo a través de la cobertura de nubes con SAR (Radar de Apertura Sintética) — deformación del suelo a escala milimétrica, extensión de inundaciones, perturbación de la vegetación y evaluaciones de daños de NASA OPERA y Copernicus EGMS. Defina sus propias áreas de vigilancia y reciba alertas de anomalías. Gratis con una cuenta de NASA Earthdata.
  • Cambie modos visuales — DEFAULT, SATELLITE, FLIR (térmico), NVG (visión nocturna), CRT (terminal retro) — a través del botón STYLE.
  • Siga trenes en EE. UU. (Amtrak) y Europa (DigiTraffic) en tiempo real.
  • Estime dónde están los portaaviones estadounidenses utilizando raspado automatizado de noticias GDELT — ninguna otra herramienta abierta hace esto.
  • Busque dispositivos conectados a internet en todo el mundo a través de Shodan — cámaras, sistemas SCADA, bases de datos — trazados como una superposición en vivo en el mapa.
  • Ejecute un kit de herramientas de reconocimiento completo desde la barra lateral izquierda — geolocalización IP, DNS, RDAP/WHOIS, transparencia de certificados, BGP/ASN, búsqueda de sanciones OFAC, consulta CVE, verificaciones de amenazas Tor/OTX y barridos de subred (InternetDB proxyado en el lado del servidor).
  • Expanda un grafo de entidades cuando seleccione una aeronave, embarcación, empresa o IP — Wikidata + OFAC + enlaces cruzados de tienda en vivo renderizados en el panel Entity Graph.
  • Monitoree el riesgo de la cadena de suministro — fábricas de semiconductores y baterías de nivel 1/2 puntuadas contra terremotos cercanos, incendios forestales y eventos de conflicto (panel SCM).
  • Active/desactive puntos críticos de malware C2 — feeds de abuse.ch Feodo Tracker + URLhaus mapeados por país (capa opcional).
  • Monitoree canales OSINT de Telegram — feeds públicos t.me/s de guerra/conflicto (OSINTdefender, NEXTA, etc.) raspados cada hora, puntuados por riesgo, georreferenciados a anclas de metro y trazados como pines de mapa cliqueables con medios en línea.
  • Superponer cables submarinos globales — rutas de cable estáticas derivadas de TeleGeography (capa opcional).
  • CanalEstado de PrivacidadDetalles
    Meshtastic / APRSPÚBLICOLas transmisiones de radio RF son públicas e interceptables por diseño.
    InfoNet Gate ChatOFUSCADOLos mensajes se ofuscan con personas de puerta y firma canónica de carga útil, pero NO están cifrados de extremo a extremo. Los metadatos no están ocultos a pesar de estar diseñados a través de Tor y Reticulum (Trabajo en progreso).
    Dead Drop DMsCANAL MÁS FUERTE ACTUALMENTEBuzón de correo de época basado en tokens con verificación de palabras SAS. El canal más fuerte en esta compilación, pero aún no confiadamente privado.
    Gobernanza de Sovereign ShellLIBRO MAYOR PÚBLICOPeticiones, votos, hashes de actualización y apuestas de disputa son eventos firmados en una cadena de hash pública. Seudónimo a través de persona de puerta, pero las acciones de gobernanza son intencionalmente observables.
    Primitivas de privacidad (RingCT / sigilo / DEX)AÚN NO CONECTADASLos contratos de protocolo bloqueados están en su lugar, pero el esquema criptográfico no ha sido elegido. La crate Rust de núcleo de privacidad es el objetivo de integración para un sprint futuro.

    No transmita nada sensible en ningún canal. Trate todos los canales como abiertos y públicos por ahora. El cifrado de extremo a extremo y un endurecimiento nativo/Tauri más profundo son los próximos hitos. Si bifurca este proyecto, mantenga estas etiquetas intactas y no haga afirmaciones de privacidad más fuertes de las que soporta la implementación.

    Para una imagen completa de lo que la malla realmente defiende y lo que no, lea el modelo de amenazas y la conciliación de afirmaciones. Cada oración anterior está mapeada allí a la ruta de código que la aplica (o no).

    • Peticiones + DSL de Gobernanza — Cambios de parámetros en cadena a través de peticiones firmadas. Ejecutor de carga útil con seguridad de tipos para UPDATE_PARAM, BATCH_UPDATE_PARAMS, ENABLE_FEATURE y DISABLE_FEATURE. Los parámetros ajustables cambian por voto — no se requieren despliegues de código.
    • Gobernanza de Hash de Actualización — Las actualizaciones de protocolo que necesitan nueva lógica (no solo cambios de parámetros) votan sobre un hash SHA-256 de la versión verificada. Supermayoría del 80%, cuórum del 40%, activación de Nodo Pesado del 67%. Ciclo de vida: firmas → votación → ventana de desafío → esperando preparación → activado.
    • Resolución y Mercados de Disputa — Apueste en resultados de resolución de mercado (sí / no / datos_no_disponibles), abra disputas con evidencia vinculada y apueste en confirmación o reversión de disputa. El estado de envío por fila permanece aislado para que las acciones concurrentes no compartan una ranura en vuelo.
    • Envío de Evidencia — Paquetes de evidencia vinculados con canonicalización SHA-256 del lado del cliente que coincide exactamente con repr() de Python, por lo que los hashes circulan limpiamente a través de la cadena.
    • Suspensión / Apagado / Apelaciones de Puerta — Formularios de presentación para suspender o apagar una puerta, con un flujo de apelación reutilizable que apunta automáticamente a la petición pendiente.
    • Arranque de Nodo Elegible-Un-Voto — Los primeros 100 mercados se resuelven mediante un voto por nodo elegible en lugar de resolución ponderada por apuesta. Elegibilidad: antigüedad de identidad ≥ 3 días, no en conjunto de exclusión de predictor, PoW Argon2id válido (solo Nodo Pesado). Transiciona a resolución apostada en 1000 nodos.
    • Finalidad de Dos Niveles + Época — Los eventos de Nivel 1 se propagan al estilo CRDT para baja latencia; los eventos de Nivel 2 requieren finalidad de época antes de poder actuar sobre ellos. Rotación de identidad, penalizaciones progresivas, hitos de rampa e invariantes constitucionales aplicados a través de MappingProxyType.
    • Sondeo Adaptativo — Las vistas de Sovereign Shell sondean cada 8 segundos durante fases activas de votación / desafío / activación, cada 30–60 segundos cuando está inactivo. La votación se siente en vivo sin una capa de websocket.
    • Diagnósticos Textuales — Cada botón de escritura muestra la razón de rechazo textual del backend. Sin toasts opacos de "denegado".

    Pista de primitivas de privacidad (NUEVO en v0.9.7):

    • Teclas de Función — Andamiaje de Credencial Anónima — La infraestructura está en su lugar para anuladores, desafío-respuesta, recibos de confirmación en dos fases, códigos de denegación enumerados y liquidación por lotes. El desafío-respuesta de hoy es un marcador de posición basado en HMAC para pruebas de integración, no una prueba de ciudadanía anónima o de conocimiento cero de producción. La verdadera emisión desvinculable aún espera una decisión de primitiva (firmas ciegas RSA vs BBS+ vs U-Prove vs Idemix).
    • Contratos de Protocolo Bloqueados — Interfaces estables en services/infonet/privacy/contracts.py para firmas de anillo, direcciones sigilosas, compromisos Pedersen, pruebas de rango y coincidencia DEX. La crate Rust privacy-core es el objetivo de integración — ningún llamante del módulo de privacidad necesita saber qué esquema está activo.
    • Ruta Sprint 11+ — Cuando se elija el esquema criptográfico, las primitivas se conectarán a los Protocolos bloqueados sin cambios en la API.

    Red de Pruebas Experimental — Sin Garantía de Privacidad: Los mensajes de InfoNet están ofuscados pero NO cifrados de extremo a extremo. La red Mesh (Meshtastic/APRS) NO es privada — las transmisiones de radio son inherentemente públicas. Los contratos de primitivas de privacidad están andamiados pero aún no conectados. No envíe nada sensible en ningún canal. Trate todos los canales como abiertos y públicos por ahora.

    🔍 Kit de Herramientas de Reconocimiento y Shodan (derivado de Osiris, seguridad primero)

    Adaptado de la pila de reconocimiento OSIRIS (MIT) con el modelo proxy de ShadowBroker. Atribución: backend/third_party/osiris/NOTICE.md.

    Kit de Herramientas de Reconocimiento (barra lateral izquierda — solo operador local):

    • IP / DNS / WHOIS — Geolocalización de ip-api.com, Google DNS-over-HTTPS, datos del registrante RDAP con puntuación opcional de encabezados de seguridad HTTP
    • Certificados y BGP — Descubrimiento de subdominios crt.sh, búsquedas de ASN/prefijo bgpview.io
    • Inteligencia de amenazas — Pulsos de AlienVault OTX, comprobaciones de nodos de salida Tor, reputación opcional por IP/dominio
    • Sanciones — Índice us_ofac_sdn de OpenSanctions (CC-BY); comprobaciones cruzadas en entidades WHOIS y cadenas ISP/org de IP
    • CVE / MAC / GitHub / filtraciones — API MITRE CVE, búsqueda de proveedor MAC, reconocimiento de perfil GitHub, comprobaciones de brechas públicas
    • Barrido IP — /api/osint/sweep/scan geolocaliza un objetivo /24–/32 y proxy el descubrimiento de host Shodan InternetDB del lado del servidor (el navegador nunca contacta InternetDB directamente)
    • Protección SSRF — Los nombres de host privados, de bucle local, link-local y de metadatos se bloquean antes de cualquier recuperación proporcionada por el usuario

    Grafo de entidad — Seleccione cualquier entidad del mapa para abrir el panel de Grafo de Entidad (GET /api/entity/expand). Resuelve aeronaves, embarcaciones, empresas, personas, IPs y países en un grafo de nodo/enlace (Wikidata SPARQL + OFAC + almacén en memoria de vuelos/barcos).

    OpenClaw / acceso de agente — Los mismos backends de reconocimiento están disponibles en el canal de comandos HMAC (sin puerta de operador local del navegador): osint_lookup (IP/DNS/WHOIS/certs/BGP/sanciones/CVE/MAC/GitHub/filtraciones/amenazas pasivas), entity_expand (grafo de relaciones) y osint_sweep (escaneo de subred activo — solo nivel de acceso completo). Llame a osint_tools para listar los tipos de búsqueda compatibles. Paquete de habilidades: openclaw-skills/shadowbroker/ (SKILL.md + sb_query.py).

    Superposición Shodan (sin cambios):

    • Búsqueda de Dispositivos de Internet — Consulte Shodan con su propia clave API; los resultados se trazan como una superposición en vivo
    • Marcadores Configurables — Personalización de forma, color y tamaño para resultados de Shodan

    🛩️ Seguimiento de Aviación

    • Vuelos Comerciales — Posiciones en tiempo real a través de OpenSky Network (~5,000+ aeronaves)
    • Aeronaves Privadas — Aviación general ligera, turbohélices, aviones de negocios rastreados por separado
    • Jets Privados — Aeronaves de individuos de alto patrimonio neto con identificación del propietario
    • Vuelos Militares — Cisternas, ISR, cazas, transportes a través del punto final militar de adsb.lol
    • Acumulación de Rastro de Vuelo — Rastros de migas de pan persistentes para todas las aeronaves rastreadas
    • Detección de Patrón de Espera — Marca automáticamente aeronaves en círculo (>300° de giro total)
    • Clasificación de Aeronaves — Iconos SVG precisos de forma: aviones de línea, turbohélices, aviones de negocios, helicópteros
    • Detección en Tierra — Aeronaves por debajo de 100 pies AGL renderizadas con iconos grises

    🚢 Seguimiento Marítimo

    • Flujo de Buques AIS — 25,000+ embarcaciones a través de WebSocket de aisstream.io (tiempo real)
    • Clasificación de Buques — Tipos de embarcaciones de carga, tanque, pasajero, yate, militar con iconos codificados por colores
    • Rastreador de Grupo de Ataque de Portaaviones — Los 11 portaaviones activos de la Armada de EE. UU. con posiciones estimadas por OSINT. Ninguna otra herramienta abierta hace esto.
      • Raspado automatizado de noticias GDELT analiza informes de movimiento de portaaviones para estimar posiciones
      • 50+ mapeos de región geográfica a coordenadas (ej. "Mediterráneo Oriental" → lat/lng)
      • Posiciones almacenadas en caché de disco, se actualiza automáticamente a las 00:00 y 12:00 UTC
    • Cruceros y Buques de Pasajeros — Capa dedicada para cruceros y transbordadores
    • Actividad Pesquera — Eventos de embarcaciones de Global Fishing Watch (NUEVO)
    • Visualización Agrupada — Los barcos se agrupan en zoom bajo con etiquetas de recuento, se desagrupan al acercar

    🚆 Seguimiento Ferroviario (NUEVO en v0.9.6)

    • Trenes Amtrak — Posiciones en tiempo real de trenes Amtrak en EE. UU. con velocidad, rumbo, ruta y estado
    • Ferrocarril Europeo — Integración DigiTraffic para posiciones de trenes europeos

    🛰️ Espacio y Satélites

    • Seguimiento Orbital — Posiciones de satélites en tiempo real a través de datos TLE de CelesTrak + propagación SGP4 (2,000+ satélites activos, sin clave API requerida)
    • Clasificación por Tipo de Misión — Codificado por colores por misión: reconocimiento militar (rojo), SAR (cian), SIGINT (blanco), navegación (azul), alerta temprana (magenta), imágenes comerciales (verde), estación espacial (oro)
    • Estaciones Terrestres SatNOGS — Red de estaciones terrestres de satélites amateur con datos de observación en vivo (NUEVO)
    • Satélites LoRa TinyGS — Seguimiento de constelación de satélites LoRa (NUEVO)

    🌍 Geopolítica y Conflictos

    • Incidentes Globales — Agregación de eventos de conflicto impulsada por GDELT (últimas 8 horas, ~1,000 eventos)
    • Frente de Ucrania — GeoJSON de frente de guerra en vivo desde DeepState Map
    • Alertas Aéreas de Ucrania — Alertas de incursión aérea regionales en tiempo real (NUEVO)
    • Fuente de Noticias SIGINT/RISINT — Agregación RSS en tiempo real de múltiples fuentes centradas en inteligencia con fuentes personalizables por el usuario (hasta 20 fuentes, pesos de prioridad configurables 1-5)
    • Dossier de Región — Haga clic derecho en cualquier lugar de la Tierra para un informe de inteligencia instantáneo:
      • Perfil del país (población, capital, idiomas, monedas, área)
      • Jefe de Estado actual y tipo de gobierno (consulta en vivo Wikidata SPARQL)
      • Resumen local de Wikipedia con miniatura
      • Última foto satelital Sentinel-2 con fecha de captura y cobertura de nubes (resolución de 10 m)

    🛰️ Imágenes Satelitales

    • NASA GIBS (MODIS Terra) — Superposición diaria de imágenes satelitales en color verdadero con control deslizante de tiempo de 30 días, reproducción/pausa de animación y control de opacidad (~250 m/píxel)
    • Alta Resolución Satelital (Esri) — Imágenes de resolución submétrica a través de Esri World Imagery — acerque a edificios y detalles del terreno (zoom 18+)
    • Tarjeta de Inteligencia Sentinel-2 — Haga clic derecho en cualquier lugar del mapa para una tarjeta de inteligencia flotante que muestra la última foto satelital Sentinel-2 con fecha de captura, % de cobertura de nubes e imagen de resolución completa en la que se puede hacer clic (resolución de 10 m, actualizada cada ~5 días)
    • API de Proceso de Sentinel Hub — Imágenes satelitales Copernicus CDSE con flujo de token OAuth2 (NUEVO)
    • Luces Nocturnas VIIRS — Superposición de detección de cambios de luz nocturna (NUEVO)
    • 5 Modos Visuales — Alterne toda la estética del mapa a través del botón ESTILO:
      • PREDETERMINADO — Mapa base CARTO oscuro
      • SATELITAL — Esri World Imagery submétrica
      • FLIR — Estética de imágenes térmicas (escala de grises invertida)
      • NVG — Fósforo verde de visión nocturna
      • CRT — Superposición de líneas de escaneo de terminal retro

    🛰️ Detección de Cambios Terrestres SAR (NUEVO)

    • Capa de Radar de Apertura Sintética — Detecta cambios en el suelo a través de la cobertura de nubes, de noche, en cualquier lugar de la Tierra. Dos modos, ambos gratuitos:
      • Modo A (Catálogo) — Metadatos de escena gratuitos de Sentinel-1 del Alaska Satellite Facility. Sin cuenta requerida. Muestra cuándo ocurrieron los pasos de radar sobre sus AOI y cuándo viene el próximo paso.
      • Modo B (Anomalías Completas) — Alertas de cambio de suelo en tiempo real de NASA OPERA (DISP, DSWx, DIST-ALERT) y Copernicus EGMS. Requiere una cuenta gratuita de NASA Earthdata — el asistente en la aplicación lo guía a través de la configuración en menos de un minuto.
    • Tipos de Anomalía — Deformación del suelo (subsidencia a escala mm, deslizamientos de tierra), cambio de agua superficial (extensión de inundación), perturbación de vegetación (deforestación, cicatrices de incendio, cráteres de explosión), evaluaciones de daños (UNOSAT/Copernicus EMS verificados) y detección de cambio de coherencia
    • Visualización en el Mapa — Pines de anomalía codificados por colores según el tipo (naranja para deformación, cian para agua, verde para vegetación, rojo para daño, morado para coherencia). Límites de AOI dibujados como polígonos discontinuos con coloración basada en categoría. Haga clic en cualquier pin para un popup de detalle con magnitud, confianza, solucionador, recuento de escenas y enlace de procedencia.
    • Editor de AOI — Defina áreas de interés directamente desde el mapa. Haga clic en el botón "EDITAR AOI" cuando la capa SAR esté activa, luego use la herramienta de mira para hacer clic y soltar un centro de AOI en el mapa. Establezca nombre, radio (1–500 km) y categoría. Los AOI aparecen en el mapa inmediatamente.
    • Integración con OpenClaw — El agente de IA puede inspeccionar detalles de anomalía SAR (sar_pin_click) y volar el mapa del operador a cualquier centro de AOI (sar_focus_aoi) — permitiendo flujos de trabajo de analista colaborativos.
    • Panel de Configuración — Pestaña SAR dedicada en Configuración que muestra el estado del Modo A/B, el estado de integración de OpenClaw y permite revocar las credenciales de Earthdata con un clic.

    📻 Radio Definida por Software y SIGINT

    • Receptores KiwiSDR — 500+ receptores SDR públicos trazados en todo el mundo con marcadores ámbar agrupados
    • Sintonizador de Radio en Vivo — Haga clic en cualquier nodo KiwiSDR para abrir un sintonizador SDR incrustado directamente en el panel SIGINT
    • Visualización de Metadatos — Nombre del nodo, ubicación, tipo de antena, bandas de frecuencia, usuarios activos
    • Radio de Malla Meshtastic — Integración de radio de malla basada en MQTT con mapa de nodos, integrado en Chat de Malla (NUEVO)
    • Integración APRS — Posicionamiento de radioaficionados a través de feed TCP APRS-IS (NUEVO)
    • Detección de Interferencia GPS — Análisis en tiempo real de valores NAC-P (Categoría de Precisión de Navegación) de aeronaves
      • La agregación basada en cuadrícula identifica zonas de interferencia
      • Cuadrados de superposición rojos con etiquetas de severidad "INTERFERENCIA GPS XX%"
    • Panel de Interceptación de Radio — IU estilo escáner con feeds de escáner policial/bomberos de OpenMHZ. Haga clic en cualquier sistema para escuchar en vivo. El modo de escaneo recorre automáticamente los feeds activos. Escuche con un clic comunicaciones de emergencia reales.

    📷 Vigilancia

    • Malla CCTV — 22,000+ cámaras de tráfico en vivo de 21 ingestores en 10 países (EE. UU., Reino Unido, Canadá, Australia, Austria, España, Singapur, Países Bajos cuando el feed NDW está activo, más OSM):
      • 🇬🇧 Transport for London JamCams
      • 🇺🇸 NYC DOT, Austin TX (TxDOT)
      • 🇺🇸 California (12 distritos de Caltrans), Estado de Washington (WSDOT), Georgia DOT, Illinois DOT, Michigan DOT
      • 🇪🇸 DGT Nacional España (20 ciudades), Ayuntamiento de Madrid (357 cámaras a través de KML)
      • 🇦🇹 Autopistas ASFINAG Austria webcams
      • 🇸🇬 LTA Singapur
      • 🌍 Windy Webcams
    • Renderizado de Feed — Detección y renderizado automáticos de feeds de video, MJPEG, HLS, incrustación, mosaico satelital e imagen
    • Visualización de Mapa Agrupado — Puntos verdes se agrupan con etiquetas de recuento, se desagrupan al acercar

    🔥 Monitoreo Ambiental y de Peligros

    • Puntos Calientes de Incendios NASA FIRMS (24h) — 5,000+ anomalías térmicas globales del satélite NOAA-20 VIIRS, actualizadas cada ciclo. Iconos en forma de llama codificados por colores según la potencia radiativa del incendio (FRP): amarillo (bajo), naranja, rojo, rojo oscuro (intenso). Agrupados en zoom bajo con marcadores de grupo con forma de fuego.
    • Volcanes — Volcanes del Holoceno del Programa de Vulcanismo Global Smithsonian trazados en todo el mundo (NUEVO)
    • Alertas Meteorológicas — Polígonos de clima severo con indicadores de urgencia/severidad (NUEVO)
    • Calidad del Aire (PM2.5) — Estaciones OpenAQ en todo el mundo con lecturas de partículas en tiempo real (NUEVO)
    • Terremotos (24h) — Feed de terremotos en tiempo real del USGS con marcadores escalados por magnitud
    • Insignia del Clima Espacial — Indicador de tormenta geomagnética NOAA en vivo en la barra de estado inferior. Índice Kp codificado por colores: verde (tranquilo), amarillo (activo), rojo (tormenta G1–G5). Datos del feed planetario del índice K de 1 minuto del SWPC.

    🏗️ Monitoreo de Infraestructura* Monitor de Cortes de Internet — Alertas regionales de conectividad a internet desde Georgia Tech IODA. Marcadores grises en regiones afectadas con porcentaje de severidad. Utiliza solo fuentes de datos confiables (tablas de enrutamiento BGP, sondeo activo de ping) — sin datos de telescopio ni interpolados.

    • Mapeo de Centros de Datos — Más de 2,000 centros de datos globales trazados a partir de un conjunto de datos curado. Marcadores púrpura agrupados con iconos de racks de servidores. Haga clic para operador, ubicación y referenciación cruzada automática de cortes de internet por país.
    • Bases Militares — Base de datos global de instalaciones militares y sitios de misiles (NUEVO)
    • Plantas de Energía — Más de 35,000 plantas de energía globales de la base de datos WRI (NUEVO)
    • Cables Submarinos — Rutas globales de cables submarinos a partir de GeoJSON estático derivado de TeleGeography (frontend/public/data/submarine-cables.json). Superposición de líneas opcional.
    • Capa de C2 de Malware — Servidores C2 de botnets (Feodo Tracker) y URLs recientes de malware (URLhaus) de abuse.ch, actualizados en el nivel lento cuando la capa está habilitada.
    • Riesgo de Proveedores SCM — Fábricas de nivel 1/2 y plantas de baterías (TSMC, Samsung, CATL, etc.) referenciadas cruzadamente contra terremotos, incendios FIRMS y proximidad de conflictos GDELT. Alertas en el panel SCM; capa de mapa opcional.
    • Feed de Amenazas Cibernéticas — Entradas recientes de Vulnerabilidades Explotadas Conocidas (KEV) de CISA expuestas a través de /api/cyber-threats y el alternador de capa.
    • Índice de Riesgo País — Puntuaciones estáticas de riesgo geopolítico con enriquecimiento de terremotos del USGS a través de /api/country-risk.
    • OSINT de Telegram — Vistas previas web de canales públicos (t.me/s/*) de fuentes configurables de guerra/OSINT. Fusión incremental por hora (sin re-raspado redundante), puntuación de riesgo por palabras clave, alias de lugares en cirílico/árabe, geocodificación con anclaje de metro (separada de los centroides de noticias), foto/video en línea a través del proxy /api/telegram/media. Clave de capa: telegram_osint.

    🌐 Capas y Herramientas Adicionales

    • Ciclo Día/Noche — Superposición del terminador solar que muestra el día/noche global
    • Ticker de Mercados Globales — Índices de mercados financieros en vivo (minimizable)
    • Herramienta de Medición — Medición de distancia y rumbo punto a punto en el mapa
    • Barra LOCATE — Buscar por coordenadas (31.8, 34.8) o nombre de lugar (Teherán, Estrecho de Ormuz) para volar directamente a cualquier ubicación — geocodificado a través de OpenStreetMap Nominatim

    Gaza

    🤖 Canal de Comandos de IA Agéntica — OpenClaw + Agentes Compatibles (expandido en v0.9.7)

    ShadowBroker expone un canal de comandos de IA agéntica bidireccional — un puente firmado y con niveles de acceso que otorga a cualquier agente de IA compatible acceso completo de lectura/escritura a la plataforma de inteligencia. OpenClaw es el agente de referencia, pero el canal es un protocolo abierto: cualquier agente impulsado por LLM que firme solicitudes con HMAC-SHA256 (Claude Code, GPT, LangChain, clientes personalizados de Python/TypeScript, o su propia integración) puede conectarse como un analista que ve los mismos datos que el operador y puede realizar acciones en el mapa. ShadowBroker no incluye un LLM, un entorno de ejecución de agente o pesos de modelo — proporciona la superficie; usted trae el agente.

    v0.9.7 convierte a ShadowBroker de un panel que un humano observa en una superficie de inteligencia sobre la que cualquier agente puede actuar.

    Transporte del canal (NUEVO en v0.9.7):

    • Canal de Comando Único — POST /api/ai/channel/command acepta {cmd, args} y lo envía a cualquier herramienta registrada.
    • Ejecución Concurrente por Lotes — POST /api/ai/channel/batch acepta hasta 20 comandos en una sola solicitud. El backend los ejecuta concurrentemente y devuelve un mapa de resultados en abanico. Reduce la latencia del agente en un orden de magnitud en comparación con llamadas secuenciales.
    • Acceso por Niveles — OPENCLAW_ACCESS_TIER controla qué comandos puede llamar el agente: restricted expone el conjunto de solo lectura, full añade escrituras e inyección. El endpoint de descubrimiento devuelve available_commands para que el agente pueda inspeccionar sus propias capacidades.
    • Firma HMAC-SHA256 — Cada comando se firma HMAC-SHA256(secret, METHOD|path|timestamp|nonce|sha256(body)) con protección de repetición por timestamp + nonce e integridad de solicitud. Soporta modo local (sin configuración) y modo remoto (agente en una máquina diferente / VPS).

    Capacidades:

    • Acceso Completo a Telemetría — El agente consulta todas las más de 40 capas de datos: vuelos, barcos, satélites, SIGINT, eventos de conflicto, terremotos, incendios, aguas residuales, OSINT de Telegram, malware/C2, amenazas cibernéticas CISA KEV, superposiciones SCM, actividad pesquera (GFW), mercados de predicción y más. Los endpoints de nivel rápido y lento devuelven datos enriquecidos con coordenadas geográficas, marcas de tiempo y atribución de fuente.
    • Búsqueda Compacta (preferida sobre volcados completos) — get_summary → get_layer_slice con since_layer_versions por capa (el push SSE layer_changed le dice al agente exactamente qué capas se actualizaron). search_telemetry es el índice de palabras clave entre capas al estilo Google. search_news cubre noticias, GDELT, CrowdThreat, LiveUAMap, frentes de batalla y publicaciones de Telegram. entities_near, brief_area, find_flights/find_ships/find_entity y correlate_entity responden preguntas específicas sin descargas de varios megabytes.
    • Kit de Reconocimiento en el Canal — osint_lookup ejecuta los mismos backends protegidos contra SSRF que el panel de Recon (ip, dns, whois, certs, bgp, sanctions, cve, mac, github, leaks, threats, sweep_init). entity_expand construye gráficos de relaciones de Wikidata + OFAC. osint_sweep ejecuta descubrimiento de subredes de Shodan InternetDB (nivel ). Alias de capa: , /, //, /, /.
    • Pines de Inteligencia de IA — Coloca marcadores de investigación con código de colores directamente en el mapa del operador. 14 categorías de pines (amenaza, anomalía, militar, marítimo, aviación, SIGINT, infraestructura, etc.) con puntuaciones de confianza, caducidad TTL, URLs de origen y colocación por lotes de hasta 100 pines a la vez.
    • Control del Mapa — Vuela la vista del mapa del operador a cualquier coordenada, activa búsquedas de imágenes satelitales y abre dosieres de región. El agente puede dirigir la atención del operador a ubicaciones específicas en tiempo real.
    • Cambio de Terreno SAR — Consulta feeds de anomalías SAR, inspecciona detalles de pines, gestiona AOIs y vuela el mapa para vigilar áreas. El agente puede monitorear deformación del terreno, extensión de inundaciones o daños y promocionar anomalías a pines.
    • Inyección de Capa Nativa — Introduce datos personalizados directamente en las capas nativas de ShadowBroker (cámaras CCTV, barcos, nodos SIGINT, bases militares, etc.) para que las fuentes descubiertas por el agente se representen junto a los feeds reales.
    • Participación en Malla Wormhole — El agente puede unirse a la InfoNet descentralizada, publicar mensajes firmados, unirse a canales de puerta cifrados, enviar/recibir mensajes directos cifrados e interactuar con la radio Meshtastic y Dead Drops — operando como un par de malla completo.
    • Participación en Sovereign Shell (v0.9.7) — Presentar peticiones, firmar y votar cambios de gobernanza, apostar en resoluciones y disputas, señalar la preparación de Heavy-Node para actualizaciones — todo programáticamente, todo controlado por nivel y HMAC. Los agentes se convierten en participantes de primera clase en la economía de inteligencia descentralizada.
    • Geocodificación y Escaneos de Proximidad — Resuelve nombres de lugares a coordenadas, luego escanea todas las capas dentro de un radio para obtener un resumen completo de proximidad.
    • Noticias y GDELT Cerca de una Ubicación — Extrae eventos de conflicto de GDELT y artículos de noticias agregados cerca de cualquier coordenada para conciencia situacional regional.
    • Entrega de Alertas — Envía resúmenes de inteligencia con marca, advertencias y notificaciones de amenazas a webhooks de Discord y canales de Telegram.
    • Informes de Inteligencia — Genera informes estructurados con estadísticas resumidas, principales vuelos militares, correlaciones, actividad sísmica, recuentos de SIGINT e inventarios de pines.
    • Auditable — Cada llamada al canal se registra; el operador puede inspeccionar lo que el agente ha hecho.

    Conecta un agente: Abre el panel de AI Intel en la barra lateral izquierda, haz clic en Conectar Agente y copia el secreto HMAC. Desde allí, apunta cualquier agente compatible al canal — para OpenClaw, importa ShadowBrokerClient desde openclaw-skills/shadowbroker/sb_query.py (consulta SKILL.md para ejemplos); para cualquier otro agente, usa el mismo contrato HMAC documentado anteriormente (timestamp + nonce + digest del cuerpo, controlado por nivel). Descubrimiento: GET /api/ai/tools y GET /api/ai/capabilities. El canal es el protocolo, no el agente.

    Docker Compose + agentes remotos: La interfaz del panel se comunica con el backend a través del puente privado de Docker (confianza automática). Un agente OpenClaw ejecutándose en el host (fuera del contenedor) accede a http://localhost:8000 desde la IP de la puerta de enlace de Docker — HMAC es requerido allí. En AI Intel → Conectar Agente, haz clic en Bootstrap luego Revelar, copia SHADOWBROKER_HMAC_SECRET en el entorno de tu agente, y reinicia el backend una vez para que data/openclaw.env en el volumen backend_data se cargue. Prueba rápida con:

    root@kitploit:~
    curl -s -X POST 'http://localhost:8000/api/ai/channel/command' \
      -H 'X-HMAC-Signature: ...' \
      -H 'Content-Type: application/json' \
      -d '{"cmd":"ping","args":{}}'
    

    Deberías ver {"status":"ok","message":"pong"} como respuesta. Si obtienes 401 o 403, vuelve a verificar tu secreto HMAC y los registros del backend.```bash export SHADOWBROKER_URL=http://127.0.0.1:8000 export SHADOWBROKER_HMAC_SECRET= python openclaw-skills/shadowbroker/verify_hmac.py

    root@kitploit:~
    Usa el puerto del backend (`:8000`), no el puerto del panel de Next.js (`:3000`). Los firmantes hechos a mano deben hashear los bytes exactos del POST: `json.dumps(payload, separators=(",", ":"), sort_keys=True)`.
    
    ### ⏱️ Máquina del Tiempo — Reproducción de Instantáneas (NUEVO en v0.9.7)
    
    Un transporte al estilo multimedia para todo el flujo de telemetría. Trata el mapa en vivo como una grabación que se puede adelantar, pausar y reproducir.
    
    * **Alternancia En Vivo ↔ Instantánea** — Cambiar al modo instantánea pausa el bucle de sondeo global al instante; volver a En Vivo invalida los ETags y fuerza la actualización de los niveles rápido y lento para que el panel se ponga al día sin parpadeo de fotogramas obsoletos.
    * **Índice por Hora** — Cada instantánea capturada se indexa por su bloque horario con `count`, `latest_id`, `latest_ts` y la lista completa de `snapshot_ids`. Salta a cualquier marca de tiempo capturada directamente desde el control de línea de tiempo.
    * **Interpolación de Fotogramas** — Las entidades en movimiento (aeronaves, barcos, satélites, vuelos militares) se interpolan suavemente entre los fotogramas grabados durante la reproducción para que el movimiento se mantenga continuo incluso cuando las instantáneas son escasas.
    * **Velocidad de Reproducción Variable** — Avance paso a paso, reproducción, avance rápido y retroceso a través de la telemetría guardada a velocidad ajustable.
    * **Consciente del Perfil** — Cada instantánea registra el perfil de privacidad que estaba activo cuando se capturó, por lo que la reproducción es fiel a lo que un operador con ese perfil habría visto.
    * **Del Lado del Operador, No del Servidor** — Las instantáneas se almacenan localmente en el backend; ningún tercero ve nunca la línea de tiempo de reproducción.
    
    ### 📦 Panel de Claves API — Primero la Ruta, Solo Lectura (NUEVO en v0.9.7)
    
    Configuración → Claves API ahora es un registro de solo lectura. Los valores de las claves nunca llegan al proceso del navegador — ni siquiera un prefijo ofuscado. El panel muestra:
    
    * La ruta absoluta al archivo `.env` del backend según la resuelve `Path(__file__).resolve()` — funciona en todos los SO, todas las unidades, todas las ubicaciones de instalación (Linux `/home/...`, macOS `/Users/...`, Windows en cualquier unidad, contenedores Docker, VMs en la nube).
    * Indicadores `[exists]` / `[will be created on first save]` / `[NOT WRITABLE — edit by hand]` en la ruta misma.
    * La ruta a la plantilla `.env.example` para que los usuarios puedan copiarla y completar sus claves.
    * Una insignia binaria `CONFIGURED` / `NOT CONFIGURED` por clave, más una línea de env copiable (ej. `OPENSKY_CLIENT_ID=YOUR_VALUE`) que el usuario puede insertar manualmente en el archivo.
    
    Las credenciales de la API de OpenSky ahora son un requisito de entorno **critical-warn**: la verificación de entorno al inicio marca las credenciales OAuth2 de OpenSky faltantes con una advertencia fuerte, y el modal de registro de cambios enlaza directamente a la página de registro gratuito. Sin ellas, la capa de vuelos recurre a cobertura solo ADS-B con vacíos significativos en África, Asia y Latinoamérica.
    
    </details>
    
    ---
    
    <details>
    <summary>🏗️ Arquitectura</summary>
    
    ShadowBroker v0.9.7 se compone de tres planos apilados verticalmente — la **Interfaz de Usuario del Operador**, el **Plano de Servicio Backend** y la **Capa Descentralizada (InfoNet)** — más dos puentes transversales (la **Máquina del Tiempo** y el **Canal de IA Agéntica**, que es el protocolo a través del cual se conectan OpenClaw y cualquier otro agente compatible) y un **Núcleo de Privacidad** (crate Rust) que respalda tanto la malla heredada como el futuro trabajo de monedas protegidas / DEX.```
    ╔═════════════════════════════════════════════════════════════════════════════╗
    ║                       OPERATOR UI  (Next.js + MapLibre)                     ║
    ║                                                                             ║
    ║  ┌────────────────┐  ┌──────────┐  ┌────────────────┐  ┌────────────────┐   ║
    ║  │ MapLibre GL    │  │ NewsFeed │  │ Sovereign Shell│  │   Mesh Chat    │   ║
    ║  │  WebGL render  │  │  SIGINT  │  │  Petitions /   │  │  + Mesh Term.  │   ║
    ║  │  + clusters    │  │  GDELT   │  │  Upgrades /    │  │  (Infonet /    │   ║
    ║  │                │  │  Threat  │  │  Disputes /    │  │   Mesh /       │   ║
    ║  │                │  │          │  │  Gates /       │  │   Dead Drop)   │   ║
    ║  │                │  │          │  │  Bootstrap /   │  │                │   ║
    ║  │                │  │          │  │  Function Keys │  │                │   ║
    ║  └──────┬─────────┘  └────┬─────┘  └────────┬───────┘  └────────┬───────┘   ║
    ║         │                 │                 │                   │           ║
    ║  ┌──────┴─────────────────┴─────────────────┴───────────────────┴───────┐   ║
    ║  │  Time Machine ◀── snapshot playback ── snapshotMode toggle ──▶ Live │   ║
    ║  │  hourly index │ frame interpolation │ profile-aware │ per-tier ETag  │   ║
    ║  └──────────────────────────────────┬───────────────────────────────────┘   ║
    ║                                     │ REST  +  /api/[...path] proxy         ║
    ╠═════════════════════════════════════╪═══════════════════════════════════════╣
    ║                       BACKEND SERVICE PLANE  (FastAPI)                      ║
    ║                                     │                                       ║
    ║  ┌──────────────────────────────────┴────────────────────────────────────┐  ║
    ║  │              Data Fetcher  (APScheduler — fast / slow tiers)          │  ║
    ║  │                                                                       │  ║
    ║  │  ┌───────────┬───────────┬───────────┬───────────┬───────────┐        │  ║
    ║  │  │  OpenSky* │ adsb.lol  │ CelesTrak │   USGS    │   AIS WS  │        │  ║
    ║  │  │  Flights  │ Military  │   Sats    │  Quakes   │   Ships   │        │  ║
    ║  │  ├───────────┼───────────┼───────────┼───────────┼───────────┤        │  ║
    ║  │  │  Carrier  │   GDELT   │ CCTV (12) │ DeepState │   NASA    │        │  ║
    ║  │  │  Tracker  │ Conflict  │  Cameras  │ Frontline │   FIRMS   │        │  ║
    ║  │  ├───────────┼───────────┼───────────┼───────────┼───────────┤        │  ║
    ║  │  │   GPS     │  KiwiSDR  │  Shodan   │  Amtrak   │  SatNOGS  │        │  ║
    ║  │  │  Jamming  │   Radios  │  Devices  │ DigiTraf  │  TinyGS   │        │  ║
    ║  │  ├───────────┼───────────┼───────────┼───────────┼───────────┤        │  ║
    ║  │  │ Volcanoes │  Weather  │  Fishing  │ Mil Bases │   IODA    │        │  ║
    ║  │  │  Air Qual │  Alerts   │  Activity │ PwrPlants │  Outages  │        │  ║
    ║  │  ├───────────┼───────────┼───────────┼───────────┼───────────┤        │  ║
    ║  │  │ Sentinel  │   MODIS   │   VIIRS   │   Data    │ Meshtastic│        │  ║
    ║  │  │  Hub/STAC │   Terra   │ Nightlts  │  Centers  │   APRS    │        │  ║
    ║  │  ├───────────┴───────────┴───────────┴───────────┴───────────┤        │  ║
    ║  │  │  SAR (NEW v0.9.7)                                         │        │  ║
    ║  │  │   Mode A: ASF Search catalog (free, no account)           │        │  ║
    ║  │  │   Mode B: NASA OPERA / Copernicus EGMS / GFM / EMS /      │        │  ║
    ║  │  │           UNOSAT  ground-change anomalies (opt-in)        │        │  ║
    ║  │  └───────────────────────────────────────────────────────────┘        │  ║
    ║  │   * OpenSky: REQUIRED for global flight coverage                      │  ║
    ║  └───────────────────────────────────────────────────────────────────────┘  ║
    ║                                     │                                       ║
    ║  ┌──────────────────────────────────┴────────────────────────────────────┐  ║
    ║  │                   Snapshot Store  (Time Machine source)               │  ║
    ║  │   Hourly index  │  per-snapshot layer manifest  │  profile metadata   │  ║
    ║  └───────────────────────────────────────────────────────────────────────┘  ║
    ║                                                                             ║
    ║  ┌───────────────────────────────────────────────────────────────────────┐  ║
    ║  │   Agentic AI Channel  (HMAC-SHA256, tier-gated  —  OpenClaw + others) │  ║
    ║  │                                                                       │  ║
    ║  │   POST /api/ai/channel/command   →  one tool call                     │  ║
    ║  │   POST /api/ai/channel/batch     →  up to 20 concurrent tool calls    │  ║
    ║  │                                                                       │  ║
    ║  │   Tier:   restricted (read-only)   │   full (read + write + inject)   │  ║
    ║  │   Auth:   X-SB-Timestamp + X-SB-Nonce + X-SB-Signature                │  ║
    ║  │   Sig  =  HMAC-SHA256(secret, METHOD|path|ts|nonce|sha256(body))      │  ║
    ║  └───────────────────────────────────────────────────────────────────────┘  ║
    ╠═════════════════════════════════════════════════════════════════════════════╣
    ║                  DECENTRALIZED LAYER  (InfoNet Testnet — signed events)     ║
    ║                                                                             ║
    ║  ┌────────────────────────────┐    ┌──────────────────────────────────┐     ║
    ║  │    Mesh Hashchain          │    │   Sovereign Shell Governance     │     ║
    ║  │                            │    │                                  │     ║
    ║  │  Ed25519 signed events     │    │  Petitions  (DSL: UPDATE_PARAM,  │     ║
    ║  │  Public-key binding        │    │              ENABLE_FEATURE …)   │     ║
    ║  │  Replay / sequence guard   │    │  Upgrade-Hash voting (80% / 40%  │     ║
    ║  │  Two-tier finality         │    │             quorum / 67% Heavy)  │     ║
    ║  │   ├ Tier 1 (CRDT, fast)    │    │  Resolution & Dispute markets    │     ║
    ║  │   └ Tier 2 (epoch finality)│    │  Gate suspend / shutdown / appeal│     ║
    ║  │  Identity rotation         │    │  Bootstrap eligible-node-1-vote  │     ║
    ║  │  Constitutional invariants │    │   (Argon2id PoW, Heavy-Node only)│     ║
    ║  │  (MappingProxyType)        │    │  Function Keys (5 of 6 pieces)   │     ║
    ║  └─────────────┬──────────────┘    └─────────────┬────────────────────┘     ║
    ║                │                                 │                          ║
    ║                └──────────────┬──────────────────┘                          ║
    ║                               │                                             ║
    ║  ┌────────────────────────────┴──────────────────────────────────────┐      ║
    ║  │            Wormhole / InfoNet Relay  (transport layer)            │      ║
    ║  │   Gate personas │ canonical signing │ Dead Drop epoch mailboxes   │      ║
    ║  └───────────────────────────────────────────────────────────────────┘      ║
    ╠═════════════════════════════════════════════════════════════════════════════╣
    ║              PRIVACY CORE  (Rust crate — locked Protocol contracts)         ║
    ║                                                                             ║
    ║   privacy-core/  ─►  Argon2id │ Ed25519/X25519 │ AESGCM │ HKDF              ║
    ║                      Ring sigs* │ Stealth addrs* │ Pedersen* │ Bulletproofs*║
    ║                      Blind-sig issuance* (RSA / BBS+ / U-Prove / Idemix)    ║
    ║                                                                             ║
    ║   * = locked Protocol contract; cryptographic primitive lands Sprint 11+    ║
    ╚═════════════════════════════════════════════════════════════════════════════╝
    
       Distribution
       ────────────
         GitHub (primary):  ghcr.io/bigbodycobain/shadowbroker-{backend,frontend}
         GitLab (mirror):   registry.gitlab.com/bigbodycobain/shadowbroker/{backend,frontend}
         Multi-arch:        linux/amd64  +  linux/arm64  (Raspberry Pi 5 supported)
         Desktop:           Tauri shell  →  packaged backend-runtime  +  Next.js frontend
    
    FuenteDatosFrecuencia de actualización¿Requiere clave API?
    OpenSky NetworkVuelos comerciales y privados~60sSí
    adsb.lolAeronaves militares~60sNo
    aisstream.ioPosiciones de buques AISWebSocket en tiempo realSí
    CelesTrakPosiciones orbitales de satélites (TLE + SGP4)~60sNo
    USGS EarthquakeEventos sísmicos globales~60sNo
    GDELT ProjectEventos de conflicto global~6hNo
    DeepState MapLínea del frente en Ucrania~30minNo
    ShodanBúsqueda de dispositivos conectados a InternetBajo demandaSí
    OpenSanctionsÍndice de sanciones OFAC SDN (reconocimiento + grafo de entidades)Caché de 24hNo
    abuse.ch Feodo + URLhausURLs de C2/distribución de malware~5min (capa opt-in)No
    CISA KEVCVEs explotados conocidos~5min (capa opt-in)No
    ip-api.comGeolocalización IP (reconocimiento, grafo de entidades)Bajo demandaNo
    Google Public DNSConsultas DNS sobre HTTPS (reconocimiento)Bajo demandaNo
    RDAP.orgDatos de registro de dominios (reconocimiento)Bajo demandaNo
    crt.shTransparencia de certificados (reconocimiento)Bajo demandaNo
    bgpview.ioEnrutamiento BGP/ASN (reconocimiento)Bajo demandaNo
    TeleGeography (estático)Rutas de cables submarinosEstáticoNo
    ASFINAGWebcams de autopistas en Austria~10minNo
    AmtrakPosiciones de trenes en EE. UU.~60sNo
    DigiTrafficPosiciones de trenes europeos~60sNo
    Global Fishing WatchEventos de actividad de buques pesqueros~1hSí (GFW_API_TOKEN)
    Vistas previas públicas de TelegramPublicaciones de canales de guerra/OSINT (telegram_osint)~1hNo (opcional TELEGRAM_OSINT_CHANNELS)
    Transport for London, NYC DOT, TxDOTCámaras CCTV (Reino Unido, EE. UU.)~10minNo
    Caltrans, WSDOT, GDOT, IDOT, MDOTCámaras CCTV (5 estados de EE. UU.)~10minNo
    Spain DGT, Madrid CityCámaras CCTV (España)~10minNo
    Singapore LTACámaras de tráfico en Singapur~10minSí
    Windy WebcamsWebcams globales~10minNo
    SatNOGSEstaciones terrestres de satélites amateur~30minNo
    TinyGSEstaciones terrestres de satélites LoRa~30minNo
    Meshtastic MQTTPosiciones de nodos de radio meshEn tiempo realNo
    APRS-ISPosiciones de radio amateurTCP en tiempo realNo
    KiwiSDRUbicaciones de receptores SDR públicos~30minNo
    OpenMHZTransmisiones de escáner policial/bomberosEn tiempo realNo
    Smithsonian GVPVolcanes del Holoceno en todo el mundoEstático (en caché)No
    OpenAQEstaciones de calidad del aire PM2.5~120sNo
    NOAA / NWSAlertas meteorológicas severas y polígonos~120sNo
    WRI Global Power Plant DBMás de 35.000 centrales eléctricasEstático (en caché)No
    Conjuntos de datos de bases militaresInstalaciones militares globalesEstático (en caché)No
    NASA FIRMSPuntos calientes de incendios/térmicos NOAA-20 VIIRS~120sNo
    NOAA SWPCÍndice Kp de clima espacial y eventos solares~120sNo
    IODA (Georgia Tech)Alertas regionales de cortes de Internet~120sNo
    DC Map (GitHub)Ubicaciones globales de centros de datosEstático (caché de 7d)No
    NASA GIBSImágenes diarias de satélite MODIS TerraDiario (retraso de 24-48h)No
    Esri World ImageryMapa base satelital de alta resoluciónEstático (actualizado periódicamente)No
    MS Planetary ComputerEscenas Sentinel-2 L2A (clic derecho)Bajo demandaNo
    Copernicus CDSEImágenes de Sentinel Hub (API Process)Bajo demandaSí (gratuito)
    VIIRS NightlightsDetección de cambios en luces nocturnasEstáticoNo
    RestCountriesDatos de perfil de paísesBajo demanda (caché 24h)No
    Wikidata SPARQLDatos de jefes de estadoBajo demanda (caché 24h)No
    API de WikipediaResúmenes de ubicaciones e imágenes de aeronavesBajo demanda (en caché)No
    OSM NominatimGeocodificación de nombres de lugares (barra LOCALIZAR)Bajo demandaNo
    CARTO BasemapsAzulejos de mapa oscuroContinuoNo

    Privacidad y auditoría de salida (#348–#366): Cada instalación autoalojada utiliza su propia IP de backend y un identificador User-Agent por instalación. Consulte docs/OUTBOUND_DATA.md para conocer qué contacta a terceros, controles opt-in/env y las compensaciones aceptadas (Referer de CCTV, CDN de mapas base, LiveUAMap, etc.).

    1. Generar una CA raíz
    root@kitploit:~
    ./certman eca -ca
    

    Este comando genera el certificado y la clave privada de la CA raíz, almacenando ambos en la carpeta certs.

    Luego, el script ofrece la opción de mantener la clave privada de la CA en la carpeta certs o moverla a una ubicación más segura.
    Los usuarios pueden volver a ejecutar ./certman eca -ca en cualquier momento para regenerar la CA con nuevos valores.

    1. Generar un certificado
    root@kitploit:~
    ./certman eca -ca -cn blog.internal -o server
    

    La bandera -common-name (-cn) establece el Nombre Común (CN) para el certificado. Si no se especifica, su valor predeterminado es root.
    En el ejemplo del certificado de servidor, el CN es blog.internal. La bandera -o define el nombre del archivo de salida del certificado, mientras que la bandera -type especifica su uso previsto como certificado server.

    1. Revocar un certificado
    root@kitploit:~
    ./certman rvk -ca -cn blog.internal
    

    Este comando revoca el certificado asociado con el Nombre Común especificado (blog.internal).

    Importante: Si la CA está comprometida, puedes revocar toda la CA, invalidando todos los certificados firmados por ella.
    También puedes revocar certificados individuales manteniendo la CA intacta, lo que proporciona un control granular sobre la validez de los certificados.

    Comandos de generación de claves

    1. Generar una clave privada RSA
    root@kitploit:~
    ./certman gen rsa
    

    Esto genera una clave privada RSA y la almacena en la carpeta keys.

    1. Generar una clave de curva elíptica
    root@kitploit:~
    ./certman gen ecdsa
    

    Esto genera una clave privada ECDSA y la almacena en la carpeta keys.

    1. Generar una clave privada SSH
    root@kitploit:~
    ./certman gen ssh
    ``````powershell
    # Windows PowerShell
    py -m pip install --user podman-compose
    podman-compose pull
    podman-compose up -d
    

    Si estás en una shell compatible con bash, el wrapper incluido puede detectar automáticamente Docker o Podman:```bash ./compose.sh --engine podman pull ./compose.sh --engine podman up -d

    root@kitploit:~
    </details>
    
    ---
    
    <details>
    <summary>🐋 Despliegue Independiente (Portainer, Uncloud, NAS, etc.)</summary>
    
    No es necesario clonar el repositorio. Usa las imágenes preconstruidas de GitHub Container Registry. Las imágenes del registro de GitLab pueden usarse como espejo si las publicas allí.
    
    Crea un archivo `docker-compose.yml` con el siguiente contenido y despliégalo directamente — pégalo en el stack editor de Portainer, `uncloud deploy`, o cualquier host de Docker:```yaml
    ## Image registry — uncomment ONE line per service:
    ##   GitHub  (primary): ghcr.io/bigbodycobain/shadowbroker-backend:latest
    ##   GitLab  (mirror):  registry.gitlab.com/bigbodycobain/shadowbroker/backend:latest
    
    
    services:
      backend:
        image: ghcr.io/bigbodycobain/shadowbroker-backend:latest
        # image: registry.gitlab.com/bigbodycobain/shadowbroker/backend:latest
        container_name: shadowbroker-backend
        ports:
          - "${BACKEND_PORT:-8000}:8000"
        environment:
          - AIS_API_KEY=your_aisstream_key          # Required — get one free at aisstream.io
          - OPENSKY_CLIENT_ID=                       # Optional — higher flight data rate limits
          - OPENSKY_CLIENT_SECRET=                   # Optional — paired with Client ID above
          - LTA_ACCOUNT_KEY=                         # Optional — Singapore CCTV cameras
          - SHODAN_API_KEY=                          # Optional — Shodan device search overlay
          - SH_CLIENT_ID=                            # Optional — Sentinel Hub satellite imagery
          - SH_CLIENT_SECRET=                        # Optional — paired with Sentinel Hub ID
          - CORS_ORIGINS=                            # Optional — comma-separated allowed origins
        volumes:
          - backend_data:/app/data
        restart: unless-stopped
    
      frontend:
        image: ghcr.io/bigbodycobain/shadowbroker-frontend:latest
        # image: registry.gitlab.com/bigbodycobain/shadowbroker/frontend:latest
        container_name: shadowbroker-frontend
        ports:
          - "3000:3000"
        environment:
          - BACKEND_URL=http://backend:8000   # Docker internal networking — no rebuild needed
        depends_on:
          - backend
        restart: unless-stopped
    
    volumes:
      backend_data:
    

    Cómo funciona: El contenedor frontend envía todas las solicitudes /api/* a través del servidor Next.js a BACKEND_URL utilizando la red interna de Docker. El navegador solo se comunica con el puerto 3000. El puerto host del backend es para acceso local de API/depuración y se puede cambiar con BACKEND_PORT=8001 sin modificar BACKEND_URL.

    BACKEND_URL es una variable de entorno en tiempo de ejecución (no es una variable de compilación NEXT_PUBLIC_*), por lo que puedes cambiarla en Portainer, Uncloud o cualquier editor de compose sin reconstruir la imagen. Establécelo en la dirección donde tu backend sea accesible desde dentro de la red de Docker (ej. http://backend:8000, http://192.168.1.50:8000).

  • Para activos de puente de operaciones raíz de DM de muestra, consulta también scripts/mesh/poll-dm-root-health-alerts.mjs, scripts/mesh/export-dm-root-health-prometheus.mjs, scripts/mesh/publish-external-root-witness-package.mjs, scripts/mesh/smoke-external-root-witness-flow.mjs, scripts/mesh/smoke-root-transparency-publication-flow.mjs, scripts/mesh/smoke-dm-root-deployment-flow.mjs, scripts/mesh/sync-dm-root-external-assurance.mjs y docs/mesh/examples/.
  • pip install .

    Optional helper scripts (creates venv + installs dev deps)

    Windows PowerShell

    .\backend\scripts\setup-venv.ps1

    macOS/Linux

    ./backend/scripts/setup-venv.sh

    Optional env check (prints warnings for missing keys)

    Windows PowerShell

    .\backend\scripts\check-env.ps1

    macOS/Linux

    ./backend/scripts/check-env.sh

    Create .env with your API keys

    echo "AIS_API_KEY=your_aisstream_key" >> .env echo "OPENSKY_CLIENT_ID=your_opensky_client_id" >> .env echo "OPENSKY_CLIENT_SECRET=your_opensky_secret" >> .env

    Frontend setup

    cd ../frontend npm ci

    root@kitploit:~
    ### Ejecutando```bash
    # From the frontend directory — starts both frontend & backend concurrently
    npm run dev
    
    • Next.js frontend en http://localhost:3000
    • FastAPI backend en http://localhost:8000

    Pre-commit (Opcional)

    Si usas pre-commit, instala los hooks una vez desde la raíz del repositorio:```bash pre-commit install

    root@kitploit:~
    ### Receptor AIS Local (Opcional)
    
    Puedes alimentar tus propios datos de barcos AIS a ShadowBroker usando un dongle RTL-SDR y [AIS-catcher](https://github.com/jvde-github/AIS-catcher), un decodificador AIS de código abierto. Esto te brinda cobertura en tiempo real de embarcaciones en tu área local, sin necesidad de clave API.
    
    1. Conecta un dongle RTL-SDR
    2. Instala AIS-catcher ([lanzamientos](https://github.com/jvde-github/AIS-catcher/releases)) o usa la imagen Docker:
    

    docker run -d --restart unless-stopped --name ais-catcher --device /dev/bus/usb ghcr.io/jvde-github/ais-catcher:latest bash docker run -d --device /dev/bus/usb
    ghcr.io/jvde-github/ais-catcher -H http://host.docker.internal:4000/api/ais/feed interval 10

    root@kitploit:~
    3. O ejecutar de forma nativa:   ```bash
    AIS-catcher -H http://localhost:4000/api/ais/feed interval 10
    

    AIS-catcher decodifica señales de radio VHF en 161.975 MHz y 162.025 MHz y envía mediante POST los datos decodificados de embarcaciones a ShadowBroker cada 10 segundos. Los barcos detectados por tu antena SDR aparecen junto al flujo global de AIS.

    Docker (ARM/Raspberry Pi): Consulta docker-shipfeeder para una imagen Docker lista para producción optimizada para ARM.

    Nota: El alcance del AIS depende de tu antena — típicamente 20-40 millas náuticas con una configuración básica, 60+ mn con una antena VHF marina en altura.

    CapaPredeterminadoDescripción
    Vuelos comerciales✅ ONAerolíneas, carga, aeronaves de aviación general
    Vuelos privados✅ ONAeronaves privadas no comerciales
    Jets privados✅ ONJets ejecutivos de alto valor con datos del propietario
    Vuelos militares✅ ONAeronaves militares y gubernamentales
    Aeronaves rastreadas✅ ONLista de vigilancia de interés especial
    Interferencia GPS✅ ONZonas de degradación NAC-P
    Portaaviones / Mil / Carga✅ ONPortaaviones, buques de carga, petroleros
    Embarcaciones civiles✅ ONYates, pesca, recreativos
    Cruceros / Pasajeros✅ ONCruceros y ferris
    Yates rastreados✅ ONSuperyates de multimillonarios y oligarcas
    Actividad pesquera✅ ONEventos de embarcaciones de Global Fishing Watch
    Trenes✅ ONAmtrak + posiciones ferroviarias europeas
    Satélites✅ ONActivos orbitales por tipo de misión
    SatNOGS✅ ONEstaciones terrestres de satélites amateur
    TinyGS✅ ONEstaciones terrestres de satélites LoRa
    Terremotos (24h)✅ ONEventos sísmicos del USGS
    Puntos calientes de incendios (24h)✅ ONAnomalías térmicas VIIRS de NASA FIRMS
    Volcanes✅ ONVolcanes del Holoceno del Smithsonian
    Alertas meteorológicas✅ ONPolígonos de clima severo
    Calidad del aire (PM2.5)✅ ONEstaciones OpenAQ en todo el mundo
    Frente de Ucrania✅ ONPosiciones en vivo del frente de guerra
    Alertas aéreas de Ucrania✅ ONAlertas regionales de ataques aéreos
    Incidentes globales✅ ONEventos de conflicto GDELT
    Malla CCTV✅ ONMás de 11,000 cámaras en 13 fuentes, 6 países
    Cortes de Internet✅ ONAlertas regionales de conectividad IODA
    Centros de datos✅ ONUbicaciones globales de centros de datos (más de 2,000)
    Bases militares✅ ONInstalaciones militares globales
    Receptores KiwiSDR✅ ONReceptores de radio SDR públicos
    Nodos Meshtastic✅ ONPosiciones de nodos de radio malla
    APRS✅ ONPosicionamiento de radioaficionados
    Escáneres✅ ONTransmisiones de escáneres policiales/bomberos
    Ciclo día / noche✅ ONSuperposición del terminador solar
    MODIS Terra (Diario)❌ OFFImágenes satelitales diarias de NASA GIBS
    Satélite de alta resolución❌ OFFImágenes satelitales submétricas de Esri
    Sentinel Hub❌ OFFAPI de Proceso CDSE de Copernicus
    Luces nocturnas VIIRS❌ OFFDetección de cambios de luz nocturna
    Plantas de energía❌ OFFMás de 35,000 plantas de energía globales
    Superposición Shodan❌ OFFResultados de búsqueda de dispositivos de Internet
    Tendencias de carga por carretera❌ OFFTendencias de movimiento de camiones Sentinel-2 en autopistas principales (Analizar aquí)
    Cables submarinos❌ OFFRutas globales de cables submarinos (GeoJSON estático)
    C2 de malware❌ OFFPuntos de amenaza de abuse.ch Feodo + URLhaus
    Proveedores SCM❌ OFFMarcadores de riesgo de cadena de suministro de nivel 1/2 + alertas de panel
    Amenazas cibernéticas❌ OFFEntradas recientes de CISA KEV (estadísticas en payload de nivel lento)
    Telegram OSINT✅ ONCanales públicos de Telegram de guerra/OSINT — raspado por hora, pines geolocalizados
    SAR✅ ONCatálogo de radar de apertura sintética + alertas de anomalía

    Herramientas de reconocimiento y entidades (no son capas del mapa — barra lateral izquierda / selección):

    HerramientaAcceso desde el panelComando OpenClawDescripción
    Kit de ReconocimientoOperador local (/api/osint/*)osint_lookup, osint_sweep†IP, DNS, WHOIS, certificados, BGP, sanciones, CVE, MAC, GitHub, filtraciones, amenazas, barrido de subred
    Grafo de EntidadesOperador local (/api/entity/expand)entity_expandWikidata + OFAC + grafo de relaciones en almacén en vivo
    Panel de Riesgo SCMOperador local (/api/scm-suppliers)get_layer_slice(["scm_suppliers"])Resumen de amenazas de proveedores + marcadores de mapa
    Descubrimiento de Herramientas—osint_toolsEnumera tipos de búsqueda de reconocimiento y esquemas de expansión de entidades

    † osint_sweep (escaneo activo de InternetDB) requiere OPENCLAW_ACCESS_TIER=full.

    root@kitploit:~
    </details>
    
    ---
    
    <details>
    <summary>🔑 Variables de Entorno</summary>
    
    ### Backend (`backend/.env`)```env
    # Required for airplane telemetry (NEW in v0.9.7 — startup env check flags these as critical)
    # Free registration: https://opensky-network.org/index.php?option=com_users&view=registration
    OPENSKY_CLIENT_ID=your_opensky_client_id      # OAuth2 — global flight state vectors
    OPENSKY_CLIENT_SECRET=your_opensky_secret     # OAuth2 — paired with Client ID above
    
    # Optional (enhances data quality)
    AIS_API_KEY=your_aisstream_key                # Maritime vessel tracking (aisstream.io) — ships layer empty without it
    LTA_ACCOUNT_KEY=your_lta_key                  # Singapore CCTV cameras
    SHODAN_API_KEY=your_shodan_key                # Shodan device search overlay
    SH_CLIENT_ID=your_sentinel_hub_id             # Copernicus CDSE Sentinel Hub imagery
    SH_CLIENT_SECRET=your_sentinel_hub_secret     # Paired with Sentinel Hub Client ID
    MESH_SAR_EARTHDATA_USER=                      # NASA Earthdata user (SAR Mode B — OPERA products)
    MESH_SAR_EARTHDATA_TOKEN=                     # NASA Earthdata token (paired with user above)
    MESH_SAR_COPERNICUS_USER=                     # Copernicus Data Space user (SAR Mode B — EGMS / EMS)
    MESH_SAR_COPERNICUS_TOKEN=                    # Copernicus token (paired with user above)
    OPENCLAW_ACCESS_TIER=restricted               # OpenClaw agent tier: "restricted" (read-only) or "full"
    # OPENCLAW_HMAC_SECRET=                         # Optional; UI Bootstrap persists to data/openclaw.env in Docker
    GFW_API_TOKEN=your_gfw_token                  # Global Fishing Watch — fishing_activity layer (Settings → Maritime)
    TELEGRAM_OSINT_ENABLED=true                   # Telegram OSINT layer (default on)
    TELEGRAM_OSINT_CHANNELS=osintdefender,...     # Comma-separated public channel slugs (see .env.example)
    
    # Private-lane privacy-core pinning (required when Arti or RNS is enabled)
    PRIVACY_CORE_MIN_VERSION=0.1.0
    PRIVACY_CORE_ALLOWED_SHA256=your_privacy_core_sha256
    # Optional override if you load a non-default shared library path
    PRIVACY_CORE_LIB=
    

    Cuando MESH_ARTI_ENABLED=true o MESH_RNS_ENABLED=true, el inicio del backend ahora falla cerrado a menos que el artefacto privacy-core cargado reporte una versión analizable igual o superior a PRIVACY_CORE_MIN_VERSION y coincida con uno de los hashes en PRIVACY_CORE_ALLOWED_SHA256.

    Genera el hash del artefacto que planeas distribuir:```powershell Get-FileHash .\privacy-core\target\release\privacy_core.dll -Algorithm SHA256

    root@kitploit:~
    ---```bash
    sha256sum ./privacy-core/target/release/libprivacy_core.so
    

    Luego confirma que las solicitudes autenticadas GET /api/wormhole/status o GET /api/settings/wormhole-status muestran los mismos valores: privacy_core.version, privacy_core.library_path y privacy_core.library_sha256.

    Frontend

    VariableDónde configurarPropósito
    BACKEND_URLenvironment en docker-compose.yml, o variable de entorno del shellURL que el servidor Next.js usa para redirigir llamadas API al backend. Por defecto http://backend:8000. Variable en tiempo de ejecución — no requiere reconstrucción.
    BACKEND_PORT.env en la raíz del repositorio o variable de entorno del shell antes de docker compose upPuerto del host usado para exponer la API del backend para diagnósticos locales. Por defecto 8000; establece BACKEND_PORT=8001 si el puerto 8000 ya está en uso. No cambia BACKEND_URL interno de Docker.

    Cómo funciona: El frontend redirige todas las solicitudes /api/* a través del servidor Next.js hacia BACKEND_URL usando la red interna de Docker. Los navegadores solo se comunican con el puerto 3000; el puerto del host del backend es solo para diagnósticos locales. Para desarrollo local sin Docker, BACKEND_URL predetermina a http://localhost:8000.

    QuiénQuéPR
    @AlienmajikSoporte para Raspberry Pi 5 — empaquetado ARM64, notas de despliegue headless, ajuste de tiempo de ejecución para hardware clase Pi—
    @wa1idCorrección de ingesta CCTV — SQLite con hilos, base de datos persistente, hidratación al inicio, clicabilidad del clúster#92
    @AlborzNazariFuentes DGT de España + CCTV de Madrid, exportación de inteligencia de amenazas STIX 2.1#91
    @adust09Capa de plantas de energía, cobertura de inteligencia de Asia Oriental (bases JSDF, enriquecimiento ICAO, noticias de Taiwán, clasificación militar)#71, #72, #76, #77, #87
    @XpirixMejoras de estilo e interacción de LocateBar#78
    @imqdcrDivisión del interruptor de barcos (4 categorías) + IDs de entidad MMSI/indicativo estables—
    @csyspAlertas de amenazas descartables + IDs de entidad estables para GDELT y Noticias#48, #63
    @suranyamiCompilaciones Docker multiarquitectura en paralelo (11min → 3min) + corrección de BACKEND_URL en tiempo de ejecución#35, #44
    @chr0n1xArquitectura de Helm chart para Kubernetes para despliegues de alta disponibilidad—
    completo
    telegram
    malware
    botnet
    cyber
    cisa
    kev
    scm
    suppliers
    gfw
    fishing