Volver a proyectos

// Expediente de evidencia

MankekeDev Discord Bot

Bot modular para Discord orientado a ciberseguridad defensiva, OSINT y automatización de comunidades. Integra consultas con proveedores externos, protección anti-raid, detección de phishing, música, persistencia local y auditoría operativa.

Node.js 20+Discord.js v14SQLitebetter-sqlite3AxiosZodDiscord PlayerWinstonOSINT APIsAnti-RaidPhishing Detection
Flujo técnico de MankekeDev Discord Bot: Discord entrega eventos a un cliente Node.js con Discord.js, un router modular aplica controles de seguridad y deriva comandos OSINT, música y protección de comunidad hacia sus servicios, persistencia local y respuestas.
Discord GatewayCanal de eventos entre Discord y el bot.iNode.js + Discord.jsCliente principal del bot modular.iEvent / interaction routerPunto de distribución de los eventos recibidos.iSecurity gatesControles previos a ejecutar comandos o acciones.iCommand / event modulesArquitectura modular cargada por dominio.iOSINT Y SEGURIDADOSINT commandsComandos slash para investigación defensiva y consultas técnicas.iValidator + limiterValidación de objetivos y límites por comando o usuario.iProvider adaptersCapa que consulta proveedores externos de OSINT.iNormalized reportResultados normalizados para una salida legible en Discord.iDiscord responseRespuesta pública o efímera según el tipo de información.iMÚSICAMusic commandsSuperficie de comandos para reproducción y cola.iDiscord PlayerOrquestador de reproducción, colas y eventos del player.iMedia extractorsExtractores configurados para las fuentes de música soportadas.iQueue / panelCola y panel interactivo que reflejan la reproducción.iPROTECCIÓN Y AUDITORÍAMessages + membersEventos de mensajes y nuevos miembros de Discord.iPhishing + anti-raidControles de detección de phishing y oleadas de miembros.iSQLite WAL + WinstonPersistencia local y registro operativo del bot.iModeration actionRespuesta configurable ante señales de abuso o moderación.idispatchresultadoeventosProof of work abstraído · secretos externossin IDs · sin logs operativos

Contexto

Comunidades de Discord y administradores necesitaban concentrar consultas defensivas de ciberseguridad, OSINT y utilidades de moderación sin saltar entre varias herramientas o bots genéricos.

Problema

Las consultas de reputación, DNS, TLS, cabeceras, registros de dominio y análisis de indicadores estaban dispersas; el reto era centralizar ese flujo sin crear una herramienta monolítica. Además, la operación necesitaba detectar señales de phishing, observar incorporaciones masivas y mantener funciones de comunidad sin mezclar permisos administrativos ni secretos de proveedores.

Mi rol

Diseñé y desarrollé en Node.js la arquitectura modular del bot, los comandos slash, los eventos de Discord, las integraciones OSINT, la persistencia SQLite, los controles de permisos, anti-raid, phishing, música, logging y las pruebas automatizadas.

Restricciones

El sistema depende de permisos e intents de Discord, APIs externas con límites y disponibilidad propia, proveedores de música y una ejecución continua. Debía conservar secretos fuera del repositorio, controlar el uso por usuario, evitar enviar objetivos internos a servicios externos y mantener privados los comandos administrativos y detalles operativos.

Solución

Construí una superficie de comandos para OSINT defensivo —RDAP/Whois, DNS, HTTP/TLS, Shodan, VirusTotal, AbuseIPDB y urlscan— junto con informes descargables, búsqueda de música, cola y panel interactivo, utilidades de servidor y auditoría de seguridad. Los eventos agregan detector de phishing configurable, anti-raid con umbral, cooldown y reconstrucción desde SQLite, además de logs de cambios y eliminaciones para trazabilidad.

Arquitectura

Aplicación Node.js 20+ en CommonJS sobre Discord.js v14, organizada por loaders, comandos, eventos, servicios y utilidades. El flujo event-driven procesa interacciones, mensajes y nuevos miembros; better-sqlite3 mantiene persistencia local en modo WAL para la ventana anti-raid y la caché OSINT. Axios y validadores conectan proveedores externos, mientras Winston registra eventos y Discord Player gestiona la capa de música.

Decisiones

Separé los comandos por dominio para reducir acoplamiento y facilitar su descubrimiento y despliegue. Validé IPs, dominios y URLs con Zod antes de llamar a proveedores, bloqueé objetivos locales o privados, añadí caché y límites por comando/usuario para reducir abuso, y usé respuestas efímeras cuando el resultado puede contener información sensible. La persistencia local mantiene el bot operable sin introducir una base de datos remota innecesaria.

Seguridad

La configuración valida las credenciales esenciales antes del arranque y las mantiene fuera de la interfaz pública. Los comandos sensibles aplican permisos de Discord, respuestas efímeras y rate limiting por comando/usuario; los objetivos OSINT pasan por validación, se rechazan localhost/IPs privadas/credenciales embebidas y las descargas tienen nombre y tamaño acotados. El phishing puede registrar, alertar o eliminar según configuración, sin guardar el contenido completo del mensaje; anti-raid persiste la ventana y respeta cooldown. Las consultas de URLs o archivos pueden enviarse a proveedores externos como VirusTotal o urlscan según el comando, por lo que no deben usarse con información confidencial. Una capacidad de emergencia de alto impacto se mantiene fuera de esta ficha y requiere revisión independiente; esto no constituye una auditoría externa ni una garantía de seguridad total.

Testing

La ejecución local de la suite terminó con 37/37 pruebas aprobadas. La suite cubre descubrimiento de comandos, configuración, anti-raid, auditoría de seguridad, rate limiting, validación OSINT, caché e informes, phishing, privacidad de /ping, seguridad de archivos, cabeceras, música, purgas y manejo de errores. No prueba disponibilidad permanente en Discord, integraciones externas con credenciales reales, respuestas actuales de cada proveedor ni un benchmark de producción.

Deployment

El proyecto prepara Node.js 20+ y npm para una instalación reproducible, configuración de variables de entorno, registro de slash commands y arranque controlado. El bot requiere tokens/permisos de Discord y, según el comando, claves de proveedores; en esta revisión no se inició una sesión real ni se verificó uptime productivo. La distribución pública debe excluir credenciales, API keys, logs sensibles, SQLite y comandos operativos internos.

Resultado

Se unificaron investigación defensiva, automatización de comunidad y controles de moderación en un bot modular que puede responder desde Discord y producir evidencia legible para operadores autorizados. El resultado demostrado por la suite es funcional y local; no se publican métricas de usuarios, disponibilidad, precisión de detección ni sustitución de una plataforma SOC.

Evidencia

Evidencia revisada: arquitectura modular, configuración, punto de entrada, loaders, comandos, eventos, servicios, utilidades y los 37 tests del proyecto. La evidencia pública adicional es una captura con identificadores sensibles redacted. No se exponen credenciales, API keys, base SQLite, logs, IDs operativos, comandos de emergencia ni datos de servidores.