乐于分享
好东西不私藏

我给AI写了一份2500行的"免杀教程",它学会了自己绕过360

我给AI写了一份2500行的"免杀教程",它学会了自己绕过360

作者:Gcow安全团队-无法

声明:本文所有技术仅限授权渗透测试与安全研究使用,请遵守相关法律法规。


0x00 起因

事情的起因很简单——我在做一次授权渗透测试时,需要让一个C2 Agent成功上线。目标机器上装着360杀毒,手头只有CSC编译器,没有GCC,没有Visual Studio。

我想:能不能让AI来帮我搞定免杀这件事?

但AI毕竟只是个”通才”,它知道VirtualAlloc是什么,也知道XOR加密的原理,但它不清楚实战中哪些手段真正有效、哪些是死路一条。每次遇到问题,它都需要我反复提示和引导。

所以我做了一件事:给AI写了一份专属的免杀知识库——BypassAntiVirus Skill。

从最初的v1.0到现在的v2.4,经历了15个迭代版本,2500+行技术文档,覆盖了从基础到实战的完整免杀知识体系。它不是一篇文章,而是AI的”免杀大脑”。


0x01 它是什么

BypassAntiVirus Skill 是一份结构化的AI技能文件,安装到Trae IDE后,当你跟AI说”帮我免杀”、”帮我生成白加黑”,它会自动调用这份知识库,像一个有着丰富实战经验的红队成员一样帮你完成工作。

十大核心章节

章节
内容
亮点
一、免杀基础知识
杀软检测方式、7种免杀技术分类、msfvenom参数
从原理到实操,不再是碎片化知识
二、免杀工具篇
21款工具详解+效果排行+9种MSF免杀方式
Shellter(7/69)到nps_payload(3/57),每一款都有实测数据
三、Shellcode多语言加载
C/C++ 10种方法、C# 5种方法、Python 8种方法、PowerShell 4种方法
覆盖所有主流语言,带VT查杀率对比
四、白名单LOLBins
113个白名单程序利用方法
5大类完整分类,从MSBuild到Certutil全收录
五、高级免杀对抗
ck-loader单文件架构、多态加密+Process Hollowing、Go免杀体系
间接Syscall+栈欺骗+Early Bird APC+三层加密,过360核晶
六、综合免杀策略
18条核心实战思路
方法论层面的指导
七、免杀实战操作流程
完整操作SOP
从生成Shellcode到验证上线的标准流程
八、渗透脚本免杀
常用脚本特征处理
实用技巧集合
九、AI免杀技术套件 Shellcode处理流水线+Loader模板+360实战对抗记录 核心章节:包含完整代码模板和六轮360对抗实录
十、注意事项
法律合规、测试规范
安全研究底线

0x02 AI能做什么

有了这份Skill,AI可以做到:

1. 一键Shellcode处理流水线

你只需要说”对agent.x64.bin进行最优免杀”,AI会自动执行:

SGN编码 → Patch(同义替换+花指令) → XOR加密 → IPv4混淆

每一步都产生完全不同的输出,不需要你手动调用任何脚本。

2. 自动选择最优方案

AI会根据你的环境自动选择加载方案:

  • • 有GCC?→ C语言Loader(方案A数据内嵌 / 方案B DLL分离)
  • • 只有CSC?→ C# Loader + /platform:x64
  • • 只有Python?→ ctypes直接加载
  • • 目标有360?→ 方案D:EXE启动器 + Python脚本 + 数据分离

3. 自动排查问题

Shellcode不上线?AI会按照内置的19条问题排查矩阵逐一诊断:

  • • 是不是忘了/platform:x64?
  • • 是不是ctypes的argtypes没设置导致64位指针截断?
  • • 是不是PAGE_EXECUTE_READ权限不够?
  • • 是不是从U盘路径运行触发了360启发式检测?

0x03 最精彩的部分:360实战六轮对抗

这是我最想分享的实战记录。v2.4版本中完整记录了与360杀毒(含云查引擎)的六轮攻防对抗,这也是这份Skill最有价值的经验沉淀。

第一轮:C# DLL白加黑 → ❌ 被360静态检测

最直观的方案,Host EXE加载version.dll,DLL里用DllImport声明VirtualAlloc、Marshal.Copy、NtCreateThreadEx。

败因:DllImport声明的API调用链在.NET IL中完全可见,360一扫就知道你在干什么。

第二轮:动态API解析 → ❌ 被360行为检测

改用GetModuleHandle+GetProcAddress+Delegate动态解析API,字符串也拆分了("Virt"+"ualAll"+"oc"),内存权限也改成两步走(RW→RX)。

败因:360提示”进程创建”行为+”U盘传播途径”(因为我从E盘运行,被识别为可移动磁盘)。

第三轮:WinForm窗口伪装 → ❌ 窗口冻结+行为检测

加了WinForm UI窗口,用EnumWindows回调执行shellcode,伪造了Assembly版本信息。

败因:C2 Agent的shellcode永不返回(维持长连接),EnumWindows回调在UI线程执行导致整个窗口冻结卡死。E盘U盘启发式依然触发。

