求助:WordPress疑似恶意plugin.php文件反混淆分析
我在WordPress站点的plugins目录下发现一个plugin.php文件,该文件执行后返回错误。文件开头是伪装的合法插件头部信息:
<?php /** * Author: plugin * License: GPL v2 or later * License URI: https://www.gnu.org/licenses/gpl-2.0.html * Plugin Name: Plugin * Requires PHP: 5.4 * Requires at least: 5.0 * Text Domain: plugin * Version: 1.0 */ if ( ! defined( 'ABSPATH' ) ) { exit(); }
文件后续是大量乱码内容,我怀疑该文件采用HEX+eval+gzip的方式混淆代码,尝试多款在线解密工具都没得到有效结果,求问该如何分析这个文件的具体行为?
手动解密与分析步骤
定位混淆入口
这类恶意混淆代码通常依赖eval()执行解密后的代码,先在文件中搜索eval(,找到加密内容的执行入口。如果是gzip压缩的混淆,往往会伴随gzuncompress()、gzinflate()这类解压函数,同时可能搭配hex2bin()或base64_decode()完成解码。替换执行函数查看明文
找到eval($decoded_content)这类语句后,将eval替换为print_r或var_dump,这样代码运行时会直接输出解密后的原始代码,而非执行恶意逻辑。如果遇到多层嵌套混淆,需要逐层拆解,重复这个步骤直到得到完整明文。隔离环境测试
绝对不要在生产站点直接操作,将文件复制到本地隔离的PHP测试环境(如XAMPP/WAMP搭建的空白站点),修改代码后运行。为了安全,可以在PHP配置中禁用exec()、system()、file_put_contents()等危险函数,或者使用在线PHP沙箱进行测试。分析明文代码行为
得到明文代码后,重点排查以下恶意特征:- 文件操作:是否存在写入后门文件、修改WordPress核心/主题文件的逻辑
- 网络请求:是否向外部域名发送站点数据、下载额外恶意 payload
- 数据库操作:是否篡改数据、添加隐藏管理员账号
- 触发条件:是否包含特定GET/POST参数、访问路径等后门触发机制
工具辅助排查
如果手动定位入口困难,可使用PHP代码审计工具(如PHP_CodeSniffer、RIPS)扫描文件,自动识别混淆相关的函数调用。也可以用文本编辑器的全局搜索功能,查找gz、hex、decode、base64这类关键词,快速缩小混淆逻辑的范围。
内容的提问来源于stack exchange,提问作者mondo web

