Sangfor华东天勇战队:PHP大马分析
字数 1039 2025-08-11 21:26:12
PHP大马分析与解密实战教程
一、PHP大马概述
PHP大马(Webshell)是一种常见的网站后门程序,通常被黑客用于控制被入侵的网站服务器。本文档将详细分析一个多层加密的PHP大马,并演示完整的解密过程。
二、分析准备
-
测试环境搭建:
- PHP运行环境(建议使用虚拟机或隔离环境)
- 文本编辑器(支持代码高亮)
- 网络抓包工具(如Wireshark)
-
初始观察:
- 大马代码通常经过多层加密
- 使用Base64编码和字符串替换是常见手法
- 网上下载的大马往往包含后门
三、第一层解密
1. 变量定义分析
$O00OO0=urldecode("%6E1%7A%62%2F%6D%615%5C%76%740%6928%2D%70%78%75%71%79%2A6%6C%72%6B%64%679%5F%65%68%63%73%77%6F4%2B%6637%6A");
解码后得到字符串:
n1zb/m5a\vt0i928-pxuqy*6lrkdg9_ehcswo4+f37j
2. 关键变量提取
echo '$O00O0O='.$O00O0O=$O00OO0{3}.$O00OO0{6}.$O00OO0{33}.$O00OO0{30}; // base
echo '<br>';
echo '$O0OO00='.$O0OO00=$O00OO0{33}.$O00OO0{10}.$O00OO0{24}.$O00OO0{10}.$O00OO0{24}; // strtr
echo '<br>';
echo '$OO0O00='.$OO0O00=$O0OO00{0}.$O00OO0{18}.$O00OO0{3}.$O0OO00{0}.$O0OO00{1}.$O00OO0{24}; // substr
echo '<br>';
echo '$OO0000='.$OO0000=$O00OO0{7}.$O00OO0{13}; // 52
echo '<br>';
echo '$O00O0O='.$O00O0O.=$O00OO0{22}.$O00OO0{36}.$O00OO0{29}.$O00OO0{26}.$O00OO0{30}.$O00OO0{32}.$O00OO0{35}.$O00OO0{26}.$O00OO0{30}; // base64_decode
提取出的关键函数和值:
$O00O0O= "base64_decode"$O0OO00= "strtr"$OO0O00= "substr"$OO0000= "52"
3. 第一层解密代码
eval('?>'.$O00O0O($O0OO00($OO0O00($O0O000,$OO0000*2),$OO0O00($O0O000,$OO0000,$OO0000),$OO0O00($O0O000,0,$OO0000))));
替换变量后:
eval('?>'.base64_decode(strtr(substr($O0O000,104),substr($O0O000,52,52),substr($O0O000,0,52))));
四、第二层解密
1. 解密算法解析
base64_decode(
strtr(
substr($O0O000, 104), // 从位置104开始截取
substr($O0O000, 52, 52), // 从位置52开始截取52个字符(替换源)
substr($O0O000, 0, 52) // 从开始截取52个字符(替换目标)
)
)
2. 解密实现代码
$a = base64_decode(strtr(substr($O0O000,104),substr($O0O000,52,52),substr($O0O000,0,52)));
$myfile = fopen("target.php", "w") or die("Unable to open file!");
fwrite($myfile, $a);
五、后门分析
1. 后门特征检测
在解密后的代码中搜索以下关键词:
http/httpsbase64_decodeeval/assertfile_get_contentscurl
2. 发现的后门
发现两处可疑的Base64加密字符串,解密后得到一个URL地址:
- 该URL解析到新加坡的阿里云服务器
- 页面使用iframe加载阿里云页面
3. 威胁分析
- 数据泄露:大马可能将服务器信息发送到远程地址
- 持久化访问:攻击者可随时连接服务器
- 横向移动:可能用于攻击内网其他系统
六、防御措施
1. 检测方法
- 文件监控:监控网站目录的.php文件变更
- 行为分析:检测异常的PHP函数调用
- 日志分析:检查异常的HTTP请求
2. 防护建议
- 文件权限:限制网站目录的写入权限
- 输入过滤:对所有用户输入进行严格过滤
- 定期扫描:使用Webshell扫描工具定期检查
- 代码审计:对上传的PHP文件进行人工审计
七、总结
本教程详细分析了一个多层加密的PHP大马,演示了从初始混淆代码到完全解密的完整过程。关键点包括:
- 识别并解码URL编码的字符串
- 提取关键变量和函数名
- 理解并逆向字符串替换算法
- 最终获取可读的PHP源代码
- 识别隐藏的后门功能
通过这种分析方法,安全研究人员可以更好地理解恶意Webshell的工作原理,并开发更有效的检测和防御方法。