25 de junio de 2026
6 min read
ZeroTrust Team

Detener los exploits de trigger en FiveM: cómo lo resolvimos con Trigger Finder

Los tramposos abusan de los eventos de red para darse dinero, spawnear vehículos y conseguir objetos. Así funcionan los exploits de trigger en FiveM, por qué son tan difíciles de auditar a mano y cómo el Trigger Finder de ZeroTrust mapea y marca toda tu superficie de ataque de eventos.

Si llevas tiempo administrando un servidor FiveM, conoces este problema: un jugador con un menú de trampas se da dinero, spawnea vehículos o llena su inventario de objetos, sin tocar nunca la interfaz prevista. No está rompiendo el motor del juego; está llamando directamente a los eventos de red de tu servidor.

Es la forma más común en que se explotan los servidores FiveM, y "asegura tus eventos" es el consejo habitual. El problema es que ese consejo asume que ya sabes qué eventos están expuestos. En un servidor con decenas de recursos, casi nadie lo sabe. Este artículo explica cómo funcionan los exploits de trigger, por qué cuesta tanto corregirlos a mano y cómo convertimos todo el problema en una herramienta: Trigger Finder.

Qué es realmente un exploit de trigger

En FiveM, los scripts se comunican a través de la frontera cliente-servidor mediante eventos de red. Un cliente llama a TriggerServerEvent y el servidor ejecuta el handler registrado para ese nombre de evento. Así funciona el juego legítimo, y exactamente de eso abusa una trampa.

Un menú de trampas puede disparar cualquier evento de red que registre tu servidor, con los argumentos que quiera. Si un recurso tiene un evento de servidor que añade dinero, da un objeto o spawnea un vehículo y confía en los valores que envía el cliente, el tramposo simplemente lo llama directamente:

-- Vulnerable: el servidor confía en todo lo que envía el cliente
RegisterNetEvent("shop:buyItem", function(item, amount)
    local ply = FX.GetPlayerFromSource(source)
    -- Sin comprobación de precio, sin validación — el cliente lo controla todo
    ply.addItem(item, amount)
end)

-- Una trampa simplemente llama:
-- TriggerServerEvent("shop:buyItem", "gold_bar", 9999)

El problema de fondo

Todo handler de evento de red que añade dinero, objetos, armas, vehículos o empleos es un exploit potencial, salvo que el servidor valide la solicitud de forma independiente de lo que afirma el cliente.

Por qué es tan difícil corregirlo a mano

Corregir un único evento se entiende bien: validar en el servidor, nunca confiar en la entrada del cliente. Cubrimos los patrones exactos en nuestra Guía de Seguridad de Eventos Lua de FiveM. Lo difícil no es corregir un evento; es saber dónde están todos.

Un servidor de rol típico ejecuta de 50 a más de 300 recursos, muchos de ellos scripts de terceros que tú no escribiste. Cada uno puede registrar decenas de eventos de red, es decir, potencialmente miles de eventos repartidos en archivos que nunca abriste. No puedes proteger lo que no ves, y nadie va a leer manualmente cada recurso buscando un handler addMoney olvidado.

La visibilidad es el verdadero problema

A los dueños de servidores no los explotan porque asegurar un evento sea difícil. Los explotan porque nunca supieron que el evento peligroso existía.

Cómo lo resolvimos

En lugar de publicar más documentación, integramos la auditoría directamente en el panel de ZeroTrust. La idea era simple: si la parte peligrosa de un servidor es su superficie de eventos, todo dueño debería poder ver esa superficie completa de un vistazo, ordenada por riesgo y con una ruta directa a cada una.

  • Encontrarlo todo — mapear automáticamente cada evento y trigger en todos tus recursos, no solo los que recuerdas.
  • Ordenar por riesgo — destacar los handlers que los tramposos realmente buscan (dinero, objetos, armas, vehículos, empleos, HTTP saliente) para empezar donde importa.
  • Ir directo a la fuente — señalarte el recurso, archivo y línea exactos para que corregirlo tome segundos.

Te presentamos Trigger Finder

Trigger Finder es un escáner integrado en el panel de ZeroTrust. Lanzas un escaneo iniciado desde el servidor y recorre tus recursos para extraer cada evento y trigger que encuentra, etiquetando cada uno con su recurso, archivo, número de línea, lado (cliente o servidor) y nombre de evento.

Mapea toda tu superficie de triggers

En vez de adivinar, obtienes un inventario completo y consultable de cada evento de red que expone tu servidor. Cada trigger se registra con dónde vive y en qué dirección fluye — Cliente → Servidor, Servidor → Cliente, Cliente → Cliente o Servidor → Servidor — para que veas de inmediato cuáles son alcanzables por un cliente malicioso.

Marca los peligrosos automáticamente

  • Mueven dinero: addMoney, giveMoney, addAccountMoney, addBank, giveBank.
  • Dan objetos: giveItem, addItem, addInventoryItem.
  • Reparten armas: giveWeapon, addWeapon.
  • Spawnean vehículos: addVehicle, spawnVehicle.
  • Cambian empleos: setJob, setPlayerJob.
  • Crean pickups o envían solicitudes externas: createPickup, PerformHttpRequest, SendWebhook.

El resultado es un desglose de riesgo de todo tu servidor: cuántos triggers son seguros o críticos, qué recursos contienen más eventos peligrosos y cómo se reparte todo entre cliente y servidor.

Lo ordena todo en categorías

  • Dinero, Eventos de Dar/Añadir Objeto y Eventos de Inventario para la economía.
  • Spawn de Vehículos y Cambio de Empleo para exploits comunes de rol.
  • RegisterNetEvent y AddEventHandler para detectar eventos registrados en el contexto equivocado.
  • Eventos Dinámicos para todo lo que no encaja en un patrón conocido.

Te lleva a la línea exacta

Cada hallazgo enlaza con su recurso → archivo → línea, con una vista de contexto de código para leer el trigger en su sitio. Cuando Trigger Finder marca un handler addItem peligroso, sabes exactamente qué script y qué línea reforzar, sin búsquedas.

Se adapta a tu servidor

Cada servidor es distinto, sobre todo con frameworks personalizados. Puedes configurar tus propias palabras clave y tu lista de eventos peligrosos, para que Trigger Finder marque los nombres de función que importan para tus scripts, no solo los predeterminados.

De encontrar a corregir

Trigger Finder te dice qué asegurar. Cerrar la brecha es el siguiente paso: valida cada evento marcado en el servidor, obtén valores con métodos del servidor en vez de confiar en el cliente, y comprueba el estado, la posición y los permisos del jugador antes de actuar. Todos los patrones —además de las convars de seguridad de FXServer que conviene activar— están en nuestra Guía de Seguridad de Eventos Lua de FiveM.

Defensa en profundidad

Trigger Finder mapea la superficie, la validación en el servidor cierra los huecos y las detecciones de ZeroTrust atrapan a los tramposos que insisten. Ninguna capa basta por sí sola.

Deja de adivinar tu superficie de ataque

No puedes defender una superficie de ataque que nunca has visto. Trigger Finder convierte el vago consejo de "asegura tus eventos" en una lista concreta generada a partir de tu servidor real, para que sepas con precisión qué está expuesto y dónde corregirlo.

¿Listo para ver la superficie de triggers de tu servidor?

Trigger Finder viene dentro del panel de ZeroTrust. Consigue ZeroTrust o únete a nuestro Discord para empezar.