第四轮:静默执行+系统路径部署 → ❌ 360云查引擎

移除WinForm,shellcode放到后台Thread,写deploy.bat部署到C:\ProgramData。

败因:360云查引擎直接报”高危程序-行为和木马非常相似”。753KB的DLL被云引擎一眼看穿。

第五轮:数据分离(DLL瘦身到7KB) → ❌ 依然被云查

把shellcode数据全部外置到sync.dat,DLL只保留加载逻辑,体积从753KB降到7KB。

败因7KB的DLL依然被检测。 这一轮让我彻底明白了一个关键事实。

关键发现:.NET IL元数据对杀软完全透明

C# DLL编译后的IL代码,对杀软来说就是”开卷考试”:

  • • 方法名、参数类型、委托声明——明文
  • • API调用链——明文
  • • 字符串常量——明文(即使你运行时拼接,IL里的委托类型声明暴露了一切)

无论你怎么混淆——动态API、字符串拆分、数据外置、体积压缩——360云查引擎的.NET IL分析都能直接读取所有敏感模式。

结论:C# .NET DLL在360面前是死路。必须脱离.NET生态。

第六轮:彻底弃用C# DLL → ✅ 成功上线

最终方案架构:

CloudSyncHelper.exe (5KB纯启动器)    → 搜索pythonw.exe    → 执行 config.dat (Python脚本,.dat扩展名伪装)        → 读取 sync.dat (加密shellcode)        → XOR解密        → ctypes加载执行

为什么能过360

  1. 1. EXE只有5KB,仅调用Process.Start,零敏感代码,任何杀软都找不到恶意行为
  2. 2. Python脚本用.dat扩展名,360不会主动扫描Python脚本内容
  3. 3. pythonw.exe是微软签名进程,启动它不会触发告警
  4. 4. shellcode加密存储在二进制文件中,随机填充+自定义格式,无可识别特征
  5. 5. 彻底避开了.NET IL元数据透明性——因为整个执行链根本没有.NET DLL

0x04 踩过的坑(血泪经验)

这些经验都沉淀在Skill的问题排查和关键经验章节中,AI下次遇到同样的问题会直接避开:

🔴 CSC编译不加/platform:x64

CSC默认AnyCPU,.NET的AnyCPU EXE在Windows上以32位模式运行。32位进程执行x64 shellcode——直接崩溃,无报错、无输出、无进程。这个问题让我排查了三轮才定位。

🔴 Python ctypes 64位指针截断

ctypes默认将函数返回值视为c_int(32位)。在64位系统上,VirtualAlloc返回的高于0xFFFFFFFF的地址会被截断。你的shellcode写到了一个错误的地址,然后执行——崩溃。

修复:必须显式设置VirtualAlloc.restype = c_void_pargtypes

🔴 EnumWindows回调不能执行shellcode

C2 Agent的shellcode维持长连接,永不返回。如果在EnumWindows的回调函数(UI线程)中执行,整个窗口会冻结卡死。必须用后台Thread。

🔴 RW→RX两步内存权限切换不可靠

理论上先PAGE_READWRITE写入再VirtualProtect切PAGE_EXECUTE_READ更隐蔽。但实战中部分shellcode在权限切换后行为异常。直接PAGE_EXECUTE_READWRITE(0x40)一步到位更可靠。


0x05 Skill的演进之路

v1.0  → 基础知识框架(从70+篇文章萃取)v1.1-1.7 → 逐章深度学习(工具/代码/白名单/多语言)v1.8  → AI免杀套件集成(流水线+Loader模板)v1.9  → ck-loader单文件架构学习(360核晶bypass)v2.0  → XOR分离加载实战v2.1  → 多态加密+Process Hollowing二次封装v2.2  → 重构AI免杀套件(IPv4+反沙箱+DLL分离)v2.3  → C#/CSC实战经验(/platform:x64血泪教训)v2.4  → 360六轮对抗完整记录(.NET IL透明性根因+Python方案)

每个版本都是一次实战后的经验沉淀。AI不会遗忘,下次遇到类似场景,它会直接跳过所有已知的坑,选择最优路径。


0x06 一些思考

AI免杀的本质不是让AI替你写代码,而是让AI拥有你的实战经验。

裸的AI知道免杀的概念,但它不知道:

  • • 360云查引擎会分析.NET IL元数据
  • • ctypes不设argtypes在64位系统上会截断指针
  • • EnumWindows回调里不能放永不返回的shellcode
  • • 从U盘路径运行会触发启发式检测

这些经验,只有亲自踩过坑才知道。而Skill文件的价值,就是把这些血泪经验结构化地喂给AI,让它在未来的每一次任务中都能直接调用。

同一技术栈内的优化有天花板,跨技术栈切换才能突破根本性检测机制。 这是六轮360对抗给我最深的教训——与其在C# DLL上反复优化,不如直接跳到Python ctypes。


0x07 最后

这份Skill还在持续迭代中。每次实战中遇到的新问题、新绕过方式、新的杀软检测机制,都会被记录并更新到知识库中。

AI的记忆是无限的,但需要你来告诉它什么值得记住。

如果你也在做AI辅助安全研究,欢迎交流。